Торговые предложения не выводятся - разбор причин
В карточке товара нет выбора размера или цвета, а предложения в инфоблоке есть. Разбираем причины по убыванию частоты, начиная со связи инфоблоков.
С чего начать
Проверяем, знает ли каталог о связке инфоблоков:
$info = \CCatalogSKU::GetInfoByProductIBlock($productIblockId);print_r($info);// пусто - инфоблок товаров не связан с инфоблоком предложений// в ответе видно инфоблок предложений и свойство связи// связку задают в настройках каталога, а не в свойствах элементовСвязь инфоблоков хранится в настройках торгового каталога, а не в свойствах элементов. Пустой ответ означает, что до вёрстки карточки дело не дошло: предложений у товара нет с точки зрения платформы.
Смотрим сами предложения товара:
$offers = \CCatalogSKU::getOffersList($productId);print_r($offers[$productId] ?? []);// пустой список - предложения не привязаны к этому товару// привязку хранит свойство предложения, а не свойство товара// второй аргумент - инфоблок предложений, ноль означает автоопределениеПредложение указывает на родителя своим свойством привязки. Элемент, лежащий в нужном инфоблоке без заполненной привязки, для карточки товара не существует.
Проверяем товарные параметры предложения:
$row = \Bitrix\Catalog\ProductTable::getRow([ 'select' => ['ID', 'TYPE', 'AVAILABLE', 'QUANTITY'], 'filter' => ['=ID' => $offerId],]);print_r($row);// записи нет - элемент не заведён товаром и в продажу не попадёт// TYPE = 4 у предложения, 3 у родительской карточки с предложениями// TYPE = 5 означает предложение с потерянной привязкой к родителюЭлемент инфоблока становится товаром только после добавления товарных параметров. Без них предложение остаётся обычным элементом: у него нет ни типа, ни признака доступности.
Причины
-
Инфоблоки не связаны как товары и предложения примерно 30% случаев
ПризнакКарточка показывает обычный товар, выбора вариантов нет ни у одного товара.
ПроверкаСмотрим настройки торгового каталога у инфоблока товаров и наличие связи с инфоблоком предложений.
Что делатьВключаем у инфоблока признак наличия торговых предложений: свойство связи заведётся само.
-
У предложения не заполнена привязка к товару примерно 25% случаев
ПризнакПредложения лежат в своём инфоблоке, но список предложений товара пуст.
ПроверкаОткрываем предложение и смотрим значение свойства привязки к родительской карточке.
Что делатьЗаполняем привязку: без неё предложение остаётся сиротой и в карточке товара не появляется.
-
Свойство отбора неподходящего типа примерно 20% случаев
ПризнакПредложения есть, а переключателя размера или цвета в карточке нет.
ПроверкаСмотрим тип свойства, по которому идёт выбор, и его множественность.
Что делатьБерём для отбора немножественное свойство типа список, справочник или привязка к элементам.
-
Предложение не заведено товаром примерно 15% случаев
ПризнакПредложение видно в списке элементов, но не участвует в продаже и не имеет доступности.
ПроверкаПроверяем наличие товарных параметров у предложения и его тип.
Что делатьДобавляем товарные параметры предложению: одного элемента инфоблока для продажи мало.
-
У предложения нет цены или остатка примерно 10% случаев
ПризнакВариант в списке есть, но выбрать его нельзя или цена показывается пустой.
ПроверкаСмотрим цены предложения по его идентификатору и остаток при включённом складском учёте.
Что делатьЗадаём цену именно предложению: цена родительской карточки в расчёт не идёт.
Частые вопросы
По каким свойствам покупатель выбирает вариант?
По немножественным свойствам типа список, справочник и привязка к элементам. Строки, числа и множественные свойства для отбора вариантов не годятся.
Почему родительская карточка не добавляется в корзину?
Родитель с предложениями сам по себе не продаётся: в корзину идёт конкретное предложение. Это тип товара, а не ошибка настройки.
Можно ли завести предложения в том же инфоблоке?
Нет, предложения живут в отдельном инфоблоке, связанном с инфоблоком товаров. Такая пара создаётся при включении признака торговых предложений.
Почему после обмена с 1С предложения пропали?
Обмен перезаписал привязку или создал предложения в другом инфоблоке. Проверяют связь инфоблоков и значение свойства привязки у нескольких предложений.
Где задавать остатки для товара с вариантами?
У каждого предложения отдельно: складские остатки и штрихкоды принадлежат конкретному варианту, а не родительской карточке.
Смежное
-
Торговые предложения - оглавление подтемы
-
Цена не меняется при выборе варианта: разбор причин - когда выбор работает, а цена стоит на месте
-
Торговые предложения изнутри: хранение, типы, выборка, корзина - типы товарных записей и потерянная привязка
-
Элемент не появляется в списке: разбор причин - если пропал сам товар, а не предложения
-
Комплекты и наборы товаров: состав, цена, продажа - почему родителя нельзя класть в комплект
-
Торговые предложения: настройка и связь с товаром - как настраивают связку
-
Свойства торговых предложений: вывод выбора и связь с товаром - какие свойства годятся для выбора
-
Выборка товаров вместе с предложениями: цены, наличие, фильтр - как получать предложения из кода
-
Цена на витрине не та: разбор причин - когда у предложения нет цены
-
Складские документы: приход, списание, перемещение, резерв - остатки предложений
-
Каталог: комплекты, скидки, склады, доступность - устройство каталога целиком
-
Создание торговых предложений из кода: привязка, цены, остатки - как правильно создавать вариант скриптом