Magento API в C # .Net: каталог - PullRequest
       6

Magento API в C # .Net: каталог

4 голосов
/ 23 сентября 2010

У меня есть код ниже, пытающийся вернуть продукт со всеми соответствующими атрибутами.

Я не получаю ошибок, но не вижу никаких атрибутов в переменной "prod".

    private void frmProductDetail_Load(object sender, EventArgs e)
    {
        MagentoService service = new MagentoService();
        MagentoServiceHelper help = MagentoServiceHelper.Instance;

        catalogAttributeEntity[] attributes = service.catalogProductAttributeList(help.SessionID, AttributeSet); //AttributeSet is a property of the form

        catalogProductRequestAttributes att = new catalogProductRequestAttributes();
        string[] attlist = new string[attributes.Length];

        for (int i = 0; i < attributes.Length; i++)
        {
            attlist[i] = attributes[i].code;
        }

        att.attributes = attlist;

        catalogProductReturnEntity prod = service.catalogProductInfo(help.SessionID,
            ProductId, "default", att, "sku"); //ProductId is a property of the form
    }

Ответы [ 3 ]

4 голосов
/ 09 мая 2011

Вы пытаетесь получить стандартные (встроенные) атрибуты или пользовательские?

Обратите внимание, что объект catalogProductRequestAttributes (который сообщает Magento, какие атрибуты вы хотите получить) имеет две коллекции - одну длястандартные атрибуты и один для пользовательских.

Примерно так должно работать:

// assumes sessionId, sku and storeView are defined already
catalogProductRequestAttributes fetchattrib = new catalogProductRequestAttributes();
// it will only populate the attributes that you ask for
fetchattrib.attributes = new string[] { "name", "description", "short_description"};
fetchattrib.additional_attributes = new string[] { "number_of_legs", "can_jump"};
catalogProductReturnEntity prod = m_magentoClient.catalogProductInfo(
    sessionId, sku, storeView, fetchattrib, "sku");
0 голосов
/ 04 января 2012

Денис,

Основываясь на небольшом количестве проб и ошибок, у меня сработало следующее:

1) Параметр AttributeSet в вызове catalogProductAttributeList () должен быть целым числом, котороеMagento можно идентифицировать как известный набор атрибутов.Я работал с данными по умолчанию, которые идут с Magento Go, и сработали числа 9, 38, 39, 40, 41, 42, 44, 45, 46, 58, 59, 60, 61 и 62.В этом порядке общее количество возвращаемых атрибутов было 63, 67, 71, 68, 66, 68, 67, 65, 63, 63, 61, 63, 66 и 64. Я вижу, что значение 9 должно быть достаточно длябольшинство продуктов.

2) Второй параметр в вызове catalogProductInfo () должен соответствовать подлинному идентификатору продукта Magento.Например, если вы перечисляете заказы на продажу, параметром может быть значение salesOrderItemEntity.product_id.

3) В дополнение к пункту 2 выше, последний параметр в вызове catalogProductInfo () должен быть нулевым.

Если вы используете SKU вместо product_id, то второй параметрДОЛЖЕН БЫТЬ SKU продукта (не ID продукта), а последний параметр должен быть "sku".

Надеюсь, это поможет.

PS: Все наборы атрибутов (соответствующиеНапример, 14 идентификаторов, приведенных выше), можно перечислить с помощью catalogProductAttributeSetList (), который возвращает массив объектов objcatalogProductAttributeSetEntity.

0 голосов
/ 28 сентября 2010

попробуйте установить для последнего атрибута catalogProductInfo значение "ничто"

objResource = magentoAPI.catalogProductInfo(gbl_strSession, productID, setStoreviewName, mc_filter, nothing)

Magento 1.4 productIdentifierType

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...