Не выгружаются характеристики из 1С - торговые предложения после обмена
Товары после обмена на месте, а выбора размера и цвета в карточке нет. Разбираем причины по убыванию частоты: характеристики теряются на четырёх разных участках.
С чего начать
Смотрим, куда вообще приехали предложения:
use Bitrix\Catalog\CatalogIblockTable;
$res = CatalogIblockTable::getList(['select' => ['IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID']]);while ($row = $res->fetch()) { printf("инфоблок=%d товарный=%s свойство связи=%s\n", $row['IBLOCK_ID'], $row['PRODUCT_IBLOCK_ID'] ?: '-', $row['SKU_PROPERTY_ID'] ?: '-');}// строка с заполненным товарным инфоблоком и есть инфоблок предложенийХарактеристики приезжают отдельным инфоблоком торговых предложений, а не свойствами товара. Если такой связки нет, обмен либо кладёт характеристики в никуда, либо не выгружает их вовсе.
Считаем, что реально приехало:
printf("товаров=%d предложений=%d\n", CIBlockElement::GetList([], ['IBLOCK_ID' => 5, 'ACTIVE' => 'Y'], []), CIBlockElement::GetList([], ['IBLOCK_ID' => 6, 'ACTIVE' => 'Y'], []));// предложений заметно меньше товаров - характеристики выгрузились не у всех$sku = CCatalogSku::GetProductInfo($offerId); // вернёт товар-владельцаvar_dump($sku); // false означает потерянную связьЧисло предложений сравнивают с числом позиций в учётной системе. Пустой результат означает потерю на выгрузке, а заметно меньшее - выгрузку части номенклатуры без характеристик.
Ищем предложения без привязки к товару:
SELECT COUNT(*) FROM b_iblock_element eLEFT JOIN b_iblock_element_prop_s6 p ON p.IBLOCK_ELEMENT_ID = e.IDWHERE e.IBLOCK_ID = 6 AND (p.PROPERTY_11 IS NULL OR p.PROPERTY_11 = 0);-- PROPERTY_11 здесь свойство связи с товаром, номер берут из настроек каталогаПредложение без заполненного свойства связи не показывается нигде: карточка товара о нём не знает, а в списке предложений оно висит отдельной позицией. Такая связь рвётся при повторном создании товарного инфоблока.
Причины
-
Инфоблок предложений не создан или не связан примерно 30% случаев
ПризнакПосле обмена есть только товары, отдельного инфоблока предложений в списке нет.
ПроверкаСмотрим настройки каталога: у инфоблока предложений заполнен товарный инфоблок и свойство связи.
Что делатьСоздаём инфоблок предложений и настраиваем связь до обмена, затем выгружаем каталог заново.
-
В учётной системе это не характеристики примерно 25% случаев
ПризнакРазмеры и цвета заведены отдельными позициями номенклатуры или реквизитами.
ПроверкаСмотрим карточку номенклатуры в учётной системе: используется ли механизм характеристик.
Что делатьПереводим номенклатуру на характеристики либо принимаем их обычными товарами без выбора в карточке.
-
Свойства характеристик не приехали примерно 20% случаев
ПризнакПредложения есть, но выбирать в карточке нечего: у них нет размера и цвета.
ПроверкаОткрываем предложение и смотрим список его свойств и заполненные значения.
Что делатьПроверяем настройки выгрузки свойств характеристик и повторяем полный обмен с новыми настройками.
-
Связь предложения с товаром порвана примерно 15% случаев
ПризнакПредложения в инфоблоке есть, а карточка товара показывает их как отсутствующие.
ПроверкаСчитаем предложения с пустым свойством связи прямым запросом к базе.
Что делатьВосстанавливаем связь по внешним кодам и повторяем обмен, чтобы новые позиции приходили уже связанными.
-
Предложения неактивны или без цены примерно 10% случаев
ПризнакВ админке предложения видны, а в карточке товара выбор пустой.
ПроверкаСмотрим признак активности предложения и наличие у него цены и остатка.
Что делатьВключаем позиции и выгружаем цены с остатками: без них предложение считается недоступным к покупке.
Частые вопросы
Почему предложения приехали отдельным списком товаров?
Инфоблок предложений не связан с товарным. Без связи платформа считает их обычными элементами и показывает отдельными позициями.
Можно ли выгрузить характеристики в свойства товара?
Нет, штатный обмен кладёт их только в отдельный инфоблок предложений. Свойства товара для этого не предназначены.
Что делать, если у товара одна характеристика?
Она всё равно приезжает предложением. Карточка при этом показывает цену предложения, а не самого товара.
Почему после смены инфоблока пропали все размеры?
Связь предложений с товарами хранится идентификаторами элементов. Новый инфоблок получил новые идентификаторы, и старые связи указывают в пустоту.
Смежное
- Обмен каталогом с 1С - оглавление подтемы
- Не выгружаются товары из 1С - когда нет и самих товаров
- Торговые предложения - устройство предложений на сайте
- Выгрузка свойств товара из 1С - свойства и их коды
- Обмен с 1С и HTTP - устройство обмена целиком