在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;
}
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];