$_product не содержит всех необходимых данных (minmal_price)

РЕДАКТИРОВАТЬ: В основном, моя проблема заключается в том, что мне нужно получить минимальную цену настраиваемого продукта в представлении категории. Ранее это работало с помощью

$_product = $this->getProduct();

$_product->getMinimalPrice();

Тем не менее, это больше не работает. Я заметил, что когда еще работал демпинг $_product будет содержать 'minimal_price'. Теперь это уже не так. Кто-нибудь знает, в чем может быть причина?

СТАРЫЙ: я в настоящее время борюсь с действительно странной ошибкой. Я обновился до magento 1.9, но не все работало так, как ожидалось. Страницы категорий стали очень медленными. Поэтому я снова понизил до 1.8, который отлично работал на нашем тестовом сервере разработки, но теперь цена настраиваемых продуктов больше не будет отображаться на сайтах категории. Даже на чистой magento установить 1.7 (с той же базой данных!) Это не работает.

Я обнаружил, что сначала изменился price.phtml в Magento 1.9 и были добавлены еще два вызова, что привело к увеличению времени загрузки:

$_convertedFinalPrice = $_store->roundPrice($_store->convertPrice($_product->getFinalPrice()));
$_specialPriceStoreLabel = $this->getProductAttribute('special_price')->getStoreLabel();

Для меня главная проблема в том, что цены больше не отображаются. Я заметил следующее:

Когда я сваливаю $_product->debug(); он больше не содержит minimal_price. Это, скорее всего, причина, почему getMinimalPrice() больше не работает

Странная часть в том, что, как я уже говорил на другом сайте разработки тестов, он все еще работает и $_product->debug(); все еще содержит minimal_price.

У кого-нибудь есть объяснение, почему на одной странице minimal_price все еще включен, а на другом сайте его нет?

Спасибо

2 ответа

Решение

Не забудьте включить плоский каталог и категорию квартиры;)

Я немного углубился в код Magento и отследил, как Magento загружает продукты из списка продуктов. При просмотре списка товаров коллекция товаров загружается моделью Mage_Catalog_Model_Layer, которая добавляет минимальную цену и другие вещи к товарам в коллекции, добавляя объединения в SQL коллекции, но я пока не нашел модель, которая делает то же самое вещь для отдельных продуктов вместо коллекций.

Because I don’t want to use a direct SQL query, I checked out the CatalogIndex module, but that module seems not to be working at all because all its indexing tables are empty or even corrupted.

$ data_grouped = Mage:: getModel ("catalogindex / data_grouped"); $ minimal = $ data_grouped-> getMinimalPrice (массив ($ _ product-> getId ()), Mage:: app () -> getStore ());

looked good at first but it gives me the following error:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_index_price.value' in 'field list'

The CatalogIndex module is either deprecated or I’m just too stupid to enable it.

However, I have now created a workaround in my price.phtml template, which uses the same method to retrieve the minimal price and tax percents as the product list does: At the beginning of the template I added the following:

$ this-> setProduct (Mage:: getModel ("catalog / product") -> getCollection () -> addAttributeToSelect (Mage:: getSingleton ("catalog / config") -> getProductAttributes ()) -> addAttributeToFilter ("entity_id", $ this-> getProduct () -> getId ()) -> setPage (1, 1) -> addMinimalPrice () -> addFinalPrice () -> addTaxPercents () -> load () -> getFirstItem ());

which may not be the perfect solution, but it does the job and it does it a little cleaner than iterating over all child products and finding the minimal price that way.
Другие вопросы по тегам