我正在尝试使用SOAP v1 cart_product.add
添加带有自定义选项的产品一切看起来都很糟糕,但仍然会出错致命错误:未捕获的SoapFault异常:[1022]请指定产品所需的选项。
这是PHP代码
$shoppingCartIncrementId = $proxy->call( $sessionId, 'cart.create',array( 2 ));
$arrProducts = array(
'product_id' => '1497',
'quantity' => 1,
'options' => array (
0 => array(
'key' => 2296,
'value' => '1001'
)
)
);
print "<pre>";
print_r($arrProducts);
print "</pre>";
$resultCartProductAdd = $proxy->call(
$sessionId,
"cart_product.add",
array(
$shoppingCartIncrementId,
array($arrProducts),
2
)
);
这是我的Array Result看起来像:
Array
(
[product_id] => 1497
[quantity] => 1
[options] => Array
(
[0] => Array
(
[key] => 2296
[value] => 1001
)
)
)
我错过了什么吗?我的阵列是否正确?
请帮忙, 感谢
答案 0 :(得分:0)
在深入研究核心文件后,我发现了问题以及修补它的简单方法。
问题在于&#34; cart_product.add&#34;的SOAP API /&#34; shoppingCartProductAdd&#34;如上所述,使用键&#34;选项&#34;接受一系列产品选项和超级属性,但准备要添加到购物车的产品的代码使用键查找此信息&#34; super_attribute&#34;,相反。为了修补,我只是简单地复制了&#34;选项&#34;数组到&#34; super_attribute&#34; cart_product.add api中的数组。
我把补丁文件放在这里可能会有所帮助:https://github.com/mezzi/magento-api-patches/blob/master/0001-fix-soap-api-configurable-product-options.patch
答案 1 :(得分:0)
经过反复摆弄和阅读其他文章,我发现以下内容适用于Magento 1.8和SOAP v1中的自定义产品(以下Mezzi建议的“ super_attribute”修复似乎不再起作用):
$arrProducts[$j] =
array (
'product_id' => "$productID",
'quantity' => "$quantity_item",
'options' =>
array (
$option_ID => $option_value)
);