Каталоги поставщиков

Как вытащить размер из ХарактеристикиТовара в CommerceML

2026-06-29
Задача

В CommerceML характеристики хранятся парами Наименование и Значение. Нужно получить отдельное поле Размер, не подмешивая Цвет.

Короткий ответ

Откройте Значение внутри ХарактеристикаТовара и добавьте условие по Наименование: регулярное выражение ^Размер$ (находит значение, которое целиком равно Размер).

Как сделать в Eofferix

  1. В XML-снапшоте выберите значение Значение.

  2. Откройте настройки значения.

    Открытие настроек XML-значения
    Анимация показывает открытие настроек конкретного значения.
  3. Добавьте условие экспорта по соседнему полю: Наименование ^Размер$.

    Условие XML-значения
    Так Eofferix берет только нужное значение из повторяющегося блока.

Было / стало

Было

исходные данные
<КоммерческаяИнформация ВерсияСхемы="2.10">
  <Каталог>
    <Товары>
      <Товар>
        <Ид>SKU-4001</Ид><Наименование>Лампа Ладога</Наименование>
        <ХарактеристикиТовара>
          <ХарактеристикаТовара><Наименование>Размер</Наименование><Значение>M</Значение></ХарактеристикаТовара>
          <ХарактеристикаТовара><Наименование>Цвет</Наименование><Значение>white</Значение></ХарактеристикаТовара>
        </ХарактеристикиТовара>
      </Товар>
    </Товары>
  </Каталог>
</КоммерческаяИнформация>

Стало

результат
<КоммерческаяИнформация ВерсияСхемы="2.10">
  <Каталог>
    <Товары>
      <Товар><Ид>SKU-4001</Ид><Наименование>Лампа Ладога</Наименование><Размер>M</Размер></Товар>
      <Товар><Ид>SKU-4002</Ид><Наименование>Кресло Волга</Наименование><Размер>L</Размер></Товар>
    </Товары>
  </Каталог>
</КоммерческаяИнформация>

Что важно помнить

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

Обрабатывайте данные быстрее с Eofferix

Создайте бесплатный аккаунт, чтобы автоматизировать каталоги и прайс-листы под ваши правила.

Зарегистрироваться