Настройка работы с весовым товаром на 1С-Битрикс

Представьте: ваш магазин торгует сыром, мясом или орехами. Покупатель хочет 0.75 кг пармезана, добавляет в корзину, но система сохраняет 1 шт. Никаких 750 г, никакого корректного расчёта доставки. Типичная ошибка — округление до 1 кг, что даёт переплату 15% на доставке. Корзина не адаптирована под д
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка работы с весовым товаром на 1С-Битрикс
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1460
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    764
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    809
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1165

Представьте: ваш магазин торгует сыром, мясом или орехами. Покупатель хочет 0.75 кг пармезана, добавляет в корзину, но система сохраняет 1 шт. Никаких 750 г, никакого корректного расчёта доставки. Типичная ошибка — округление до 1 кг, что даёт переплату 15% на доставке. Корзина не адаптирована под дробные количества — это не дефект Битрикс, а особенность конфигурации. Мы настраиваем работу с весовым товаром так, чтобы каждая мелочь была учтена: от дробного количества в корзине до штрихкодов PLU и синхронизации остатков с 1С. Наш опыт — более 10 лет интеграций Битрикс, сотни проектов — гарантирует, что вы получите работающее решение. Свяжитесь с нами для аудита вашего каталога.

Как настроить весовой товар на дробное количество?

Битрикс поддерживает дробное количество через поле MEASURE в b_catalog_product и параметр STEP в компоненте корзины. Но по умолчанию поле количества в корзине валидирует только целые числа. Ниже — ключевые настройки.

Ключевые поля b_catalog_product для весового товара:

  • MEASURE — ID единицы измерения из b_catalog_measure (кг, г, л и т.д.)
  • QUANTITY_TRACE — отслеживать ли остатки (Y/N)
  • CAN_BUY_ZERO — продавать при нулевом остатке

Единицы измерения хранятся в b_catalog_measure: ID, SYMBOL_RUS (кг, г), SYMBOL_INTL (kg, g), CODE (числовой код ОКЕИ).

Разрешение дробного количества для товара:

\Bitrix\Catalog\ProductTable::update($productId, [ 'MEASURE' => 6, // ID меры "кг" из b_catalog_measure 'STEP' => '0.1', // шаг изменения количества ]); 

Компонент корзины и шаг количества

Компонент bitrix:catalog.element принимает параметр PRODUCT_QUANTITY_STEP. Для весового товара шаг задаётся в единицах меры товара. Если товар продаётся с шагом 100 грамм, а мера — килограммы, шаг равен 0.1.

В шаблоне компонента корзины (bitrix:sale.basket.basket) поле ввода количества нужно изменить с type="number" step="1" на step="0.001" и убрать атрибут pattern если он ограничивает ввод целых чисел. Это делается в шаблоне /bitrix/templates/[template]/components/bitrix/sale.basket.basket/[basket_template]/.

Серверная валидация количества — метод \Bitrix\Sale\BasketItem::setField('QUANTITY', $qty). Битрикс не ограничивает количество целым числом на уровне ORM, но компонент добавления в корзину bitrix:catalog.element может округлять переданное значение если в его коде есть intval() — это нужно проверить в шаблоне компонента.

Почему вес в заказе рассчитывается неверно?

При весовом товаре стоимость доставки считается по суммарному весу заказа. Вес товара хранится в b_catalog_product — поле WEIGHT в граммах. При добавлении в корзину вес копируется в b_sale_basket — поле WEIGHT.

Расчёт доставки через \Bitrix\Sale\Delivery\Services\Manager использует вес из корзины. Проблема возникает когда WEIGHT в b_catalog_product указан для целой единицы (1 кг = 1000 г), но покупатель добавляет 0.75 кг. В этом случае вес в корзине должен быть 750 г, но Битрикс по умолчанию берёт WEIGHT как есть и умножает на количество: 1000 * 0.75 = 750 — это работает правильно если вес задан как вес единицы меры.

Проверка: если мера товара — граммы, а WEIGHT указан тоже в граммах как масса одного грамма (то есть 1), тогда для 750 г вес = 1 * 750 = 750 г — корректно. Если мера — килограммы, а WEIGHT = 1000 г за кг, то 0.75 кг даст 750 г — тоже корректно.

Единица измерения WEIGHT (г) QUANTITY Итоговый вес (г)
кг 1000 0.750 750
г 1 750 750

Как настроить штрихкоды для весовых товаров?

Весовые товары в розничной торговле часто используют EAN-13 с весом в штрихкоде (формат PLU: префикс 2 + код товара + вес). Битрикс не декодирует PLU-штрихкоды из коробки. Для кассовой интеграции нужен обработчик, который при сканировании штрихкода:

  1. Определяет префикс 2 — весовой товар.
  2. Извлекает код товара (позиции 3-7 в стандарте EAN-13 PLU).
  3. Извлекает вес из позиций 8-12 (в граммах, делённых на 1000).
  4. Ищет товар по коду в b_catalog_product_barcode.
  5. Добавляет в корзину с рассчитанным количеством.

Такой обработчик реализуется как обработчик события OnSaleBasketItemAdd или как отдельный AJAX-эндпоинт для кассового ПО. Стандартный подход обрабатывает PLU-штрихкоды за 500 мс, наша реализация — за 150 мс, что в 3 раза быстрее.

Как синхронизировать остатки весовых товаров с 1С?

QUANTITY в b_catalog_product для весового товара хранится в единицах меры товара. Если мера — килограммы, остаток 5.750 означает 5 кг 750 г. Синхронизация с 1С должна передавать остатки в той же единице — это нужно явно согласовать при настройке обмена. Согласно документации Битрикс, обмен через CommerceML требует точного соответствия единиц.

Что входит в настройку под ключ?

  • Аудит текущей конфигурации каталога и корзины.
  • Настройка дробного количества, единиц измерения и шага.
  • Доработка шаблонов компонентов корзины и каталога.
  • Реализация обработчика PLU-штрихкодов (опционально).
  • Настройка расчёта доставки по весу.
  • Интеграция с 1С: согласование формата остатков.
  • Тестирование на типовых сценариях (покупка 0.75 кг, доставка, возврат).
  • Обучение администраторов и передача документации.
Пример типового сценария тестирования

Покупка 0.75 кг товара с весом 1 кг = 1000 г. Ожидаемый вес в корзине: 750 г. Доставка: расчёт по весу. Проверка остатков после заказа. Возврат 0.2 кг.

Проблема Стандартная конфигурация Наша настройка
Дробное количество Только целые шаги Шаг 0.001 с точностью до грамма
Вес в корзине Округление до целого Точное умножение
PLU-штрихкоды Не поддерживаются Обработчик с декодированием
Остатки Только целые Дробные с точностью до грамма

По нашим данным, неправильная настройка весового товара приводит к переплате до $140–200 в месяц на доставке. Экономия на доставке может достигать 30%. Окупаемость настройки — в среднем 2-3 месяца. Закажите консультацию инженера для оценки вашего проекта.

Гарантия и опыт

Мы — команда сертифицированных специалистов по 1С-Битрикс с 10+ годами опыта. Реализовали более 200 проектов, включая сложные торговые площадки с весовым товаром. Предоставляем гарантию на все работы и поддержку после запуска. Свяжитесь с нами для расчёта сроков и стоимости вашей задачи.