Журнал изменений

Virtuemart экспорт YML

Ver 3.54

Новое
  1. Изменили порядок определения единицы измерения (unit) для настраиваемого поля. Сначала определяем единицу измерения их значения настраиваемого поля, и, если там его нет, из названия поля.
    Это позволяет в названии поля (например, Размер) указать общую единицу/систему "Размер (EU)", а для отдельных товаров заменить её на "см" или другие стандартные для Маркета обозначения.
  2. К списку особых настраиваемых полей для YML добавлено поле Вес товара*. Особенно важно для товаров мультивариант, где нужно выбрать "Вес" при добавлении товара в корзину.

В xml-фиде это поле выглядит так:

<weight unit="мг">15<weight>

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

Укажите ID настраиваемого поля "Вес" в соответствующем поле настроек плагина, см. скрин ниже.

Список допустимых единиц измерения веса: мг, г, кг (без точек!)

Пример названия настраиваемого поля: Вес (кг)
Пример значения веса, если в названии единицу не указывать: 15 мг, 1.5 кг, 100 г

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

Параметры плагина, закладка "Дополнительные параметры"
параметры плагина

Ver 3.53

Улучшения Новое
  1. Добавлен параметр "ID поля управления товарами": ID настраиваемого поля Virtuemart, которое будет использовано для управления включением товаров в прайс. Значениями поля может быть Да/Нет, 1/0, true/false, участвует/не участвует.
  2. Добавлена опция "CPA -> Исключить инверсно": исключить из выгрузки товары, у которых настраиваемое поле из п.1 (см.выше) содержит значение "Да".

    Способ применения. В обычном режиме выгрузить товары со значением поля = "Да". Затем можно что-то изменить в настройках выгрузки (например, сроки доставки) и включить опцию "Исключить инверсно" – теперь в прайс попадут те товары, которые были исключены в предыдущей выгрузке. В-общем, кому надо – поймёт ))

  3. Добавлен параметр "Срок доставки от количества на складе".

    Способ применения. Например, для количества на складе меньше 5 штук можно увеличить срок доставки с учётом времени поставки на склад. Если товара много, срок доставки 1-2 дня, если мало – 5-7 дней.

  4. Исправлен баг с ценой для товаров, в карточке которых цена не установлена.
  5. Параметр "Минимальный остаток" можно указать в ссылке генерации прайса [?|&]min_quantity=0. Задаёт минимальное количество товара на складе, чтобы включить этот товар в прайс. В данном примере в прайс попадут товары с остатком от нуля и больше.
    Наличие параметра "min_quantity" в ссылке принудительно устанавливает режим "Использовать склад => Да" независимо от его значения в параметрах плагина!
  6. Добавлен триггер для дополнительных плагинов "onBeforeDescription". Это позволит добавлять специфические XML-поля в секцию товара <offer> перед полем <description> для сохранения порядка следования полей в фиде.

Ver 3.52

Улучшения Новое
  1. Поправлен порядок вывода списка изображений товара в прайсе в соответствии с их порядком в карточке товара.
  2. Для настраиваемых полей типа "Текст" или "Область текста", в случае, если в тексте присутствует HTML разметка, включается формат поля CDATA, сохранящий эту разметку как есть. Но только если в параметрах выгрузки включена опция "Cохранить HTML-теги". Если опция выключена, разметка из текста будет удалена.
  3. Добавлена поддержка плагина "StockableCustomFields" для отображения в прайсе настраиваемых полей корзины как <param>.
  4. Можно заменить список категорий на другой? Теперь – можно! Смотрите описание ниже.

Замена в прайсе списка категорий Virtuemart на любой другой список

Для разных сервисов требуется чтобы названия категорий товаров в прайсе соответствовали строго определённому списку из справочника.

Сначала сохраните блок категорий <categories> из рабочего прайса в отдельный файл с расширением xml. Далее, его нужно заполнить так, как нужно сервису, с сохранением ID категорий: просто меняете названия категорий своего сайта на категории другого.

Первая строка файла - заголовок, описание формата, не потеряйте:

<?xml version="1.0" encoding="UTF-8"?>
<categories>
  <category id="2">Велотовары</category>
  <category id="3">Горные лыжи</category>
  <category id="4">Шапки</category>
  <category id="7">Спортивная одежда</category>
  <category id="8" parentId="7">Мужчины</category>
  <category id="9" parentId="7">Женщины</category>
  <category id="11">Товары для отдыха</category>
  <category id="12">Аксессуары</category>
</categories>

В имени файла тире не ставьте, лучше совсем без тире или подчёркивание. Расширение файла - xml

Когда будет готов файл с категориями, положите его в ту же папку, куда выгружается прайс. Выгрузка будет искать его там же.

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

