在c#中使用Magento SOAP API V2获取给定产品ID的制造商名称

本文关键字:ID 制造商 获取 Magento V2 API SOAP | 更新日期: 2023-09-27 18:19:18

我需要获得制造商的名称,给定产品代码。下面的代码存根返回制造商的ID(如109、120等值)。是否有办法获得制造商的名称,而不是ID?我可以看到在PHP中有一些很好的例子来回答这个问题,但我正在寻找c#的答案。任何帮助将非常感激!衷心感谢!

当前代码为:

        public bool GetProductInfo(salesOrderItemEntity objProduct, ref StructProductInfo structProductInfo)
        {
            bool bSuccess = false;
            catalogProductRequestAttributes attrib = new catalogProductRequestAttributes();
            attrib.additional_attributes = new string[] { "manufacturer" };
            catalogProductReturnEntity objProductInfo = null;
            objProductInfo = mservice.catalogProductInfo(mlogin, objProduct.product_id, "default", attrib, null);
            if (null != objProductInfo)
            {
                associativeEntity[] assoc = objProductInfo.additional_attributes;
                structProductInfo.ManufacturerCode = assoc[0].value;
                bSuccess = true;
            }
            return bSuccess;
        }

在c#中使用Magento SOAP API V2获取给定产品ID的制造商名称

Manufacturer默认为整型"eav_attribute",这就是为什么您将获得整型值的原因。

您将需要在magneto中获得与制造商数据设置的连接。

不确定如何从API端获取数据。

可以尝试属性选项,而不是附加属性,然后获得该选项的标签

我知道怎么做了。"102"是"manufacturer"的属性代码。使用catalogProductAttributeOptions(),我构建了一个基于哈希表的小查找,用于获取给定制造商代码的制造商名称。

public void CreateManufacturerLookup()
{
    mhtManufacturers.Clear();  // mhtManufacturers is a hashtable declared with class scope
    catalogAttributeOptionEntity[] caoe = mservice.catalogProductAttributeOptions(mlogin, "102", "default");  // mlogin is the session ID and is available at class scope
    if (caoe.Length > 0)
    {
        for (int i = 0; i < caoe.Length; i++)
        {
            mhtManufacturers.Add(caoe[i].value, caoe[i].label);
        }
    }
}

因此,制造商名称可以通过以下方式查询:

sManufacturerName = (string) mhtManufacturers[sManufacturerCode];