Вход Регистрация
*— обязательные для заполнения поля
Войти через социальные сети

TS Умный экспорт новинки версии 2.0

Сегодня рассмотрим новые возможности 2-версии Битрикс модуля экспорта товаров в торговые порталы Яндекс.Маркет и Google Merchant Center.

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

Большое спасибо всем за обратную связь и участие в развитии умных решений для Битрикса!

1) Профиль

  1. http-путь до файла экспорта стал кликабельный, в один клик можно открыть файл экспорта на вашем сайте и посмотреть, а также скопировать ссылку и добавить в личном кабинете портала.
  2. Всего выгружено - здесь подсчитываются все элементы/записи попавшие в xml-файл экспорта, это количество может отличаться от суммы Элементы + Предложения, т.к. товары без цен в файл экспорта не попадают, такие товары выгружать в порталы запрещено.
  3. Элементов - здесь записывается количество всех найденных элементов по фильтру из БД, классический CIBlockElement::GetList()
  4. Предложений - здесь записывается количество всех найденных ТП (торговых предложений) по фильтру из БД.

2) Основные

Стоимость и сроки доставки - появилась возможность задать период/интервал срока доставки от — до


Габариты (Д/Ш/В) - появилась возможность задать формат габаритов с помощью 3-х макросов в рамках профиля, например, в Яндекс.Маркет габариты необходимо выгружать через слэш "/"


Метки UTM
-  появилась возможность выгружать с товаром параметры URL, конкретно классические UTM-метки типа: utm_source, utm_medium, utm_campaign, utm_content, utm_term.

Вид ссылок в файле экспорта

<url>https://tuning-soft.ru/catalog/women-s-belts/strap-weaving/?utm_source=yandex&utm_medium=cpc&utm_campaign=market&utm_content=banner-1</url>

4) Условия

Фильтр торговых предложений - здесь добавился дополнительный фильтр для отбора торговых предложений/характеристик, теперь тут все аналогично элементам, позже еще сортировка добавится и ряд доп. параметров.

5) Поля <offer>

Здесь полностью переработанный конструктор полей, появилась главная возможность задавать xml-тегу значение из нескольких полей и свойств, как элемента, так и торгового предложения.

Что нового в конструкторе полей

  1. Заметно изменен интерфейс, на 4K-мониторе очень удобно.
  2. Добавлены цвета xml-тегам для наглядного отличия:
    красный - обязательный, синий - не обязательный, серый - кастомное поле
  3. XML-тегу теперь можно присвоить несколько полей/свойств элемента или торгового предложения.
  4. Новые доп. настройки поля справа.
  5. Переделан выпадающий список типов поля, появилось Поле ТП, Свойство ТП, Мета-тег.
  6. Добавлена возможность в кастомном поле <param> задать значение атрибута unit="", как вручную в настройках поля, так и автоматически из описания свойства элемента.

Тип поля: Мета-теги

С полями и свойствами ТП надеюсь все понятно, а вот появилась еще интересная возможность, вместо классического Названия элемента можно подставить Мета-тег из IPROPERTY_TEMPLATES (Шаблоны сео мета-тегов инфоблока)

Если этот мета-тег будет у элемента пустой, то для надежности задайте полю еще второй тип Поле элемента = Название, т.к. настройка вторая по порядку, при отсутствии первой подставится вторая ниже по коду, но сначала всегда подставляется самая первая заданная конкретно полю.

Тип поля: Цена

Изменился тип поля Цена, самые нужные вам поля отмечены плюсиками +++, в скобках указан пример, что запишется в прайс, просто число или строка с учетом символа валюты.
RATIO_PRICE - Цена с учетом скидок и наценок, данное значение будет изменяться.
OLD_PRICE - Старая цена, без скидок и наценок, вроде тоже самое, что и RATIO_BASE_PRICE

Тип поля: Товар

Данный тип поля тоже немного изменился, добавлена Ставка НДС и Габариты (Д/Ш/В), тут важно отметить, что шаблон габаритов для прайса будет браться из настроек Основные, тут только задается поле.

Настраиваемое поле <param unit="">

Это поле необходимо для попадания товара в результаты фильтрации на Яндекс.Маркете, пока оно задается в ручном режиме, позже появится автоматизация.

