Drupal → Модуль Commerce AutoSKU — автогенерация SKU

31.07.2012

Описание

Модуль Commerce AutoSKU позволяет скрыть поле SKU из формы создания/редактирования товара и генерировать его автоматически на основе заранее определённого шаблона. В шаблоне можно использовать любые свойства и значения полей товара, например заголовок, идентификатор и т.д.

Установка и использование

Установка стандартная — распаковать в sites/all/modules, включить.

Дальше открываем страницу редактирования типа товара (Store → Products → Product types → edit), отмечаем опцию Automatically Generate SKU и в поле SKU Pattern прописываем шаблон:

Настройки модуля Commerce AutoSKU

Always regenerate SKU включает автоматическое изменение SKU при изменении товара.
Hide SKU Field позволяет скрыть поле из формы добавления/редактирования товара.
SKU Case изменяет регистр SKU.

Замечание: если использовать в шаблоне токен [commerce-product:product-id], то при создании нового товара, он (товар) будет сохранён дважды (точнее сначала создан а потом пересохранён), что может привести к неожиданным последствиям, если в Rules на это событие стоит правило.

[video:http://vimeo.com/42217194]

Написанное актуально для
Commerce AutoSKU 7.x-1.1
Похожие записи

Комментарии

Спасибо, только начал знакомится с Commerce, первый возникший вопрос и тут же ответ.

Роман
31.03.2013, 15:19

Добрый день.

Потестил этот модуль и заметил следующее.

А именно, почему-то в формировании артикула не участвуют русские буквы.
Например, я хочу добавить тип товара "Мужская обувь".
Завожу в таксономии словарь "Материал" и ввожу туда 2 термина - "Натуральная кожа" и "Искусственная кожа".
В типе товара добавляю поле "Материал верха" и задаю ссылку на этот словарь из таксономии.
И далее, если я хочу включить название материала в AutoSKU, то если название материлал было введено на русском, то оно почему-то в артикул не включается.
А вот, если ввести термин на латинском, например, "leather", то это название благополучно включится в артикул.

Вы не знаете, как с такой проблемой бороться ?

Роман
31.03.2013, 16:16

Спасибо большое, решил проблему

В файле commerce_autosku.module в строке 8 подправил паттерн на такой:

define('COMMERCE_AUTOSKU_DISALLOWED', '@[^A-Z|a-z|а-п|р-ю|я|А-Я|0-9|\-\.\,\ \:|_]@');
Сергей
17.05.2013, 03:40

Спасибо за статью. Возможно подскажете, как использовать в настройках этого модуля какой-то токен, который будет подставлять не [commerce-product:product-id] а [node:nid]. Дело в том, что если использовать первый вариант, то у каждого варианта товара получается разный ID в артикуле. А нужно, чтобы число было одинаковым.
Например:
shirt-xl-white-001
shirt-m-white-001
а не:
shirt-xl-white-001
shirt-m-white-002

Добавить комментарий