Magento - 重复报价项目到新行和新价格

时间:2015-08-14 12:34:32

标签: php magento

我有一个观察者,当数量不止一个时我会添加一个新的报价项目。下面是我用来创建这个引用项的代码:

$quote_item = Mage::getModel('sales/quote_item');
$_product = Mage::getModel('catalog/product')->load($oldQuoteItem->getProduct()->getId());
$quote_item->setProduct($_product);
$quote_item->setQuote($quote);
$quote_item->setOriginalCustomPrice($oldQuoteItem->getProduct()->getPrice());
$quote_item->save();

对于简单的产品来说它很好用,但是当我用可配置的产品复制报价项时,它只会采用父产品,而不是属于它的简单产品,因此我得到了一个产品没有库存的错误。

有任何想法,如何将精确产品复制到新报价项目?

1 个答案:

答案 0 :(得分:2)

我对所有产品类型都取得了以下成功。

$quote = Mage::getSingleton('checkout/session')->getQuote();
$oldQuoteItem = $quote->getItemById(ITEM_ID);

$product = Mage::getModel('catalog/product')
    ->setStoreId(Mage::app()->getStore()->getId())
    ->load($oldQuoteItem->getProductId());

$cart = Mage::getSingleton('checkout/cart');
$cart->addProduct($product, $oldQuoteItem->getBuyRequest());
$cart->save();

您应该可以修改商品价格。

请记住,如果您想为多个产品执行此操作,则必须在每个$ cart-> addProduct()

之后的最后一次保存购物车