Товар, которого временно нет на складе, не обязательно должен исчезать из каталога и терять потенциальные продажи — сценарии "под заказ" и "предзаказ" позволяют принимать заявки на товар до его физического наличия. Разберём, как реализовать оба сценария в 1С-Битрикс.
Разница между "под заказ" и "предзаказ"
"Под заказ" обычно означает товар, который магазин может привезти по запросу за известный срок — товар технически существует и доступен у поставщика, просто не хранится на собственном складе постоянно. "Предзаказ" — сценарий для товара, который ещё не выпущен вовсе (новинка, товар в разработке) и станет доступен только в будущем к конкретной дате. Разница влияет на то, какую информацию нужно показать покупателю — срок поставки в одном случае, дату релиза в другом.
Реализация через свойство статуса товара
<?php
$el = new CIBlockElement;
$el->Update($productId, [
'PROPERTY_VALUES' => [
'AVAILABILITY_STATUS' => 'ON_ORDER', // или PREORDER, IN_STOCK
'DELIVERY_DAYS' => 14,
],
]);
Отдельное свойство статуса доступности, независимое от штатного
учёта остатков (QUANTITY), даёт больше гибкости
в отображении, чем просто "остаток равен нулю" — товар с нулевым
остатком по умолчанию может выглядеть как "нет в наличии" без
возможности заказать, тогда как явный статус "под заказ" позволяет
показать отдельную кнопку и сообщение о сроке поставки вместо
обычной кнопки "в корзину".
Нужна помощь с Битрикс?
Оформление заказа с товаром под заказ
Технически заказ с товаром под заказ или предзаказ оформляется тем же штатным механизмом заказа, что и обычный — важно на уровне бизнес-процесса корректно обработать оплату: для товара, который ещё нужно закупить у поставщика или дождаться релиза, часто уместнее частичная предоплата или полная оплата по факту прибытия товара, а не автоматическое немедленное списание полной суммы, как для товара в наличии.
Уведомление о поступлении товара
<?php
use Bitrix\Main\Entity\DataManager;
class StockNotifyTable extends DataManager
{
public static function getTableName(): string
{
return 'vendor_stock_notify';
}
public static function getMap(): array
{
return [
new \Bitrix\Main\Entity\IntegerField('ID', ['primary' => true, 'autocomplete' => true]),
new \Bitrix\Main\Entity\IntegerField('PRODUCT_ID', ['required' => true]),
new \Bitrix\Main\Entity\StringField('EMAIL', ['required' => true]),
];
}
}
Отдельная форма "уведомить о поступлении" для товара под заказ или предзаказ, сохраняющая email заинтересованного покупателя в отдельную таблицу, — распространённый способ конвертировать интерес в будущую продажу: при реальном поступлении товара на склад (обновление остатка через синхронизацию с 1С) агент проверяет список ожидающих и рассылает уведомления, а не полагается на то, что заинтересованный покупатель сам вернётся проверить наличие.
Рассылка при поступлении на склад
<?php
use Bitrix\Main\Mail\Event;
function notifyStockArrival(int $productId): string
{
$waiting = StockNotifyTable::getList([
'filter' => ['PRODUCT_ID' => $productId],
]);
while ($row = $waiting->fetch()) {
Event::send([
'EVENT_NAME' => 'STOCK_ARRIVAL_NOTIFY',
'LID' => 's1',
'C_FIELDS' => ['EMAIL' => $row['EMAIL'], 'PRODUCT_ID' => $productId],
]);
StockNotifyTable::delete($row['ID']);
}
return 'notifyStockArrival(' . $productId . ');';
}
Отображение даты предзаказа на карточке
Для предзаказа важно явно показывать ожидаемую дату доступности — расплывчатое "скоро в продаже" без конкретики хуже конвертирует интерес в реальный предзаказ, чем чёткая дата, даже если эта дата впоследствии может сдвинуться. При изменении даты релиза стоит предусмотреть уведомление уже оформивших предзаказ покупателей об изменении срока, а не оставлять их узнавать об этом постфактум.
Частые ошибки
- Товар под заказ выглядит идентично "нет в наличии". Покупатель не видит возможности оформить заказ на товар, доступный под заказ.
- Полная предоплата списывается автоматически для товара, которого физически ещё нет. Не учтена специфика оплаты для отложенной поставки.
- Нет уведомления о поступлении для заинтересованных покупателей. Упущенная продажа тем, кто не вернулся сам проверить наличие.
Итог
Сценарии "под заказ" и "предзаказ" в 1С-Битрикс реализуются через отдельное свойство статуса доступности товара, независимое от штатного остатка, с корректной обработкой оплаты для отложенной поставки. Форма уведомления о поступлении с отдельной таблицей ожидающих покупателей конвертирует интерес в будущую продажу автоматически, без расчёта на то, что покупатель сам вспомнит вернуться и проверить наличие.
