我遇到了一种情况,我们需要根据购物车物品附加一些产品。但我们不希望客户看到有条件的产品。有没有办法在下订单之前添加某些产品?
我为事件创建了一个观察者sales_order_place_before
并检查了订单项目并获取了我们需要添加的条件产品。但是,现在我应该如何将这些产品附加到将要创建的订单中?
任何帮助将不胜感激!
我遇到了一种情况,我们需要根据购物车物品附加一些产品。但我们不希望客户看到有条件的产品。有没有办法在下订单之前添加某些产品?
我为事件创建了一个观察者sales_order_place_before
并检查了订单项目并获取了我们需要添加的条件产品。但是,现在我应该如何将这些产品附加到将要创建的订单中?
任何帮助将不胜感激!
添加我自己的答案以帮助其他有同样问题的人。
在config.xml
<events>
<sales_order_save_after>
<observers>
<specialitem>
<type>singleton</type>
<class>specialitem/observer</class>
<method>attachSpecialItem</method>
</specialitem>
</observers>
</sales_order_save_after>
</events>
在Observer.php
public function attachSpecialItem(Varien_Event_Observer $obs) {
$order = $obs->getEvent()->getOrder();
$sku = 'SKU OF PRODUCT TO ADD DYNAMICALLY';
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
$qty = 1;
$rowTotal = $product->getPrice();
$order_item = Mage::getModel('sales/order_item')
->setStoreId($order->getStore()->getStoreId())
->setQuoteItemId(NULL)
->setQuoteParentItemId(NULL)
->setProductId($product->getId())
->setProductType($product->getTypeId())
->setQtyBackordered(NULL)
->setTotalQtyOrdered($qty)
->setQtyOrdered($qty)
->setName($product->getName())
->setSku($product->getSku())
->setPrice($product->getPrice())
->setBasePrice($product->getPrice())
->setOriginalPrice($product->getPrice())
->setRowTotal($rowTotal)
->setBaseRowTotal($rowTotal)
->setOrder($order);
$order_item->save();
}