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);
}

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


1
Ich mache das schon.
Sonu Kapoor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.