Чтобы запускать выгрузку с разными такими файлами-списками, можно добавить параметры в ссылку генерации прайса: ?categories_filename=catrozetka&export_filename=ymlrozetka

Пример ссылки:

https://домен/plugins/vm_ie_imaud/exportyml/exportyml.php?export_method=1&categories_filename=catrozetka&export_filename=ymlrozetka

В ссылке заданы следующие параметры: выгрузить прайс в файл, имя файла-списка категорий "catrozetka.xml", сохранить прайс с именем файла "ymlrozetka.xml"

Ver 3.51

Улучшения

Добавлены варианты вывода количества товара на складе:

  • отдельное поле <instock>,
  • param name="quantity"
  • атрибут в строке <offer id="" quantity="nnn">

Название поля/атрибута можно ввести любое необходимое. По-умолчанию это instock.

Учтите, это нестандартный элемент для Яндекс.Маркет!

Ver 3.50

Исправлено Новое

В качестве названия товара и описания товара для прайса теперь можно взять Мета информацию из карточки товара.
Это поля "Пользовательское название страницы", "Мета описание" в секции "Описание" карточки товара Virtuemart

Мета информация товара Virtuemart в прайс YML

Старая опция "Составное название товара" перешла в опцию "Название товара" как один из вариантов.

Если в настройках выгрузки выбрано "Meta Title", а в карточке товара это поле не заполнено, будет взято обычное название товара. Для схемы vendor.model название товара будет взято из "Meta Title", а название модели – из поля "Название товара".

Все варианты описания товара (краткое, полное, Мета описание) можно сочетать: всё, что включите в плагине, попадёт в прайс.

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

  2. Исправили баг в определении значений настраиваемых полей товара "Размер" и "Цвет" для варианта "Составное название".

Ver 3.49

Улучшения
  1. Доработана обработка настраиваемого поля тип "Multi variant"
  2. Исправлена неточность в определении unit из названия настраиваемого поля
  3. Добавлен параметр 'langsef' – выбор языка для прайса, если он должен отличаться от языка сайта по-умолчанию. Также доступен через параметры ссылки, например, [?|&]langsef=ru
  4. В манифест плагина добавлен сервер обновлений. Так как плагин платный и имеет ограниченный срок бесплатных обновлений, автоматически обновляться не будет, но будет показывать появление новой версии. Обновление высылаем по запросу на email, это будет указано в блоке информации по обновлению.
  5. Устранено предупреждение PHP сервера об отсутствии "$tmp_product->customfields", если настраиваемые поля в плагине полностью отключены.

Ver 3.48

Улучшения

Мы изменили логику опции "Группировать дочерние" на "Включить дочерние".

Теперь, если опция включена, в прайсе будут простые товары и родительские товары со всеми дочерними.

Если выключить – только простые товары и родительские (дочерние будут исключены).

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

Пример ссылки:

  • .../exportyml.php?group_child=0 <— только простые товары и родительские
  • .../exportyml.php?group_child=1 <— включая дочерние с указанием группы (атрибут <offer group_id="xxx">)

Ver 3.47

Новое

Добавлено новое поле <condition> (состояние товара), и связанное с ним <reason> (причина уценки).

Например:

<condition type="likenew">
   <reason>Без упаковки</reason>
</condition>

Описание у Яндекса
https://yandex.ru/support/partnermarket/efficiency/cut-price.html

Значения настраиваемого поля "Состояние товара", которые плагин правильно определит и заменит на требуемое (likenew или used):

  • как новый
  • восстановленный
  • б/у
  • подержанный
  • был в употреблении

Ver 3.46

Новое
  1. Добавлена поддержка языковых констант Joomla в качестве названий настраиваемых полей Virtuemart.

  2. Пытаемся оптимизировать используемый плагином объём оперативной памяти сервера.

  3. Теперь можно формировать множество прайсов, если они должны отличаться категориями и/или производителями!

    Для этого в ссылку можно добавлять параметры*: ID категорий, ID производителей, URI метод экспорта** &export_method=0|1|2, имя файла &export_filename=newfilename

    .../exportyml.php?category=2,3,4&manufacturer=1,2&export_method=1&export_filename=newfilename

    * Параметры в ссылке имеют безусловный приоритет над аналогичными опциями в плагине.

    ** Методы экспорта: 0 - динамический, 1 - в файл, 3 - оба.

    + Дополнено &group_child, см. Ver 3.48,

    + Дополнено &langsef, см. Ver 3.49,

Ver 3.45

