1回の呼び出しで製品とその属性のリストを取得するAPI呼び出し


7

現在、foreachループを使用して製品を反復処理し、必要な属性を取得しています。APIに対して各製品を呼び出し、属性値を取得するため、これは非常に低速です。

すべての製品とその属性を一度に取得する方法はありますか?

これが私の現在のコードです:

var session = client.login("xxx", "xxx");
catalogProductEntity[] product = new[] { new catalogProductEntity() };
client.catalogProductList(out product, session, null, null);
Console.WriteLine("Found {0} items", product.Length);

catalogProductRequestAttributes attributes = new catalogProductRequestAttributes();
attributes.additional_attributes = new string[] { "mynewattribute" };

foreach (var catalogProductEntity in product)
{
    catalogProductReturnEntity catalogProductReturnEntity = client.catalogProductInfo(session, catalogProductEntity.product_id, null, attributes, null);
    string attrValue = catalogProductReturnEntity.additional_attributes[0].value;
    Console.WriteLine("attrValue => " + attrValue);
    Console.WriteLine(catalogProductEntity.product_id);
}

回答:


1

Magentoには、製品のリストとそのすべての属性(システム+カスタム)を返す単一のAPIがありません。2つの分離されたAPIを呼び出す必要があります。

  1. 製品とそのシステム属性のリストを取得するため

    - catalog_product.list (SOAP V1)
    - catalogProductList (SOAP V2)
  2. 製品からユーザー定義属性を取得するため

    - product.listOfAdditionalAttributes (SOAP V1)
    - catalogProductListOfAdditionalAttributes (SOAP V2)

    詳細については、以下のリンクを参照してください。 http://www.magentocommerce.com/api/soap/catalog


1
私はすでにこれをやっています。
Sonu Kapoor
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.