Товары под заказ - продажа при нулевом остатке и сроки
Разбираем продажу того, чего нет на складе: где включается учёт количества, как разрешить заказ при нуле и что показать покупателю вместо «нет в наличии».
Решение
Смотрим настройки количественного учёта:
$product = CCatalogProduct::GetByID($elementId);printf("учёт=%s можно при нуле=%s количество=%s\n", $product['QUANTITY_TRACE'], $product['CAN_BUY_ZERO'], $product['QUANTITY']);// значение D означает «как в настройках модуля», Y и N - решение самого товараУ этих признаков три состояния, а вовсе не два. Значение «по умолчанию» отправляет к общим настройкам модуля, а явные «да» и «нет» решают судьбу товара независимо от них, и путаница между ними даёт самые странные жалобы.
Разрешаем покупку при нулевом остатке:
CCatalogProduct::Update($elementId, [ 'QUANTITY_TRACE' => 'Y', // количество учитываем 'CAN_BUY_ZERO' => 'Y', // но покупать разрешаем и при нуле]);// у торговых предложений эти признаки задаются отдельно от товараУчёт количества и запрет покупки - это разные настройки. Товар может честно показывать нулевой остаток и при этом оставаться доступным к заказу: именно так и делают позиции под заказ.
Показываем срок поставки:
$res = CIBlockElement::GetList([], ['IBLOCK_ID' => 5, 'ID' => $elementId], false, false, ['ID', 'PROPERTY_DELIVERY_DAYS']);$row = $res->Fetch();printf("под заказ, срок %s дней\n", $row['PROPERTY_DELIVERY_DAYS_VALUE'] ?: '-');Срок поставки хранят свойством и показывают рядом с кнопкой покупки. Покупатель, понимающий, что товар приедет за неделю, гораздо спокойнее того, кто узнаёт об этом от менеджера после оплаты.
Проверяем поведение корзины:
$basket = \Bitrix\Sale\Basket::loadItemsForFUser( \Bitrix\Sale\Fuser::getId(), \Bitrix\Main\Context::getCurrent()->getSite());$result = $basket->getItemByProductId($elementId)?->setField('QUANTITY', 3);// проверяют покупкой: настройки в форме и поведение корзины расходятся часто// разрешение покупки при нуле включают на товаре, а не на всём каталогеПроверяют здесь не настройки в форме, а реальное поведение корзины. Добавление товара при нулевом остатке - единственная надёжная проверка того, что признаки выставлены так, как задумано.
Обмен с учётной системой переписывает признаки вместе с количеством. Позиции под заказ либо помечают на её стороне, либо защищают обработчиком, иначе ночной сеанс вернёт им общий режим.
Схему «под заказ» стоит согласовать с закупкой до включения. Магазин, обещающий неделю и везущий месяц, теряет не одну продажу, а доверие ко всем срокам на сайте разом.
Резерв при нулевом остатке уводит количество в минус. Это нормально для схемы «под заказ», но склад должен об этом знать: отрицательный остаток на витрине выглядит как ошибка данных.
Типичные проблемы
Товар с нулевым остатком нельзя купить.
У него запрещена покупка при нуле, хотя сам учёт количества включён. Разрешение задаётся отдельным признаком в карточке товара.
Товары продаются при пустом складе везде.
Количественный учёт выключен в общих настройках модуля. Без учёта остаток на доступность товара не влияет вовсе.
Настройка товара не действует.
У признака товара стоит значение «по умолчанию». Тогда решают общие настройки модуля, а не карточка товара.
После обмена позиции перестали продаваться.
Учётная система переписала признаки вместе с количеством товара. Схему «под заказ» задают на её стороне либо защищают своим обработчиком.
На витрине отрицательный остаток.
Заказы уводят количество в минус при разрешённой покупке с нулевым остатком. Для витрины такие значения обычно показывают как ноль.
Частые вопросы
Как продавать под заказ только часть каталога?
Признаком у этих товаров, а не общей настройкой модуля. Общая настройка меняет поведение всего каталога сразу.
Показывать ли остаток у товаров под заказ?
Лучше показывать срок поставки вместо числа. Ноль рядом с кнопкой покупки смущает больше, чем помогает.
Что делать с резервом?
Либо не резервировать такие позиции, либо принимать отрицательный остаток. Второе требует договорённости со складом.
Как сообщить покупателю о задержке?
Письмом со сменой статуса заказа и сроком. Молчание до звонка менеджера - самый дорогой вариант.
Смежное
-
Каталог товаров - оглавление подтемы
-
Склады и остатки: выгрузка, вывод наличия, фильтр по складу - откуда берётся количество
-
Подписка на поступление товара: уведомление о наличии - альтернатива заказу под ноль
-
Единицы измерения, вес и габариты товара - соседние поля торгового каталога
-
Каталог и продажи - устройство магазина целиком
-
Низкие остатки: пороги, отчёт закупщику, поведение витрины - пороги и отчёт для закупок