Измените цену всего продукта с помощью наблюдателя событий


Я создал модуль для добавления 100 USD ко всем ценам на товары с помощью модуля, но он работает не так, как ожидалось. Нужна помощь, чтобы это исправить.

Ниже приведен мой XML-код наблюдателя событий:

<catalog_product_collection_load_after>
            <observers>
                <setname>
                    <type>model</type>
                    <class>Mdoule_Customgroup_Model_Observer</class>
                    <method>modifyall</method>
                </setname>
            </observers>
</catalog_product_collection_load_after>

И модифицируют все функции , как показано ниже:

    public function modifyall(Varien_Event_Observer $observer) {
        $products = $observer->getCollection();
        foreach( $products as $product )
        {
            $originalprice = $product->getPrice();
            $customprice = $originalprice+ 100;
            $product->setPrice($customprice);
            $product->setCustomPrice($customprice);
            $product->setOriginalCustomPrice($customprice);
        }
   }

Это работает нормально, но я получаю цену, как показано ниже:

$1,450 $1,550

Author: Siarhey Uchukhlebau, 2016-03-12

1 answers

Я протестировал ваш код и изменил его, используя ниже:

  public function modifyall(Varien_Event_Observer $observer) {
        $products = $observer->getCollection();
        foreach( $products as $product )
        {
            $originalprice = $product->getPrice();
            $customprice = $originalprice+ 100;
            $product->setPrice($customprice);
            $product->setCustomPrice($customprice);
            $product->setOriginalCustomPrice($customprice);
            $product->setFinalPrice($customprice);
        }
   }
 5
Author: Arunendra, 2016-03-14 07:33:35