S-WEBS24

Битрикс24

CRM, процессы и приложения для вашей компании

Вернуться к списку Вернуться к статьям
Статьи

Один каталог: разные фиды: как управлять выгрузкой цен

Исключение цен из отдельной выгрузки должно работать как правило этого фида, сохраняя исходные цены каталога. Сначала проверьте, допускает ли получатель предложения без цены. Затем определите согласованное поведение для текущей суммы, старой суммы и валюты: связанные поля нельзя отключать независимо случайным набором условий.

Фиды с разными ценами
Учебная схема: фиды с разными ценами. Обозначения и примеры не относятся к конкретному клиенту.
Цена исключается только из выбранного фида Учебная сцена. Разрешённый профиль фида A исключает сумму и валюту. Цена сайта и других получателей не меняется.

Учебный магазин отправляет один каталог двум получателям. Первому нужны обычные товарные цены, второму разрешён информационный набор без цен. На сайте стоимость остаётся доступной по прежним правилам. Задача касается состава внешнего документа, а не удаления коммерческих данных из CMS и не скрытия цены во всех каналах.

Правило экспорта не должно менять первичные данные

Каталог хранит данные товара для разных задач. Фид представляет эти данные в контракте конкретного получателя. Если для одного документа цена не нужна, это не повод обнулять её в карточке или отключать тип цены для покупателей. Иначе узкая настройка экспорта затронет корзину, поиск, другой фид и уже работающие сценарии.

Полезно разделить три слоя: исходная запись цены, представление цены на сайте и сериализация в файл. Настройка «без цен» принадлежит последнему слою. Её действие можно проверить, сравнив состояние каталога до и после формирования документа. Любое изменение исходной суммы в таком сценарии требует отдельного объяснения и обычно указывает на неверную границу ответственности.

В административном интерфейсе называйте конкретную выгрузку. Общий переключатель «не показывать цены» слишком широк и провоцирует ошибки редактора. Подпись должна объяснять, что настройка касается только выбранного внешнего файла и не гарантирует поддержку этого режима любой площадкой.

Отсутствующая цена, ноль и пустой тег различаются

Формат может по-разному трактовать отсутствие элемента, пустую строку и число 0. Нулевая цена не служит универсальной заменой отсутствующей. Для внешнего сервиса она может означать бесплатное предложение или ошибку. Удаление значения из текста при сохранении пустого тега тоже не обязательно соответствует договору.

В требованиях укажите точное представление разрешённого режима без цены. Если получатель его не поддерживает, предложение придётся исключить или использовать другой согласованный формат. Нельзя обещать, что любой YML-файл с удалёнными элементами цены останется допустимым. Проверяется конкретная версия требований и конкретный вид предложения.

Для учебного контроля сравните два документа одного товара. В обычной версии присутствуют согласованные ценовые элементы. В информационной версии они отсутствуют в требуемом виде, а название, категория, изображение и ссылка остаются корректными. Разница должна ограничиваться заранее определёнными полями.

Текущая цена, старая цена и валюта образуют связанный блок

Старая цена имеет смысл относительно текущей. Если текущую сумму убрать, а зачёркнутую оставить, получатель может показать непонятную скидку или отклонить предложение. Валюта без суммы тоже может оказаться лишней или недопустимой. Поэтому настройку применяют к согласованному набору полей, а не только к одному тегу.

Проверьте дополнительные ценовые атрибуты: диапазон, цена за единицу, специальные группы или условия акции. Статья не утверждает, что все они присутствуют в исходном проекте. Их перечисление помогает составить инвентарь фактического экспорта. Если поле не используется, добавлять его ради полноты проверки не требуется.

ПолеОбычный режимРежим без цены
Текущая суммаПо контракту получателяОтсутствует только в допустимом формате
Старая суммаПри наличии подтверждённой логикиНе остаётся сиротским элементом
ВалютаСоответствует ценеОбрабатывается вместе с ценовым блоком
Название и ссылкаСохраняютсяПродолжают описывать тот же товар

Настройка должна принадлежать конкретному получателю

