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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

我正在尝试使用SOAP v1 cart_product.add添加带有自定义选项的产品

  • 产品编号= 1497
  • qty = 1
  • 商店ID = 2
  • 选项ID = 2296(type = textfield)
  • 选项值= 10001
  • 是必需= TRUE

一切看起来都是oke但仍然给出错误致命错误:未捕获的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
                )

        )

)

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

请帮忙,谢谢

提问于
用户回答回答于

经过多次摆弄和阅读其他帖子后,我发现以下工作适用于Magento 1.8和SOAP v1中的自定义产品(以下Mezzi建议的“super_attribute”修复不再起作用):

$arrProducts[$j] = 
        array (
        'product_id' => "$productID",
        'quantity' => "$quantity_item",
        'options' => 
        array (
        $option_ID => $option_value)
);
用户回答回答于

在深入研究核心文件后,我发现了问题以及修补它的简单方法。

问题是“cart_product.add”/“shoppingCartProductAdd”的SOAP API接受了一系列产品选项和超级属性以及关键的“选项”,如上所述,但是准备要添加产品的代码到购物车使用密钥“super_attribute”查找此信息。为了修补,我只是将“options”数组复制到cart_product.add api中的“super_attribute”数组。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动