Shipping Classes

Добавляет поля веса, размеров и класса доставки в коллекции товаров и вариантов Payload с каноническим хранением в граммах и миллиметрах.

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

Установка

pnpm add payload-shipping-classes

Описание

Плагин расширяет коллекции `products` и `variants` из `@payloadcms/plugin-ecommerce`, но работает с любой коллекцией, совпадающей по slug. Каждый товар и вариант получает поле `weight`, группу `dimensions` (length, width, height) и связь с коллекцией `shipping-classes`. Введённое значение сохраняется как есть, а рядом записывается скрытое значение только для чтения в фиксированной единице измерения. Вес хранится в граммах, размеры в миллиметрах. Для перевода используется экирпудный фунт (453.59237 г) и дюйм (ровно 25.4 мм) с округлением до целого. Хук `beforeChange` пересчитывает канонические значения при каждом сохранении: если в частичном обновлении поле отсутствует, берётся ранее сохранённое значение, а при очистке веса записывается `null`, а не `0`. Целочисленная арифметика исключает накопление ошибок с плавающей точкой. Вариант переопределяет измерение товара по каждому параметру отдельно. Вес `0` считается переопределением, а `null`, `undefined`, нечисловое или отрицательное значение наследуется от товара. Группа `dimensions` разрешается как единое целое: если вариант задан только `length`, он заменяет длину, ширину и высоту товара разом. Функция `resolveShippingLine` указывает источник значения через `'variant'`, `'product'` или `'none'`. Плагин экспортирует чистую функцию `totalCartShipping`, которая суммирует строки корзины и возвращает `weightGrams`, `volumeMm3`, `quantity`, `shippingClasses` и `unitsWithoutWeight`. Поле `unitsWithoutWeight` отличает корзину, где у всех позиций указан вес, от корзины с позициями без веса, что важно для расчёта стоимости доставки. Возвращается обычный JSON, поэтому потребитель может прочитать результат без установки плагина. Имена полей, slug коллекций, единицы измерения и коллекция классов доставки настраиваются через опции. Плагин не имеет runtime-зависимостей и не содержит admin-компонентов, что совместимо с минорными релизами Payload.

О пакете

Имя пакета
payload-shipping-classes
Последняя версия
1.0.0
Размер
32 кБ
Лицензия
MIT
Загрузок в неделю
1
Последняя публикация
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.