Если один генератор собирает несколько файлов, передавайте профиль экспорта явно. Нельзя определять режим по случайной глобальной переменной, которая осталась после предыдущего запуска. Последовательность «сначала фид без цен, затем обычный» должна давать тот же результат, что обратная последовательность.

Полезен тест параллельных запусков. Два задания с разными настройками не должны совместно менять один временный файл или общий кэш представления. Ключ результата учитывает профиль получателя. Иначе внешне непредсказуемый дефект проявится только ночью, когда планировщик запускает несколько выгрузок близко друг к другу.

Для копирования настроек добавьте явный просмотр отличий. Новый фид, созданный на основе информационного, может унаследовать выключенные цены, хотя его получатель требует их. Предпросмотр состава документа помогает увидеть такое наследование до первой загрузки. Автоматическое копирование не заменяет проверку контракта.

Проверяйте итоговый документ, а не положение флажка

Сохранённая настройка подтверждает намерение редактора. Итоговый XML подтверждает действие генератора. Откройте файл и найдите несколько предложений с обычной ценой, скидкой, отсутствующей старой ценой и несколькими валютными состояниями. Поля должны исключаться одинаково во всех ветках шаблона.

Частая ошибка состоит в том, что основной тип предложения учитывает настройку, а дополнительный шаблон продолжает выводить цену. Поэтому контроль строят по типам фактических записей, а не по одному случайному товару. Если каталог использует несколько сериализаторов, список этих путей включают в приёмку.

Автоматическая проверка может искать запрещённые элементы в нужном контексте и одновременно подтверждать наличие обязательных неценовых полей. Простого поиска слова «price» недостаточно: оно может входить в текст описания или технический атрибут другого назначения. Проверяйте структуру распарсенного документа.

Как убедиться, что сайт и другие фиды не затронуты

До изменения сохраните контрольные значения нескольких товаров на сайте и в обычной выгрузке. После генерации информационного файла перечитайте те же точки. Цена должна оставаться прежней, включая валюту и разрешённый режим показа. Проверка только административного поля не обнаружит случайную подмену общего шаблона.

Повторите опыт после очистки именно тех кэшей, которые связаны с экспортом, если они используются. Иногда ошибочное значение маскируется старым кэшем и проявляется только после его обновления. При этом массовая очистка всего сайта без необходимости создаёт лишнюю нагрузку и затрудняет локализацию.

Отдельно проверьте оформление заказа по контрольному товару на учебной копии. Правило внешнего фида не должно менять цену корзины. Не нужно выполнять реальную оплату: достаточно согласованного тестового сценария, который показывает сохранение исходного коммерческого пути.

Безопасный выпуск и возврат настройки

Сначала сформируйте файл вне рабочего адреса и проверьте его локально. Затем загрузите в тестовый режим получателя, если он предоставлен. Проверка парсером подтверждает синтаксис, а кабинет получателя подтверждает применимость контракта. Отсутствие тестового доступа фиксируют как ограничение, не заменяя его предположением «должно работать».

Возврат к обычному режиму тоже должен быть проверен. Включение цен заново должно восстановить весь согласованный блок, а не только текущую сумму без валюты или старой цены. Сравните документ с исходным контрольным вариантом и убедитесь, что остальные поля не изменились случайно.

Если в процессе изменились первичные цены каталога, побайтовое совпадение старого и нового файла не ожидается. Сравнивают правило сериализации для текущих данных. Иначе правильное коммерческое обновление можно ошибочно принять за дефект возврата настройки.

Что оставить в рабочей документации

Запишите получателя, точный формат, набор исключаемых элементов и подтверждение допустимости режима. Добавьте пример одного учебного предложения в обоих состояниях. В нём не нужны настоящие цены, товарные коды или клиентский домен. Такой пример помогает проверить будущую доработку генератора без доступа к исходной задаче.

Отдельно укажите критерий остановки публикации: неподдерживаемый режим, неполный ценовой блок, изменение обычного фида или несогласованная нулевая цена. Это конкретные причины вернуть настройку на проверку. Общая фраза «проверить корректность экспорта» не объясняет, где проходит допустимая граница.

Принятой считается изоляция правила: выбранный документ формируется в разрешённом режиме, другие получатели и сайт сохраняют свои цены, повтор и смена порядка запусков не меняют результат. Дальнейшее отображение на внешней площадке проверяется отдельно после её обработки файла.

