$arrProducts = array(
array(
"sku" => "sku1",
"qty" => 1,
"options" => array(
99 => '.50' // 99 is the price attribute id, I want to set this sku to $0.50
)
),
array(
"sku" => "sku2",
"quantity" => 1
)
);
$resultCartProductAdd = $client->call($session, "cart_product.add", array($shoppingCartId, $arrProducts));
在选项数组SKU1,我该如何设置的价格被添加到购物车,并总计结帐计算?
上述选项并没有改变价格。 原价为SKU仍然被添加到购物车而不是$ 0.50。 看着我如何创建一个在Magento附加属性通过SOAP / Java的产品 ,我还是不理解的东西。
我在Magento的EE 1.13使用SOAP调用V1
把价格定在飞行中可以扩展的API调用将产品添加到购物车。 该模型文件Mage_Checkout_Model_Cart_Product_Api需要进行扩展和add方法覆盖,以满足一个价格属性。 这将是这个样子
class Namespace_Module_Model_Cart_Product_Api extends Mage_Checkout_Model_Cart_Product_Api
{
public function add($quoteId, $productsData, $store=null)
{
...
$result = $quote->addProduct($productByItem, $productRequest);
if(isset($productItem['price']) && $productItem['price'] != null) {
$result->setOriginalCustomPrice($productItem['price']);
}
...
}
}
然后,您可以添加到价格数据在这样的API调用数组。
array(
"sku" => "sku1",
"qty" => 1,
"price" => 0.50,
)
该插件调用并发出collectTotals()的调用引用所以应该重新计算基于定制的价格税收和货币等。 您可能需要修改WSDL文件以接受新的价格属性。 未经测试,但在理论上应该工作。
文章来源: Magento SOAP v1 cart_product.add - need to set price in options array for sku