2016-03-28 4 views
1

Использование Magento 1.7.0.2Магнето: Добавление конфигурируемых продуктов в корзину терпит неудачу: Пожалуйста, укажите вариант продукта (ов)

Я могу добавить простые продукты в корзину с любой проблемой.
Но когда я пытаюсь добавить настраиваемый продукт в корзину, он выдает следующее исключение XmlRpcException.

org.apache.xmlrpc.XmlRpcException: Please specify the product's option(s). 
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197) 
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156) 
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143) 
at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69) 
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56) 
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167) 
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158) 
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147) 

API документация для этого XML-RPC вызова http://devdocs.magento.com/guides/m1x/api/soap/checkout/cartProduct/cart_product.add.html

Magento API док не была очень полезной. Так что следуйте рекомендациям, указанным в https://stackoverflow.com/a/19925338/12641.

Вот аргументы метода к XML-RPC вызов

[25f6d3a4606a18d24cdeb7ad6ad58a, cart_product.add, [25, [{product_id=126, quantity=2, options=[[{value=1, key=862}], [{value=65, key=501}], [{value=1, key=526}], [{value=100, key=525}], [{value=1, key=274}], [{value=1, key=273}]]}]]] 

Я все еще получаю ошибку org.apache.xmlrpc.XmlRpcException: Please specify the product's option(s). в консоли.

Мне интересно узнать, как добавить настраиваемый продукт в корзину, когда у него есть необходимые параметры для передачи.

ответ

0

После отладки Magento php code я понял, что Magento ожидает «super_attribute» вместо клавиши «options».

Вот массив Java Я передаю, чтобы добавить свой продукт с супер атрибуты

[ 
    8bd5ea08fc5c6f5d17445f10db593d4f, 
    cart_product.add, 
    [ 
    51, 
    [ 
     { 
     product_id=3051, 
     super_attribute={ 
      272=22, 
      525=100 
     }, 
     quantity=2 
     } 
    ] 
    ] 
] 

С этими параметрами вызова я был в состоянии добавить товар в корзину.

От консоли администратора Magneto я знаю, какие супер атрибуты должны передаваться как супер-атрибуты.

Но как получить эти супер атрибуты для пользовательского продукта через Magento XML-RPC/SOAP api?

В PHP, чтобы получить супер атрибуты, вот что я нашел, что люди использовали.

$productAttributeOptions = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product); 

Я не могу использовать этот код, потому что я зависим от API только для этого.

Любая помощь очень ценится.