Magento 1.9.3.8
1) Специальная цена импортируется в область действия веб-сайта продукта следующим образом:
$storeProduct = Mage::getModel('catalog/product')
->setStoreId($this->storeId)->load($product->getId());
$storeProduct->setSpecialPrice($price)->save();
После этого специальная цена появляется в бэкэнде во всех магазинах этого сайта.
2) Затем во внешнем интерфейсе при добавлении товара в корзину в этом представлении магазина сначала корректно берется специальная цена, а в таблице sales_flat_quote_item поля price, base_price, row_total и т. Д. Корректно отражают специальную цену.
Также специальная цена указана в выпадающем меню мини-корзины.
3) Но при загрузке страницы корзины в строке товара отображается обычная цена, а не специальная цена.
А в таблице sales_flat_quote_item поля цены и итога заменены и теперь показывают значения, основанные на обычной цене.
4) Когда я сохраняю товар в бэкэнде в области «По умолчанию» (не меняя ничего), тогда проблема исчезает, и специальная цена корректно отображается на странице корзины и в кассе. Сохранение в области сайта / магазина не имеет никакого эффекта.
Нужно ли что-то менять при сохранении специальной цены в продукте?
На форумах, которые я видел, рекомендуется делать это так.