Товары не отображаются в подкатегории Magento2

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

Всегда говорят: «Мы не можем найти продукты, соответствующие выбору».

Где я могу найти в Magento 2 код, отвечающий за отображение продуктов, чтобы я мог диагностировать это программным способом?


person Zike    schedule 25.11.2015    source источник
comment
Добро пожаловать в Stackoverflow! Этот вопрос здесь не по теме, так как SO - это сайт, посвященный вопросам программирования. Пожалуйста, пройдите вводный тур. Кроме того, в вашем вопросе отсутствует основная информация, например используемая версия и т.п. Возможно, вы захотите прочитать Как задать хороший вопрос, что увеличивает вероятность получения полезного ответа. Вы можете найти эссе ESR Как правильно задавать вопросы.   -  person Markus W Mahlberg    schedule 26.11.2015
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что Stack Overflow - это сайт вопросов и ответов, связанный с программированием. Ваш вопрос не о программировании. Возможно, вам лучше разместить его на magento.stackexchange.com?   -  person Enigmativity    schedule 26.11.2015


Ответы (6)


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

  1. Общие-> Статус = Включено
  2. общие-> Видимость = Каталог, Поиск
  3. Инвентарь-> Кол-во> 0
  4. Инвентарь-> Наличие на складе = В наличии
  5. Сайты = проверка вашего сайта
  6. Категории = проверка вашей категории.

Если вы хотите отметить продукт в подкатегории, перейдите в Каталог-> Управление категориями-> Выберите категорию, откройте вкладку «Параметры отображения» и измените параметр «Якорь» на "Да". Сохранить категорию.

person Echo    schedule 26.11.2015
comment
Какую версию Magento 2 вы используете? - person crashtestxxx; 15.12.2015
comment
Я использую magento 2.4.1. Я пробовал все ваши шаги, но все еще не показываю - person huykon225; 23.02.2021

Вы можете попробовать переиндексировать. Он работает, если все это настроено

1. Общие-> Статус = Включено

2. общие-> Видимость = Каталог, Поиск

3. инвентарь-> кол-во> 0

4. инвентарь-> наличие на складе = в наличии

5.Сайты = проверка вашего сайта

6. Категории = проверка вашей категории.

person Rahul Singh    schedule 21.01.2016
comment
Большое спасибо, переиндексация сделала свою работу! Приятно знать, какое-то время я думал об этом. Можете ли вы случайно объяснить, для чего именно используется переиндексация? - person Lachezar Raychev; 15.06.2016
comment
В моем случае цена должна быть указана. Используйте 0.00, если у вас его нет. - person O. Schnieders; 06.06.2019
comment
Отлично, вы украли ответ у @Echo. - person Black; 23.06.2020

Пожалуйста, выполните следующую команду в командной строке:

php bin/magento indexer:status

Если один из индексов - «Обработка», перейдите в свою базу данных MySQL и перейдите к таблице indexer_state. Вы заметите, что одно из значений - «Работает», а остальное - «Действителен».

Установите для параметра Working значение Invalid и снова выполните переиндексирование. Лучший способ сделать это - запустить следующий запрос:

update magento.indexer_state set status='invalid' where status ='working'

Удачи!

person Tristan    schedule 11.01.2017
comment
Дополнительную информацию можно найти на странице github.com/magento/magento2/issues/5146. - person Tristan; 11.01.2017
comment
Обратите внимание, что вы также можете использовать bin / magento indexer: reset, чтобы избежать редактирования базы данных. - person jsims281; 14.08.2018

Подкатегория Продукт показывает решение проблемы, как вам нужно, как показано ниже:

Magento 2 Admin ==> Продукты ==> Категория ==> Подкатегория ==> Дизайн ==> Использовать настройки родительской категории ==> Отметка здесь

введите здесь описание изображения

person matinict    schedule 19.12.2017

Это связано с проблемой переиндексации.

приложение \ код \ Модули \ Каталог \ etc \ di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Catalog\Model\Indexer\Category\Product\Action\Full" type="Modules\Catalog\Model\Indexer\Category\Product\Action\Full" />
</config>

приложение \ код \ Модули \ Каталог \ Модель \ Индексатор \ Категория \ Продукт \ Действие \ Full.php

<?php 
namespace Modules\Catalog\Model\Indexer\Category\Product\Action;

/**
 * Class AbstractAction
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/

class Full extends \Magento\Catalog\Model\Indexer\Category\Product\Action\Full {

    public function isRangingNeeded() {
        return false; // It was "True" as default setting.
    }
}

Затем мы должны запустить эту команду.

php bin/magento cache:clean
php bin/magento indexer:reindex

Наконец, у нас есть целые 2000 продуктов на странице нашей категории вместо предыдущих 340 продуктов на странице внешнего интерфейса. Кроме того, вкладка «Категория продукта» в управлении индексами просто обновляется с даты обновления версии до текущей даты и времени индексирования.

Отличный опыт!

Надеюсь, это поможет многим разработчикам и владельцам.

person Igor Revenko    schedule 05.06.2017

У меня была аналогичная проблема, товар появился в родительской категории, но не в изначально назначенной подкатегории. Я решил это, нажав кнопку «Сохранить» на странице редактирования подкатегории и / или (не уверен, что и то и другое необходимо).

person Tobias Kess    schedule 12.04.2017
comment
да, это тоже работает, ну, ручное переиндексирование, но для меня намного проще нажать просто сохранить на странице категории, а не открывать командную команду оболочки, войти в систему, сменить пользователя, запустить переиндексирование вручную и обновить кеш. Проблема обсуждается здесь более подробно github.com/magento/magento2/issues/2855 - person Tobias Kess; 23.04.2017
comment
это неправильный способ. Что за новинки? Смена инвентаря? и т. д. На самом деле вы можете запланировать индексацию как cron в зависимости от вашего желаемого времени, чтобы ваши данные были правильно проиндексированы. - person rajatsaurastri; 24.04.2017