после импорта продуктов в пурпурный, они не показывают каталог

После того, как я импортирую продукты в пурпурный, который, кажется, идет гладко без ошибок; продукты не видны в магазине. однако, если я перехожу к любому продукту и сохраняю (даже не меняя ничего), он мгновенно доступен. Почему эти продукты не видны сразу …

Запуск последней стабильной сборки.

благодаря

Лучший способ решить эту проблему программно – это

  1. Импорт продукта

  2. Изучите все атрибуты продукта с помощью специального кода

  3. Сохранить продукт

  4. Изучите все атрибуты продукта с помощью специального кода

  5. Сравните результаты # 2 и # 4

  6. Убедитесь, что ваш процесс импорта явно устанавливает любые атрибуты, отсутствующие в # 2, но присутствующие в # 4

Вот что нужно сделать, чтобы изучить атрибуты продукта. Запустите это или что-то подобное в шаблоне phtml, настраиваемом контроллере и т. Д.

var_dump( Mage::getModel('catalog/product') ->getCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('sku','SKUGOESHERE') ->getFirstItem() ->getData() ); 

Вдохновленный от ответа Алана Шторма, но более низкого уровня.

  1. Начните с пустой базы данных. Дамп его в файл SQL с надписью original.sql
  2. Создайте вручную один из своих продуктов.
  3. Проверьте, что это видно.
  4. Дамп вашей базы данных в файл с надписью manual.sql
  5. Перезапишите свою базу данных, импортировав файл original.sql
  6. Создайте файл csv, чтобы импортировать выбранный продукт и импортировать его.
  7. Дамп вашей базы данных в файл с надписью automatic.sql
  8. Сравните manual.sql и automatic.sql друг с другом. Вы должны увидеть, в чем проблема.

Для тех, у кого есть эта проблема: я решил это, убедившись, что вы установили websiteid для продукта. Если вы используете собственный скрипт, не забудьте добавить следующее:

 $product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId())); 

Исправлено это с решением dtcuk. Пожалуйста, обратите внимание:

 setWebsiteIds(array( 

В принципе, даже если есть только один идентификатор сайта, который вы хотите установить, вам все равно придется передать массив с 1 идентификатором сайта.

Убедитесь, что вы вошли в интерфейс администратора и в разделе «Система»> «Управление индексами» выберите все и выберите «Reindex» в раскрывающемся списке справа вверху. Выполнить.

Кроме того, обновите кеширование в разделе «Система»> «Управление кешем» и, в хорошем смысле, удалите все файлы в var / cache.

Если это не исправить, сообщите о дополнительных предложениях.

Я испытал ту же проблему. Здесь отсутствует идентификатор веб-сайта. Тогда это должно сработать.

 $newProduct = Mage::getModel('catalog/product') ->setAttributeSetId('9') ->setTypeId('simple') ->setStatus(1) ->setTaxClassId(2) ->setWebsiteIds(array(1)) ->setVisibility(4) ->setSku($sku) ->setName($name) ->setDescription($description) ->setShortDescription($shortDescription) ->setPrice($price) ->save(); 

У меня было то же самое, и после долгого поиска неисправностей, который я обнаружил, в моем CSV отсутствовало одно поле: «_product_websites» со значением «base» (одинаково для всех элементов).