Как проверить профиль после изменения генератора

Любая доработка общего шаблона может затронуть режим без цены, даже если разработчик менял описание или изображение. Поэтому профиль должен входить в небольшой регрессионный набор. Подготовьте одинаковые учебные товары в двух выходных документах и сравнивайте не всю строку XML, а разрешённые поля каждого режима.

Для обычного файла проверяется наличие согласованной суммы и валюты. Для информационного проверяется их отсутствие в нужном контексте и сохранность остальных обязательных данных. Такая парная проверка обнаруживает оба направления ошибки: цена неожиданно появилась там, где её не должно быть, или пропала из обычной выгрузки.

Если форматы получателей различаются, не пытайтесь добиться одинакового XML. Общими остаются исходные товары и бизнес-смысл. Каждый сериализатор должен выполнить собственный контракт. Таблица ожидаемых полей по профилям понятнее, чем условие «во всех файлах убрать одинаковые теги», которое может оказаться неверным для одного из форматов.

Почему пустое поле редактора не должно управлять всем экспортом

Отсутствующая цена у отдельного товара и режим без цен для целого фида имеют разные причины. В первом случае требуется решить судьбу конкретного предложения. Во втором состав документа меняется намеренно для всех подходящих записей. Если смешать эти состояния, заполнение цены в карточке неожиданно изменит разрешённый формат экспорта.

Разработчик должен отдельно обработать настройки профиля и качество исходных данных. Поле каталога не должно становиться скрытым переключателем режима. В предварительном отчёте можно показать товары с отсутствующим исходником, даже если информационный фид способен их экспортировать. Это полезная диагностика каталога, но не причина менять контракт документа без решения владельца.

Обратная ошибка возникает, когда режим без цен заставляет систему забыть отсутствующие суммы и при возврате к обычному фиду публикует пустые элементы. Поэтому при включении цен нужен контроль полноты исходных данных. Ранее успешный информационный экспорт не доказывает готовность тех же записей к коммерческому формату.

Как работать с внешним кэшем и подтверждением получателя

После изменения профиля получатель может продолжать показывать старое состояние, пока не скачает новый файл. Сначала убедитесь, что рабочий адрес действительно отдаёт документ новой версии. Затем проверьте время последнего получения в доступном кабинете. Только после этого исследуйте внешнюю интерпретацию.

Не меняйте URL без причины ради принудительного обновления: новый адрес может потребовать пересогласования интеграции. Если сервис поддерживает повторную загрузку, используйте предусмотренный механизм. При недоступном кабинете в отчёте разделите проверенную подготовку файла и непроверенную обработку внешней площадкой. Это честнее, чем объявлять весь сценарий успешным по локальному XML.

Для окончательного сравнения сохраните пары документов с одинаковой версией исходного каталога. Тогда различие будет связано именно с профилем экспорта. Если данные менялись между запусками, сначала выделите допустимые коммерческие изменения и только затем оценивайте действие переключателя.

Проверяющему нужен также явный признак выбранного профиля в техническом отчёте. Он помогает исключить ситуацию, когда два разных адреса случайно отдают один и тот же файл. В публичное содержимое товара этот служебный признак не переносится.

Связанные разборы

Для смежных решений пригодятся материалы: Интеграция интернет-магазина с маркетплейсами. В общем договоре обмена отдельно перечислите допустимые поля каждого канала. Исключение цены из одного фида не должно менять публичный каталог и другие выгрузки.

Вопросы по теме

Можно ли заменить отсутствующую цену нулём?

Только если это прямо предусмотрено контрактом. Ноль, пустой элемент и отсутствие элемента могут означать разные состояния.

Нужно ли удалять цену из карточки для одного фида?

Нет, задача относится к сериализации выбранной выгрузки. Исходные данные каталога должны оставаться доступными другим сценариям.

Документация и источники

  • Яндекс: структура YML: Пример дерева категорий использует id и parentId; конкретные требования зависят от получателя.
  • Цены каталога 1С-Битрикс: Модель каталога предусматривает отдельные операции над ценами; статья не утверждает конкретный обработчик исходного проекта.