API-Aufruf, um eine Liste der Produkte und ihrer Attribute in einem Aufruf abzurufen

7

Ich verwende derzeit eine foreach-Schleife, um die Produkte zu durchlaufen und dann das benötigte Attribut abzurufen. Dies ist sehr langsam, da für jedes Produkt die API aufgerufen und die Attributwerte abgerufen werden.

Gibt es eine Möglichkeit, alle Produkte mit ihren Attributen auf einmal zusammenzubringen?

Hier ist mein aktueller Code:

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);
}
Sonu Kapoor
quelle

Antworten:

1

Magento hat keine einzige API, die die Liste der Produkte und alle Attribute (System + Benutzerdefiniert) zurückgibt. Sie müssen zwei getrennte APIs aufrufen:

  1. Zum Abrufen einer Liste der Produkte und ihrer Systemattribute

    - catalog_product.list (SOAP V1)
    - catalogProductList (SOAP V2)
    
  2. Zum Abrufen benutzerdefinierter Attribute von Produkten

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

    Weitere Informationen finden Sie unter den folgenden Links. http://www.magentocommerce.com/api/soap/catalog

Abhishek Gupta
quelle
1
Ich mache das schon.
Sonu Kapoor