我想在結帳/購物車/購物頁面上執行以下操作:如何在結帳頁面上添加指定類別下的商品?
當訪問者購買訂單超過100美元的商品時,我會爲其添加免費商品。免費產品來自特定類別。它會顯示在購買的產品下。怎麼做?
我想在結帳/購物車/購物頁面上執行以下操作:如何在結帳頁面上添加指定類別下的商品?
當訪問者購買訂單超過100美元的商品時,我會爲其添加免費商品。免費產品來自特定類別。它會顯示在購買的產品下。怎麼做?
你可以看看MageWorld Free Gift擴展。從你的描述來看,我相信會做你需要的。但是,擴展並不是免費的。 http://www.mage-world.com/free-gift-magento-extension.html
如果您想自己開發此功能,我建議您擴展購物車促銷規則。規則本身將檢查訂單是否超過$ 100。您只需開發將從您指定的類別中選擇免費產品的零件。
最簡單的方法是在觀察者的旁邊聆聽報價並以這種方式添加/刪除免費產品。首先,建立一個名爲Yrcrz/AddFreeProduct的新模塊。在config.xml中,添加:
<?xml version="1.0"?>
<config>
<modules>
<Yrcrz_AddFreeProduct>
<version>0.0.1</version>
</Yrcrz_AddFreeProduct>
</modules>
<global>
<events>
<sales_quote_save_before>
<observers>
<Yrcrz_AddFreeProduct_Observer>
<type>singleton</type>
<class>Yrcrz_AddFreeProduct_Model_Observer</class>
<method>sales_quote_save_before</method>
</Yrcrz_AddFreeProduct_Observer>
</observers>
</sales_quote_save_before>
</events>
</global>
</config>
這定義了我們將要偵聽的事件sales_quote_save_before
。然後,添加一個Observer.php文件,加入:
<?php
class Yrcrz_AddFreeProduct_Model_Observer
{
public function sales_quote_save_before(Varien_Event_Observer $observer)
{
$quote = $observer->getQuote();
$freeProductId = 182;
$threshold = 100;
$freeProductExists = false;
$items = $quote->getAllItems();
foreach ($items as $item) {
if ($item->getProduct()->getId() == $freeProductId) {
$realGrandTotal = $quote->getGrandTotal() - $item->getRowTotalInclTax();
if ($realGrandTotal < $threshold) {
$quote->removeItem($item->getId());
return false;
}
$freeProductExists = true;
}
}
if ($freeProductExists || !$items) {
return false;
}
$cart = Mage::getSingleton('checkout/cart');
if ($quote->getGrandTotal() >= $threshold) {
$product = Mage::getModel('catalog/product')->load($freeProductId);
if ($product && $product->getId()) {
$params = array();
$cart->addProduct($product, $params);
$cart->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
}
}
}
}
此代碼檢查是否達到閾值($ 100),如果是它增加了一個產品。如果總計低於門檻或者沒有產品,它也會刪除免費產品。請注意,您需要使用$freeProductId
來定義免費產品的ID。
非常感謝,當我創建模塊時,我不知道在哪裏放置Observer.php文件?謝謝 – stack2013110
Observer.php應該放在app/code/local/Yrcrz/AddFreeProduct/Model/ – 1000Nettles
我還需要在\ app \ etc \ modules.am中創建YrcrzAddFreeProduct.xml。 – stack2013110
如果我想延長購物車促銷規則,我很抱歉,我是新來的mangento。該規則本身將檢查訂單是否超過100美元。你能否給我更多的細節。謝謝 – stack2013110