如何以编程方式编辑购物车价格(或在添加商品时应用折扣)

时间:2012-05-08 18:29:52

标签: php magento checkout discount

我正在定制POS扩展程序以准备在场外活动中进行自动售货。

之前,我们只是简单地手动收取销售费用,然后回去手动添加订单。这个POS扩展将让我们使用我们的实时网站来销售商品,然后正确记录销售(并且现有的付款方式将起作用)。

现在我正在尝试对物品进行特殊定价,因为它们已添加到购物车中。扩展程序的代码执行此操作以将项目添加到购物车:

$product_model  = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId());
$session        = Mage::getSingleton('checkout/session');
$cart           = Mage::getSingleton('checkout/cart');
$product_model = Mage::getModel('catalog/product')
    ->setStoreId(Mage::app()->getStore()->getId())
    ->load($pr_id);

if(!$product_model)
    throw new Exception("Product id {$pr_id} not found");

$cart->addProduct($product_model, array('qty' => $qty));
$cart->save();
$session->setLastAddedProductId($last_pr_id);
$this->getPos()->getQuote()->collectTotals()->save();

我发现的有关应用定价的所有内容都是$item而不是购物车级别。在其他代码中,我尝试过$product_model->setCustomPrice($price);setPrice()以及setOriginalPrice(),但这些都无效。我觉得我非常接近解决方案。

有经验的人会帮助我在上下文中获取该项目或找到在上述代码段中应用折扣的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要参加活动,看看我在这里提供的答案,如果您有任何疑问或遇到问题,请告诉我们:

Changing the price in quote while adding product to cart: magento