Не выгружаются цены и остатки из 1С - причины по убыванию частоты
Обмен прошёл, товары на сайте есть, а цены и остатки у них пустые или нулевые.
Как проверить
Считаем, у скольких элементов вообще есть цена:
$total = CIBlockElement::GetList([], ['IBLOCK_ID' => $iblockId], []);$priced = CPrice::GetList([], ['CATALOG_GROUP_ID' => $basePriceTypeId], []);echo "элементов {$total}, строк цен {$priced}\n";// расхождение чисел показывает, у скольких товаров цены нет вовсеНоль строк цен при непустом каталоге означает, что файл цен не разобрался вовсе. Частичное покрытие указывает на обрыв между файлами или на отбор в 1С.
Сверяем типы цен по внешнему коду:
$types = CCatalogGroup::GetList([], [], false, false, ['ID', 'NAME', 'XML_ID']);while ($type = $types->Fetch()) { printf("%3d %-22s xml_id=%s\n", $type['ID'], $type['NAME'], $type['XML_ID'] ?: 'ПУСТО - обмен сюда не пишет');}Тип цены с пустым внешним кодом заведён на сайте руками. Обмен сопоставляет типы по коду, а не по названию, и в такой тип не попадёт никогда.
Причины
-
У типа цены нет внешнего кода примерно 40% случаев
ПризнакТовары приехали, строк цен ноль, в логе обмена ошибок нет.
ПроверкаСмотрим
XML_IDу всех типов цен сайта и сверяем с типами цен в выгрузке 1С.Что делатьПроставляем типу цены внешний код из 1С либо позволяем обмену завести свой тип и переносим на него витрину.
-
Цены заданы у характеристик, а выгрузка предложений выключена примерно 30% случаев
ПризнакУ товаров без характеристик цены есть, у товаров с характеристиками нет.
ПроверкаОткрываем узел обмена 1С и смотрим признак выгрузки характеристик как торговых предложений.
Что делатьВключаем выгрузку предложений: без неё цены характеристик приезжать некуда, инфоблок предложений пуст.
-
Складов больше, чем позволяет редакция примерно 20% случаев
ПризнакЦены есть, остатки нулевые, в логе строка про превышение количества складов.
ПроверкаСчитаем склады в выгрузке 1С и сверяем с лимитом редакции продукта.
Что делатьОставляем в выгрузке только рабочие склады либо переходим на редакцию с многоскладовым учётом.
-
Сеанс оборвался между файлами примерно 10% случаев
ПризнакЦены есть у части каталога, дальше по алфавиту пусто.
ПроверкаЧитаем лог: какой файл разобран последним и на каком шаге остановился сеанс.
Что делатьУменьшаем размер пачки и повторяем обмен: цены и остатки идут отдельными файлами после номенклатуры.
Если ничего не помогло
Смотрим, что вообще прислала 1С по ценам:
# файл цен отдельный, его видно по имени и по узлам внутриls -l /home/bitrix/www/upload/1c_catalog/*.xmlgrep -c '<Цены>' /home/bitrix/www/upload/1c_catalog/*.xmlНоль узлов с ценами означает, что проблема на стороне 1С и до сайта цены не доехали. Непустой файл при пустых ценах на сайте указывает на сопоставление типов: разбор идёт, а класть значения некуда.
Смотрим, каким группам доступен наполненный тип цены:
$rights = CCatalogGroup::GetGroupsList(['CATALOG_GROUP_ID' => $basePriceTypeId]);while ($row = $rights->Fetch()) { printf("тип %d доступен группе %d на просмотр=%s\n", $row['CATALOG_GROUP_ID'], $row['GROUP_ID'], $row['BUY'] === 'Y' ? 'и покупку' : 'только');}Тип цены без доступа для группы «все пользователи» наполнен, но невидим гостю: формально цена есть, а витрина показывает пустоту.
Частые вопросы
Почему цены выгрузились только при включённой галке про характеристики?
Значит цены в 1С заданы у характеристик номенклатуры, а не у самой номенклатуры. Без выгрузки характеристик торговых предложений на сайте нет, и цене некуда записаться.
Остатки по складам нулевые, а общий остаток есть.
Складской учёт и простое количество - разные механизмы. Остатки по складам приезжают отдельным узлом, и при превышении лимита складов обмен пишет только суммарное количество.
Можно ли выгрузить только цены, без товаров?
Да, 1С умеет присылать файл цен отдельно. Сопоставление идёт по внешним кодам товаров, поэтому сами товары должны быть на сайте заранее.
Цена приехала, но на витрине её нет.
Скорее всего показывается другой тип цены. Витрина берёт тип, доступный группе покупателя, а обмен мог записать в тип, доступный только администратору.
Смежное
-
Цены, скидки и купоны - оглавление подтемы
-
Выгрузка товаров из 1С на сайт - настройка обмена каталогом
-
Выгрузка торговых предложений из 1С - цены характеристик
-
Каталог и продажи - устройство каталога
-
Склады и остатки: выгрузка, вывод наличия, фильтр по складу - как устроен складской учёт
-
Выгрузка цен из 1С: типы цен, единицы, частичный обмен - как приём цен работает штатно
-
Типы цен: розница и опт, права групп, цена по количеству - как типы цен устроены на сайте
-
Остатки из 1С: сопоставление складов и приём количества - вторая половина файла предложений
-
Цены не обновились после обмена: разбор причин - когда цены есть, но прежние