xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Описание

Модуль 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 на это событие стоит правило.

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

Комментарии RSS

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

Добрый день.

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

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

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

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

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

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

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

никак

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании