Изменение, добавление артикула в массовых списках продуктов Magento
9 нояб. 2012
Magento использует артикул как уникальный идентификатор для конкретного продукта, для всех stores. Некоторые пытаются использовать для этих целей название продукта, но это может сработать только для небольших магазинов с малым количеством товаров. Но для крупных мультиязычных площадок это чревато проблемами. Таким образом, роль артикула в процессе систематизации возрастает по мере увеличения количества товаров.
Итак, представим что наш магазин разросся и теперь в нашей базе данных тысячи товаров без артикула (или с ненужным). Конечно, по мере возможности, владельцы магазинов должны планировать стратегию заранее, чтобы избежать подобной ситуации для добавляемых или импортируемых товаров. Но если проблема назрела, то есть следующее решение.
Задача работы с артикулом(или "Stock Keeping Unit", sku) в массовых списках продуктов Magento не так проста как может показаться, но есть быстрое решение позволяющее обработать всю БД товаров.
Экспорт всей таблицы продуктов
- После успешного экспорта поиск нового файла CSV ,который хранится в директории /var/export на вашем сервере.
- Скачивание этого файла CSV
- Редактирование поля SKU в загруженном CSV-файле вручную или с помощью макросов.
- Очистка данных таблицы продуктов.
- Импорт CSV снова. Система=> Импорт/Экспорт => Поток Данных - Профили. Выбираем профиль. В поле "Тип" выбираем формат данных CSV (разделитель - табуляция). Теперь выбираем вкладку Загрузить файл и делаем обзор файлов. Нажимаем кнопку "Сохранить и продолжить". Теперь идем в "Выполнить профиль" и выбираем файл из выпадающего меню. Нажимаем на кнопку внизу, чтобы выполнить импорт.
- Проверяем сопутствующие продукты, перекрестные продажи и другие ассоциации продуктов.
Данный метод является наиболее простым не предполагающим использования программирования, но это болезненно для редактирования вручную огромной базы продуктов.
Программный подход к изменению SKU
- Скачать всю таблицу продуктов в файл CSV, который включает номера SKU
- Добавить в файл CSV сразу за полем SKU новую колонку под названием "New SKU"
- Заполнить это новое поле требуемыми значениями SKU (вручную или путем копирования из другого листа).
- Выполнить нижеследующий код:
Я предполагаю, что вы можете прочитать файл CSV в виде массива, где ваши продукты представлены в следующем формате:
SKU, NEW SKU
SKU1, NEW SKU1
SKU2, NEW SKU2
....и т.д.
После прочтения .CSV файла как массива, сделать следующий цикл:
<?php foreach($products as $product){
$old_sku = $product[0];
$new_sku = $product[1];
Mage::getModel('catalog/product')->loadByAttribute('sku', $old_sku)->setSku($new_sku)->save();
}?>
Таким способом вы можете легко изменить SKU, цикл будет получать все старые номера SKU и заменять их на новые номера SKU, которые вы предоставили.
Я хотел бы услышать ваши идеи или опыта изменения номера SKU программно.