Код попадает к покупателю вместе с заказом — двумя путями: автоматически при создании заказа и вручную в карточке заказа. В обоих случаях выданный код привязывается к заказу, меняет состояние на «Выдан» и уходит из списка свободных.
Выдача вручную в карточке заказа
В карточке заказа у позиции товара есть штатная ссылка «Товарные коды» — она открывает стандартное окно Shop-Script для заполнения кодов позиции. Плагин добавляет в это окно свою помощь: у каждого поля кода появляется кнопка «Свободные коды (N)», где N — сколько свободных кодов этого вида сейчас есть у товара позиции.
- Откройте заказ и нажмите «Товарные коды» у нужной позиции.
- Нажмите кнопку «Свободные коды (N)» — раскроется список свободных значений.
- Кликните по коду — он подставится в поле. Значение можно вписать и вручную: поле остаётся обычным полем ввода.
- Сохраните окно.
Если свободных кодов нужного вида нет, вместо кнопки показывается красная надпись «кодов нет». Значения, уже выбранные в соседних полях той же позиции, из списка исключаются, а счётчик их не учитывает.
Коды становятся выданными только после сохранения окна. Пока вы его не сохранили, коды остаются свободными — закрыть окно без сохранения можно без последствий. При сохранении плагин находит введённые значения в запасе и помечает их выданными с привязкой к этому заказу.

Автоматическая выдача при создании заказа
Для каждого вида кодов в настройках плагина есть галочка «Присваивать коды автоматически при создании заказа». Когда она включена, плагин выдаёт коды сам — на любом новом заказе, созданном менеджером в административной части, покупателем на витрине или через API, в момент создания заказа (до оплаты).
Правила автовыдачи:
- коды выдаются по видам, которые назначены типу товара штатными настройками Shop-Script и включены в плагине с галочкой автовыдачи;
- по одному коду на каждую единицу товара в позиции; дробное количество округляется вверх;
- сначала берутся коды артикула из позиции, затем — коды «Любой артикул» этого товара;
- результат записывается в историю заказа строкой «Выданы коды «Вид»: A, B» со значениями кодов.
Что происходит при нехватке кодов
Автовыдача работает по принципу «всё или ничего»: если свободных кодов не хватает хотя бы на одну единицу, по позиции не выдаётся ни один код — покупатель не должен получить половину цифрового товара. Вместо выдачи в историю заказа попадает строка «Не хватило кодов «Вид»: нужно N, свободно M», а сам заказ создаётся как обычно. Добавьте коды и выдайте их вручную через окно «Товарные коды».
Почему повторная выдача не дублирует коды
Выданный код привязан к заказу и позиции, и в списке свободных его уже нет. Если по позиции заказа уже сохранены коды этого вида, автоматическая выдача по ней больше не выполняется — второй комплект к тому же заказу не добавится. Один и тот же свободный код невозможно выбрать дважды и в окне выдачи: занятые соседними полями значения из списка исключаются.
Отмена заказа
Отмена или удаление заказа коды в свободные не возвращает: код мог быть использован покупателем, и решать его судьбу должен человек. Если код клиенту не ушёл, верните его в свободные кнопкой в списке кодов или на вкладке товара — код снимется и с заказа.