В версии 2.1 добавлена возможность задавать полю param единицы измерения unit

<param name="Цвет">Зеленый</param>
<param name="Размер экрана" unit="дюйм">27</param>

Задать можно двумя способами:

  1. Вручную
  2. Автоматически

1 способ - Вручную

В настройках поля в профиле просто впишите нужную единицу.

2 способ  - Автоматически

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

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

Если значение свойства будет множественное, то и описаний значений будет несколько, в этом случае модуль возьмет только первое значение из списка.

Что нового в доп. настройках

Использовать в значении поля готовый текст

Здесь можно просто подставить в поле какой-то произвольный текст

Заменить значение поля (1|Y|>0|true|Да) на логическое

Очень хитрая опция, здесь важно задать полю какое-то свойство или поле элемента, которое в инфоблоке является каким-нибудь флагом типа: Новинка, Скидка, Распродажа, Лидер продаж, Доступен для покупки и т.п, скорее всего в свойстве инфоблока у вас будет в значении что-то типа "Да" или "Y", но торговые площадки такие значения могут не принимать в прайс-листе, и тогда эти значения сайта типа "Да" или "Y" нужно будет заменять, например, в Яндекс.Маркете на true и false, в Гугл.Товарах на in stock и out of stock , чтобы заменить значение из свойства нужно включить эту доп. настройку и выбрать нужный вариант логического значения из выпадающего списка.
Тут важно, чтобы в вашем свойстве значение подходило из перечисленных в поле: 1 или Y или >0 или true  или Да, вот если модуль увидел такое значение, заменит его на значение из списка, которое ИСТИНА или ЛОЖЬ.

Наглядный пример, в моем каталоге значение свойства Новинка = да, модуль заменит в прайс-листе согласно настройке значение да на true, а иначе false


Значение поля/тега в прайс-листе после замены, т.е. вместо моего да/нет подставится true/false

<model>true</model>

Доп. условия для логического значения поля

На скрине выше обратите внимание включена еще и эта опция, если не задать замену предыдущей опцией, то в значение xml-тега при совпадении данного условия Свойство Новинка инфоблока Одежда [49] равно да  запишется только true/false

Cron

Появилась возможность запускать кроном конкретный профиль по ID.

Это будет полезно, когда есть какой-то долгий профиль, который выгружается часами, а все остальные ждут очереди, его можно запускать отдельно, например, раз в сутки, а какой-то быстрый профиль, например, каждые 5 минут, в подобных случаях запуск профилей лучше разбить на отдельные запуски, но опять же, если их немного, если много профилей запустить отдельно, то они съедят всю память у сервера, по умолчанию модуль запускает профили в цикле и блокирует каждый, пока не выполнитcя 1-й, не запустится 2-й и т.д., это сделано, чтобы все профили за раз не запустились и не съедали всю память сервера.

Пример cron-задачи для ISP Manager v5

/usr/bin/php -f ~/www/tuning-soft.ru/bitrix/modules/api.export/tools/cron.php ID=1

Торговые предложения

Уникальные URL-адреса

В Яндекс.Маркет необходимо выгружать торговые предложения с уникальными/разными адресами, по умолчанию в ТП будет адрес основного товара, что есть дубль, т.е. сколько у товара будет ТП, столько будет дублей.

Задать уникальные адреса торговым предложениям можно в настройках инфоблока ТП в поле URL страницы детального просмотра заменив #PRODUCT_URL# на #PRODUCT_URL#?pid=#ID#

Пример настроек URL инфоблока ТП

В прайс-листе у каждого ТП будет свой уникальный URL

<url>https://tuning-soft.ru/catalog/dresses/dress-red-fairy/?pid=16889</url>

Но не всем подходит такой радикальный способ на рабочем сайте, можно так и каталожный раздел с ЧПУ сломать, SEO, продвижению навредить, в следующих релизах встрою аналогичную настройку в рамках экспорта, чтобы на сайте не вносить изменения.

Подстановка полей из основного товара

ТП - это характеристика/свойство основного товара, например, Цвет, Размер.

