Magento的SOAP V1 cart_product.add - 需要设置价格选项阵列SKU(

2019-11-02 19:07发布

$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

Answer 1:

把价格定在飞行中可以扩展的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
标签: magento