2015-03-30 1 views
1

Я пытаюсь импортировать/обновлять 10000+ продуктов в Magento 1.9 из данного XML-файла (нет формата импорта Magento). Это текущий рабочий процесс:Magento: Импортирует/обновляет множество продуктов через работу cron?

В задании cron Я загружаю XML-файл каждую ночь в 1 час ночи. Этот файл содержит 10000+ продуктов. Поэтому я просматриваю XML-файл, используя класс XMLReader из PHP. Для того, чтобы выяснить, если продукт уже существует, я первый загружая продукт SKU, так и после того, что я проверяю, если он был загружен, как это:

$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku); 
if(!$product) { 
    // create the product 
} else { 
    // update the product 
} 

Конечно, это не единственный код, но, может быть, это мое узкое место? Код работает вечно, как я его написал сейчас. Любые идеи о том, как быстро (в течение 3-4 часов возможно) импортировать 10000+ продуктов?

Я не могу использовать magmi или рабочий процесс импорта, потому что импорт должен выполняться ночью с помощью задания cron.

Спасибо!

+0

У вас мало идей, но это может помочь u. http://blog.mag-manager.com/2013/06/how-to-setup-cron-job-in-magento-to.html –

ответ

0

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

К счастью, существует такой способ, как плоские таблицы - это таблицы, которые принимают пользовательские атрибуты и создают единую таблицу, которая включает в себя все атрибуты продукта (которые настроены с опцией «Использовать в товарном листинге»). Вероятно, ваше узкое место, что вы не используете плоский стол этого продукта (включите его в разделе «Конфигурация системы» в разделе «Каталог»). Он должен автоматически перестроить плоский стол после включения, если вам не нужно вручную переиндексировать управление индексами.

+0

Спасибо, что попробовал и отправлю обратно ... – Arnie

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