$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美元。看How do I create a product with additional attributes in Magento via Soap/Java我仍然不理解。
我使用SOAP V1调用
进入Magento EE 1.13答案 0 :(得分:3)
要动态设置价格,您可以扩展API调用以将产品添加到购物车。需要扩展模型文件Mage_Checkout_Model_Cart_Product_Api并重写add方法以满足price属性。它看起来像这样
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文件以接受新的price属性。没有经过测试,但在理论上应该有效。