после импорта товаров в magento они не отображаются в каталоге - PullRequest
6 голосов
/ 23 августа 2010

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

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

Спасибо

Ответы [ 7 ]

4 голосов
/ 23 августа 2010

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

  1. Импорт товара

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

  3. Сохранить товар

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

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

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

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

var_dump( 
Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('sku','SKUGOESHERE')
    ->getFirstItem()
->getData()
);
2 голосов
/ 03 октября 2010

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

$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
1 голос
/ 25 августа 2010

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

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

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

0 голосов
/ 04 декабря 2012

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

$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();
0 голосов
/ 24 сентября 2011

Исправлено с помощью решения dtcuk.Обратите внимание:

setWebsiteIds(array(

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

0 голосов
/ 23 августа 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...