Исправлено Новое
  1. Столкнулись с ошибкой загрузки нашего плагина "Export YML, Virtuemart (iMaud)" на версии Virtuemart 3.4.3

    #0 Joomla\CMS\Form\Form::getInstance() could not load file

    Точно такую же ошибку выбивает и на другом популярном скрипте vm2_market.php

    Сбой на загрузке конфигурации VM из файла
    /administrator/components/com_virtuemart/helpers/config.php
    VmConfig::loadConfig()
    при попытке загрузить плагины оплаты и доставки: vmpayment, vmshipment.

    Скрипт VM, который выполняет их загрузку, не находит xml-файлы указанных плагинов относительно текущей папки (а не от корня сайта, как это должно быть).

    В версии 3.45 мы внесли соответствующие изменения, чтобы обойти эту неприятность.

  2. Добавлен параметр "Исключить настраиваемые поля". Перечислите через запятую ID настраиваемых полей, которые не надо показывать в прайсе. Например, атрибуты корзины или поля, значения которых выводятся не корректно из-за применения сторонних плагинов настраиваемых полей.

Ver 3.44

Улучшения Новое
  1. Текст из поля "Примечание" в карточке товара (секция "Информация") теперь можно использовать как источник данных для тега <sales_notes>.

  2. Добавлена поддержка нового тега YML <pickup-options>условия самовывоза товара, в соответствии с описанием https://yandex.ru/support/partnermarket/elements/pickup-options.html

    Как и <delivery_options>, можно задать общее описание условий самовывоза для всего прайса (непосредственно в параметрах плагина), либо для любого товара отдельно через настраиваемые поля Virtuemart.

    Список связанных настраиваемых полей (нужно создать точно с таким названием):

    • pickup-options-cost
    • pickup-options-days
    • pickup-order-before

Ver 3.43

Улучшения Исправлено

Исправлен баг в определении страны из названия производителя или товара.

Чтобы автоматически определилась страна из названия, её нужно отделить от названия товара/бренда запятой. Например:

Xiaomi, Китай

Телевизор Phillips 43PP234, Малайзия

Добавьте в параметры плагина список стран, которые у вас используются, чтобы ускорить обработку. Если не перечислять страны, поиск страны будет выполняться по справочнику стран Virtuemart (это будет намного дольше).

Ver 3.42

Улучшения
  1. Добавлена функция корректировки внутренних ссылок в описании товара. Если в ссылке не указан домен сайта (относительные ссылки на другие внутренние страницы сайта или изображения) – он будет добавлен.

  2. Доработана логика формирования строки URL tracking в ссылке на страницу товара.

  3. Внутренняя оптимизация, подготовка к VM 3.4.3 (в новой версии VM замечены изменения в плане загрузки библиотек).

Ver 3.41

Новое

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

Ver 3.40

Исправлено Новое
  1. Добавлено определение срока доставки (delivery options days) для товара "под заказ".

  2. Добавлен гибридный метод формирования прайса "Динамически + Файл", когда прайс выводится по запросу в ссылке и также сохраняется как файл.

  3. Fixed bug in a 'customFieldsForAll' definition functions.

Ver 3.39

Улучшения Новое
  1. Добавлен тег <enable_auto_discounts> – разрешить Маркету показывать скидки

  2. Добавлено поле для указания единой категории Маркета. Если все товары прайса нужно отнести в общую категорию Маркета, укажите её в этом поле.

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

  4. При выборе источника описания товара доступна опция "Описание категории". Поможет, если у товаров нет никакого описания.

Ver 3.38

Новое

ВАЖНО! С этой версии добавлена поддержка собственных плагинов для выгрузки Export YML (iMaud)

Зачем? Чтобы иметь возможность внести изменения или дополнения в процессе формирования прайса без внесения изменений в основной плагин.

Благодаря этой подсистеме, через плагины можно вносить специфические для данного сайта изменения в прайсе и т.д. При этом основной пакет Export YML можно смело обновлять, не опасаясь потерять специфические модификации.

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

Теперь можно подключить дополнительный плагин "Блок Promo акции для выгрузки YML Virtuemart".

Ver 3.37

Новое

В ссылку товара можно добавить свою строку для аналитики: см. поле "UTM source"

Здесь можно написать всю строку UTM source, а также utm_medium.

Например, такая строка в этом поле:
YandexMarket&utm_medium=cpc в прайсе в конце ссылки товара будет выглядеть так
?utm_source=YandexMarket&utm_medium=cpc

Ver 3.36

Улучшения

Источником данных для штрихкода <barcode> становится поле EAN, если не выбрана опция <vendorCode> и не определено специальное настраиваемое поле товара.

Ver 3.35

Удалено

Прощай, <local_delivery_cost> !

Удалён как устаревший тег. Для описания доставки Яндекс полностью перешёл на <delivery-options>