Magento API SOAP - 将带有自定义选项的产品添加到购物车

时间:2014-05-20 11:02:49

标签: api magento soap

我正在尝试使用SOAP v1 cart_product.add

添加带有自定义选项的产品
  • 产品编号= 1497
  • qty = 1
  • 商店ID = 2
  • 选项ID = 2296(type = textfield)
  • 选项值= 10001
  • 是必需的= TRUE

一切看起来都很糟糕,但仍然会出错致命错误:未捕获的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
                )

        )

)

我错过了什么吗?我的阵列是否正确?

请帮忙, 感谢

2 个答案:

答案 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)
);