У него может не быть ни описания, ни изображения, ни мета-тегов, данные можно брать из основного товара и подставлять в поля ТП, например, чтобы у каждого ТП в выгрузке было описание основного товара или изображение.

В экспорте на данный момент есть принудительная подстановка следующих полей товара в поля ТП, если у ТП они отсутствуют:

IPROPERTY_VALUES - мета-теги
PREVIEW_PICTURE - изображение анонса
DETAIL_PICTURE - изображение детальное
PREVIEW_TEXT - текст анонса
DETAIL_TEXT - текст детальный

Условия в модуле

if(!$offer['IPROPERTY_VALUES']) {
  $offer['IPROPERTY_VALUES'] = $curElement['IPROPERTY_VALUES'];
}
if(!$offer['PREVIEW_PICTURE']) {
  $offer['PREVIEW_PICTURE'] = $curElement['PREVIEW_PICTURE'];
}
if(!$offer['DETAIL_PICTURE']) {
  $offer['DETAIL_PICTURE'] = $curElement['DETAIL_PICTURE'];
}
if(!$offer['PREVIEW_TEXT']) {
  $offer['PREVIEW_TEXT'] = $curElement['PREVIEW_TEXT'];
}
if(!$offer['DETAIL_TEXT']) {
  $offer['DETAIL_TEXT'] = $curElement['DETAIL_TEXT'];
}

В следующих релизах

  • Экспорт вручную по кнопке
  • Визуальное отображение процесса экспорта
Комментарии
Здравствуйте!
Есть ли возможность в вашем модуле выбирать товары по морже. Например в карточке товара есть закупочная цена и розничная. Можно ли сделать такой фильтр: выгружать товары не ниже и условия для выгрузки (розничная цена - закупочная)?
Если нет такой возможности, можно ли дописать модуль?
Здравствуйте!
Пока есть только такой вариант
https://s.mail.ru/GRfv/MJMR59vNq

В модуле можно дополнять фильтр на вкладке 4) Условия, уточните пожалуйста, я не точно понял оба вопроса.
1) Выгружать товары с ценой не ниже, например, 1000р.?
2) Условия для выгрузки (розничная цена - закупочная)
В модуле есть возможность выбрать цену для экспорта, а вы что хотели?
Здравствуйте!
Когда будет возможность экспорта по кнопке без Cron ?
Никаких сроков нет, но точно не скоро.
У меня у одного лыжи не едут?
При обращению к скрипту - ошибка.
Parse error: syntax error, unexpected '[' in /home/c/cy70616/public_html/bitrix/modules/main/lib/error.php on line 78
В логах:
Профиль: 1
Процесс: 17127
Выделено памяти: 500M
Начало экспорта: 14.03.2018 21:35:02

