Magento использует артикул как уникальный идентификатор для конкретного продукта, для всех stores. Некоторые пытаются использовать для этих целей название продукта, но это может сработать только для небольших магазинов с малым количеством товаров. Но для крупных мультиязычных площадок это чревато проблемами. Таким образом, роль артикула в процессе систематизации возрастает по мере увеличения количества товаров.

Итак, представим что наш магазин разросся и теперь в нашей базе данных тысячи товаров без артикула (или с ненужным). Конечно, по мере возможности, владельцы магазинов должны планировать стратегию заранее, чтобы избежать подобной ситуации для добавляемых или импортируемых товаров. Но если проблема назрела, то есть следующее решение.

Задача работы с артикулом(или "Stock Keeping Unit", sku) в массовых списках продуктов Magento не так проста как может показаться, но есть быстрое решение позволяющее обработать всю БД товаров.


Экспорт всей таблицы продуктов

  1. После успешного экспорта поиск нового файла CSV ,который хранится в директории /var/export на вашем сервере.
  2. Скачивание этого файла CSV
  3. Редактирование поля SKU в загруженном CSV-файле вручную или с помощью макросов.
  4. Очистка данных таблицы продуктов.
  5. Импорт CSV снова. Система=> Импорт/Экспорт => Поток Данных - Профили. Выбираем профиль. В поле "Тип" выбираем формат данных CSV (разделитель - табуляция). Теперь выбираем вкладку Загрузить файл и делаем обзор файлов. Нажимаем кнопку "Сохранить и продолжить". Теперь идем в "Выполнить профиль" и выбираем файл из выпадающего меню. Нажимаем на кнопку внизу, чтобы выполнить импорт.
  6. Проверяем сопутствующие продукты, перекрестные продажи и другие ассоциации продуктов.
  7. </ol>

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


    Программный подход к изменению SKU

    1. Скачать всю таблицу продуктов в файл CSV, который включает номера SKU
    2. Добавить в файл CSV сразу за полем SKU новую колонку под названием "New SKU"
    3. Заполнить это новое поле требуемыми значениями SKU (вручную или путем копирования из другого листа).
    4. Выполнить нижеследующий код:

    Я предполагаю, что вы можете прочитать файл 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 программно.