Кэш Magento Enterprise, отображающий один и тот же продукт несколько раз в связанных продуктах

magento.stackexchange https://magento.stackexchange.com/questions/13137

Вопрос

Я пытаюсь выяснить, почему на веб-сайте Magento Enterprise один и тот же элемент отображается четыре раза в разделе «Связанный элемент» на странице.

ПРАВИЛЬНОЕ ПОВЕДЕНИЕ:
- После очистки кэшей четыре разные предметы отображаются при первой загрузке страницы (это правильное поведение)

ПРОБЛЕМА:- При дополнительных загрузках страниц отображаются не только те же четыре элемента, но и точно такой же предмет повторено четыре раза (см. скриншот)
- Элемент, который повторяется, всегда является последний элемент который отображался при загрузке исходной страницы.Другими словами, если при первой загрузке страницы после очистки кэша отображаются элементы, связанные с a,b,c,d, именно «d» будет повторяться четыре раза при будущих загрузках страниц.д, д, д, д

Same exact item repeated four times

ФОН:
- Страница использует собственную тему.
- Эта проблема возникает только тогда, когда включено полное кэширование страниц.
- Если страница возвращается к теме «по умолчанию», проблема больше не возникает, даже если включено полное кэширование страниц.
- Подведем итоги:проблема возникает только при включенной пользовательской теме и полном кэшировании страниц.
- Magento Enterprise вер.1.13.0.0

Часть страницы, посвященная сопутствующим товарам, вставляется с помощью следующего кода:

<?php echo $this->getChildHtml('relatedProducts', false) ?>

Буду признателен за:
- Конкретное указание на то, в чем может заключаться эта проблема.
- Надежные способы отключения определенного кеша, связанного с этим (в графическом интерфейсе?В коде?В терминале?)
- Тесты и шаги, которые я могу предпринять, чтобы сузить круг вопросов до кода, базы данных или файлов.

Заранее спасибо!

Это было полезно?

Решение

Оказалось, что мы создали локальную версию дефолтного связанный.phtml файл, который использовался в качестве шаблона для блока связанных элементов.В этом коде внутри цикла есть строка:

$itemBlock = $this->getChild('catalog.product.related.item')->setItem($_item)->setPosition($i);

Обратите внимание на переменную $i в конце строки.

Эта переменная не увеличивалась где-либо еще в коде.я добавил $i = 0; перед циклом и $i++; в соответствующем месте внутри цикла.Теперь, когда переменная $i увеличивается, проблема повторяющихся элементов решена.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top