и все :(
Ну да, что за ошибка? Откуда взяли? По ней вообще ничего не понятно, точней, видно, что ошибка в главном модуле, но как это относится к модулю экспорта, непонятно.
Parse error: syntax error, unexpected '[' in /home/*****/public_html/bitrix/modules/main/lib/error.php on line 78
После запуска /bitrix/modules/api.export/tools/cron.php
В логе который хранится в папке api_export_log
Профиль:	3
Процесс: 18359
Выделено памяти: 500M
Начало экспорта: 17.03.2018 00:20:16
Тут либо сервер процесс рубит, либо какая-то несовместимость с версией Битрикс.
да чета мутно как то.
версия у меня битрикса последняя.
на 78 строке возвращается массив
вот код начиная с 76


public function jsonSerialize()
{
return [
'message' => $this->getMessage(),
'code' => $this->getCode(),
'customData' => $this->getCustomData(),
];
}

Посмотрите логи, исключения, я не знаю, что это, к чему оно относится.
Здравствуйте!
Скажите, а возможно ли добавить простой экспорт в EXCEL?
Допустим я хочу получить данные по остаткам товара на складах и простую таблицу , со всем наименованием.
Всего пару колонок (пример наименование, склад1, склад2)
Такое возможно?
Заранее спасибо за ответ!
С уважением Артем!
Здравствуйте!
Как-то я проглядел ваш вопрос, пока такой возможности нет, но планировал выгрузку в EXCEL сделать в будущем, можно сделать.
Добрый день как в вашем модуле добавить переменную local_delivery_cost
local_delivery_cost - используется только в формате CSV.
Вместо нее используется delivery-options, но в модуле конкретно для товара такой настройки пока нет, я не знаю как это в разных магазинах задается конкретно для товаров.
https://yandex.ru/support/partnermarket/elements/delivery-options.html

На данный момент есть только глобальный для всего прайса delivery-options
https://s.mail.ru/F9gT/XeQtiawSX
А как-то в ручную добавить с полем из инфо блока
В свойстве можно, типа html вот прям так задавать теги option, их же там несколько может быть
<delivery-options>
<option cost="300" days="4" order-before="18"/>
<option cost="500" days="0" order-before="15"/>
</delivery-options>
Я пока не знаю как лучше это сделать, как в других модулях сделано, либо html-свойство самим заполнять, либо можно специальное свойство для инфоблока сделать, но если с 1С синхронизация у кого будет, тоже не будет работать с пользовательскими свойствами.
Подумайте, как вам удобно, мне кажется спец. свойство написать самое то будет, или скажите как у вас это сейчас хранится, в каком виде, когда какой товар доставлять.
Нет у меня нету времени оно стандартное но у меня разная цена доставки на разный товар.
Допустим раковина 600 смеситель 400 унитаз 1000
Для хранение информации я использую поле в инфо блоке
Плюс ко всему не работает метод конвертации валют.
Но с первым вариантом решить проще я думаю просто добавив поле в раздел <offer> с возможностью выбора поля из инфо блока.
Ну с 1 пунктом я разобрался как решить 2 с конвертацией
Добрый день, подскажите решение вопроса

Как выгрузить ВСЕ картинки к товару?

Вариант один есть - но он не работает!
Через добавления доп поля param - свойство элемента - дополнительные фотографии. - НО там выгружается просто какой-то ряд цифр.
Пока еще не делал данный функционал, в ближайших обновлениях могу сделать, нужная функция, согласен с вами.
Подскажите пожалуйста!

Задавая xml-тегу description, значение из нескольких свойств элемента, в файле показывает только ОДНО свойство, а не несколько, как должно быть по логике...
Подскажите, в чем может быть проблема и как можно исправить?
Задумано по логике только одно, либо из Товара, либо из Предложения, но пишут люди часто по этому вопросу, буду точно делать возможность множественной склейки тегов.
Вам два xml-тега description нужно в прайс-листе?
Спасибо, за ответ!
Нет один description, но чтобы он состоял из нескольких свойств товара. К примеру:
Страна: Финляндия; Способ монтажа: Угловой; Материал: Латунь и т.д.
Здравствуйте!

Подскажите, в модуле задана какая-то функция конвертации валюты?
Т.е. цена у одного товара на сайте задана в Евро, у второго в Долларах, у третьего в Рублях. В публичной части, цены в Евро и Долларах конвертируются в рубли по заданному в настройках магазина курсу.
В модуле же цены выгружаются без конвертации... Т.е. к примеру цена товара 100 Евро, в XML-файл выгружается 100 Рублей, а не 7500 Рублей, как должно быть.
Как решается такой вопрос?
Конвертация валют пока еще не работает, модуль практически весь переписан, это остается еще сделать, нужно выделять время.
Ускорить любую доработку можно также донатом, кнопка "Отблагодарить".
ЗОЖ
Комментарии
Последние комментарии
В комплект к нему будет полезно установить RSS-Bridge https://github.com/RSS-Bridge/rss-bridge Позво...
"key-buffer-size 8 МБ 32M" Этот буфер используется только для myisam, зачем его увели...
В вашем примере не сохраняются параметры запроса if ($request_uri ~* &quot;^(.*/)index\.ph...
В bitrix-env используется percona 5.7. С ней не проверяли, проблем не было?
Здравствуйте. Разместили компонент на странице товара (в component_epilog.php шаблона компонента cat...
Ребята, подскажите, удалось решить проблему с подключением CSS? Чтобы оплата отображалась в шаблоне ...
На 18 битриксе все работает нормально,автор спасибо за статью,полезное дело делаете!!! Попроб...
Подписка
Выберите рассылку