Как получить окончательную цену с применением правила цены в Magento? - PullRequest
9 голосов
/ 13 марта 2012

Например

$_producte = Mage::getModel('catalog/product')->load(2974);
echo $_producte->getFinalPrice();

Я могу получить внешний интерфейс при вставке в .phtml

НО я не могу получить окончательную цену (со скидкой) в разделе администратора или в файле экспорта пользовательского продукта.

Ответы [ 2 ]

12 голосов
/ 13 марта 2012

Расчет цены в Magento - горячий беспорядок. Вам необходимо загрузить область событий внешнего интерфейса, чтобы запустить вычисление правил (ref Mage_CatalogRule_Model_Observer::processFrontFinalPrice(), настроенный в Mage_CatalogRule config.xml ).

Mage::app()->loadAreaPart(Mage_Core_Model_App_Area::AREA_FRONTEND,Mage_Core_Model_App_Area::PART_EVENTS);
2 голосов
/ 01 сентября 2017

Я думаю, что нет необходимости загружать часть области событий внешнего интерфейса.Часто продукт не создается правильно.

Попробуйте:

$product
    ->setStoreId(1) //your store_id here
    ->setCustomerGroupId(1) //your favorite customer group id here
    ->load($productId)

, а затем:

$product->getFinalPrice()

должно дать правильную окончательную цену.

В противном случае попробуйте решения, приведенные здесь: https://stackoverflow.com/a/14096072/2787671

...