Magento 1.9: Как автоматически добавить товар со скидкой в корзину покупок?


Надеюсь, у вас все хорошо.

Мне нужно некоторое руководство о том, как или если для этого уже существует какой-либо инструмент:

Если определенный товар попадает в корзину покупок, автоматически в корзине появляется еще один конкретный товар, но со скидкой.

Я был бы очень признателен за некоторую помощь.

Author: Vivek Kumar, 2018-08-21

1 answers

Объявлять наблюдателей событий в config.xml :

<events>
    <checkout_cart_product_add_after>
        <observers>
            <custommodule>
                <class>custommodule/observer</class>
                <method>cartProductAddAfter</method>
            </custommodule>
        </observers>
    </checkout_cart_product_add_after>
    <checkout_cart_product_update_after>
        <observers>
            <custommodule>
                <class>custommodule/observer</class>
                <method>cartProductUpdateAfter</method>
            </custommodule>
        </observers>
    </checkout_cart_product_update_after>
</events>

Затем создайте файл наблюдателя в своем модуле:

class Vendor_Custommodule_Model_Observer 
{
    /* If you'd like to do the same while updating the shopping cart*/
    public function cartProductUpdateAfter($observer)
    {
        $this->cartProductAddAfter($observer);
    }

    public function cartProductAddAfter($observer)
    {
        $product = $observer->getEvent()->getProduct();
        $currentItem = $observer->getEvent()->getQuoteItem();
        $quote = $currentItem->getQuote();
        $quoteItems = $quote->getItems();

        /* Detect Product ID and Qty programmatically */
        $idToAdd = "ANY PRODUCT ID";
        $qty = 1;

        $productToAdd = Mage::getModel('catalog/product');
        /* @var $productToAdd Mage_Catalog_Model_Product */
        $productToAdd->load($idToAdd);

        $this->_addProductToCart($productToAdd, $qty);
        //put code apply code discount here
    }

    protected function _addProductToCart($product, $qty)
    {
        $cart = Mage::getSingleton('checkout/cart');
        /* @var $cart Mage_Checkout_Model_Cart */
        if ($product->getId()) {
            $cart->addProduct($product, $qty);
            return true;
        }
        return false;
    }
}

Затем введите свой код для применения скидки после строки

$this->_addProductToCart($productToAdd, $qty);

Надеюсь, это поможет!

 0
Author: Magetop E-commerce, 2018-08-22 03:56:03