Order Numbers

Назначает заказам Payload читаемые порядковые номера вида ORD-01042 через коллекцию резервирований.

Сообщество 1 6/нед MIT v1.0.1

Установка

pnpm add payload-order-numbers

Описание

Плагин присваивает каждому заказу Payload короткий читаемый номер, например `ORD-01042`. Собственный идентификатор документа Payload не подходит как номер заказа: MongoDB отдаёт 24-символьный ObjectId, а PostgreSQL выдаёт обычное целое число начиная с 1, по которому можно узнать общее количество заказов в магазине. Плагин форматирует порядковый номер с настраиваемым префиксом, суффиксом и дополнением нулями и сохраняет его прямо в заказе. Номера назначаются в хуке `beforeChange`, но само резервирование значения идёт через отдельную коллекцию. Перед записью заказа плагин вставляет следующее подходящее значение в коллекцию резервирований, и вставка коммитится в отдельной транзакции. Второй заказ, пришедший в тот же момент, видит резервирование и берёт следующее значение. Уникальный индекс по номеру заказа служит финальной гарантией. Автор проверил 25 одновременных заказов на Payload 3.88 с PostgreSQL и MongoDB, все номера уникальны, пропусков от этапа резервирования нет. На коллекцию заказов добавляются два поля: текстовое `orderNumber` только для чтения и скрытое числовое `orderSequence`, оба с уникальным индексом. Скрытая коллекция `order-number-reservations` хранит зарезервированные значения и закрыта для любого API-доступа (create, read, update, delete). В настройках задаются префикс, суффикс, длина дополнения, стартовое значение, имена полей, слаги коллекций и число попыток перед отказом. Плагин работает с `@payloadcms/plugin-ecommerce` и любой коллекцией с именем `orders` по умолчанию. У последовательности два ограничения. Она возрастающая и уникальная, но не безпропускная: зарезервированное значение остаётся за собой, даже если заказ потом не сохранится, так что это не бухгалтерская нумерация для счетов. На PostgreSQL вставка в резервирования открывает второе соединение, пока транзакция заказа держит первое, поэтому пул соединений нужно держать как минимум вдвое больше ожидаемого числа одновременных заказов. На MongoDB этого ограничения нет. Существующие заказы не перенумеровываются.

О пакете

Имя пакета
payload-order-numbers
Последняя версия
1.0.1
Размер
15 кБ
Лицензия
MIT
Загрузок в неделю
6
Последняя публикация
21 авг. 2026 г.

Ещё от Poseidonas

Профиль автора

Barcodes

Добавляет штрихкоды Code 128, EAN-13 и QR в коллекции товаров Payload с печатью этикеток и опциональными кнопками в админке.

AI Manager

Плагин Payload для автогенерации товарных описаний, заголовков, атрибутов и переводов через Claude, ChatGPT, Gemini или Kimi с пропуском уже сгенерированного контента.

EU VAT

Рассчитывает НДС ЕС для магазинов на Payload и записывает разбивку по каждому заказу: ставки, реверсивный заряд, проверку VIES и отчёт OSS.

Stock Reservation

Проверяет наличие варианта и цену до оплаты, резервирует остатки до подтверждения и закрывает пробелы чекаута в официальном плагине Payload ecommerce.

Stock Alerts

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

Shipping Rates

Добавляет зоны доставки, расчет стоимости и endpoint для quoted в магазинах на @payloadcms/plugin-ecommerce.