2010-08-23 3 views
6

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

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

Благодаря

+0

Вы уверены, что это вопрос программирования? Поскольку это звучит так, как вам было бы лучше спросить, что в http://superuser.com/ – Iznogood

+0

да, это определенно связано с программированием ... к сожалению :( –

+0

im, генерирующий мой собственный файл csv со скребка, который я написал ... кажется для импорта штрафа im просто не уверен, почему они не сразу активируются? – user398314

ответ

4

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

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

  2. Проверьте все атрибуты продукта через некоторый пользовательский код

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

  4. Проверьте все атрибуты продукта через некоторый пользовательский код

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

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

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

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

http://pastebin.com/fMgjDQRU, который выводит то, что вы упомянули выше, является видимым продуктом, нижнее значение которого не отображается на интерфейсе. по-прежнему не могу найти причину – user398314

+0

Я забыл вызов метода там (-> getFirstItem()). Попробуйте отредактированный код, который должен предоставить вам все атрибуты. –

0

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

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

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

+0

Ive уже переиндексировал и удалил весь кеш ... все еще не повезло. – user398314

+0

Это пример того, как мой импорт выглядит как магазин \t сайт \t attribute_set \t типа \t category_ids \t Артикул \t has_options \t имя \t изображение \t small_image \t миниатюрами \t цена \t стоимость \t статус \t tax_class_id \t is_recurring \t видимость \t описание \t SHORT_DESCRIPTION \t product_type_id \t product_name \t шт \t min_qty \t is_in_stock \t manage_stock \t вес – user398314

+0

Heres ссылку, которая делает ее немного легче читать, я не знал, что это будет выглядеть поэтому отключил http://pastebin.com/VUkeihNG – user398314

1

Вдохновленный от ответа Алана Шторма, но нижний уровень.

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

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

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

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

setWebsiteIds(array(

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

0

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

$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

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

Смежные вопросы