Записи с меткой "YML"
ТДС Экспорт в Яндекс Маркет
Настройки ТДС
<?php
$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));
// $oCore_Out_File = new Core_Out_File();
// $oCore_Out_File->filePath(CMS_FOLDER . "yandexmarket.xml");
$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
// $Shop_Controller_YandexMarket->stdOut($oCore_Out_File);
/*
class Shop_Controller_YandexMarket_Observer2
{
static public function onBeforeSelectShopItems($object, $args)
{
$args[0]->queryBuilder()
->where('shop_items.shop_group_id', 'IN', array(711,714));
}
}
*/
Core_Event::attach('Shop_Controller_YandexMarket.onBeforeSelectShopItems', array('Shop_Controller_YandexMarket_Observer2', 'onBeforeSelectShopItems'));
$Shop_Controller_YandexMarket
->token(Core_Array::get(Core_Page::instance()->libParams, 'token', ''))
->checkRest(TRUE)
->outlets(array(5 => 111))
->model('DBS')
->parseUrl()
->modifications(TRUE)
->groupModifications(TRUE)
->type('vendor.model')
->additionalImages(array('images'))
->itemsProperties(array(618, 621, 630, 631))
->checkRest(TRUE)
->itemsForbiddenProperties(array(7431, 7493))
->show();
exit();
Все доступные методы:
- itemsProperties(TRUE|FALSE|array()) выводить значения дополнительных свойств товаров, по умолчанию TRUE.
- itemsForbiddenProperties(array()) исключать значения дополнительных свойств товаров, по умолчанию array().
- additionalImages(array()) массив tag_name дополнительных свойств для изображений.
- additionalTagNames(array()) имена тегов, включаемых в основной offer товара, с указанием соответствующих дополнительных свойств, например, array('expiry' => 117)
- addForbiddenTag('tag-name') добавить тег, запрещенный к передаче в генерируемый YML.
- addForbiddenTags(array('description', 'vendor')) массив тегов, запрещенных к передаче в генерируемый YML.
- cdata(array('description')) массив тегов, передаваемых с форматированием в виде блока символьных данных — CDATA, по умолчанию array(). Если длина кода превышает установленные лимиты, будет произведено удаление тегов и сокращение текста до установленных лимитов.
- removeForbiddenTag(name) удалить тег из списка запрещенных к передаче в генерируемый YML.
- modifications(TRUE|FALSE) экспортировать модификации, по умолчанию TRUE.
- media(TRUE|FALSE) выгружать изображения из библиотеки, по умолчанию FALSE.
- closed(TRUE|FALSE) выгружать закрытые товаров, по умолчанию FALSE.
- surcharge(200|'20%') дополнительная наценка на все товары, может быть указана в абсолютном значении, либо процентом, по умолчанию 0.
- rootItems(TRUE|FALSE) экспортировать корневые товары, по умолчанию FALSE.
- groupModifications(TRUE|FALSE) группировать модификации (атрибут group_id у offer, используется только в категориях Одежда, обувь и аксессуары, Мебель, Косметика, парфюмерия и уход, Детские товары, Аксессуары для портативной электроники), по умолчанию FALSE.
- recommended(TRUE|FALSE) экспортировать рекомендованные товары, по умолчанию FALSE.
- checkAvailable(TRUE|FALSE) проверять остаток на складе, по умолчанию TRUE. Если FALSE, то товар будет выгружаться доступным независимо от остатка на складе.
- checkRest(TRUE|FALSE) не экспортировать товары с нулевым остатком, по умолчанию FALSE. Если TRUE, то товар будет выгружаться только при наличии остатка на складе.
- deliveryOptions(TRUE|FALSE) условия доставки, по умолчанию TRUE. У самого магазина должно быть указано хотя бы одно условие доставки.
- model('ADV'|'DBS'|'FBY'|'FBY+'|'FBS') модель размещения на Маркете, влияет на выгружаемые теги, по умолчанию не задана.
- type('offer'|'vendor.model'|'book'|'audiobook'|'artist.title'|'tour'|'event-ticket') тип товара, по умолчанию 'offer'
- onStep(3000) количество товаров, выбираемых запросом за 1 шаг, по умолчанию 500
- stdOut() поток вывода, может использоваться для записи результата в файл. По умолчанию Core_Out_Std
- sno() система налогообложения (СНО) магазина. По умолчанию OSN — общая система налогообложения (ОСН).
- delay() временная задержка в микросекундах, используется на виртуальных хостингах с ограничением на ресурсы в единицу времени, по умолчанию 0. значение 10000 - 0,01 секунда.
- mode('between'|'offset') вариант перебора элементов, по умолчанию 'between'. Если у вас большая разница между идентификаторами товаров или групп, выберите 'offset'.
- priceMode('item'|'shop') режим формирования цен, по умолчанию 'item'. Если необходимо выгружать товары в валюте магазина, укажите 'shop'.
- outlets(array()) [Покупка на Яндекс.Маркете] массив соответствия ID склада в системе и ID точки продаж в Яндекс.Маркет.
- paymentMethod(array('YANDEX' => 17, 'APPLE_PAY' => 18, 'GOOGLE_PAY' => 19, 'CARD_ON_DELIVERY' => 2, 'CASH_ON_DELIVERY' => 1)) [Покупка на Яндекс.Маркете] массив соответствия способов оплаты ('YANDEX', 'APPLE_PAY', 'GOOGLE_PAY', 'CARD_ON_DELIVERY', 'CASH_ON_DELIVERY') и ID платежных систем в системе управления.
- token(string) [Покупка на Яндекс.Маркете] токен
- request(string) [Покупка на Яндекс.Маркете] данные запроса, если заданы, то используются вместо присланного запроса
- marketMode(NULL|'catalog'|'terms') Вы можете использовать общий файл для добавления товаров и для управления условиями размещения в магазинах. Но можно сделать отдельные файлы: в файле с добавлением передавать только общие параметры товаров ->marketMode('catalog'), а в файлах с условиями размещения ->marketMode('terms') — только параметры для размещения в магазинах.
- utm_source() определяет рекламодателя, например, market
- utm_medium() определяет рекламный или маркетинговый канал (цена за клик, баннер, рассылка по электронной почте).
- debug(TRUE|FALSE) фиксировать в логах поступаемые запросы, по умолчанию FALSE.
Экспорт в YML файл определённых групп товаров
Если нужно отправить в YML файл только товары из определенных групп, меняем стандартный код ТДС (Экспорт в Я.Маркет) на этот:
<?php
$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));
// $oCore_Out_File = new Core_Out_File();
// $oCore_Out_File->filePath(CMS_FOLDER . "yandexmarket.xml");
$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
// $Shop_Controller_YandexMarket->stdOut($oCore_Out_File);
$Shop_Controller_YandexMarket
->token(Core_Array::get(Core_Page::instance()->libParams, 'token', ''))
->outlets(TRUE)
->parseUrl()
->model('DBS')
->priceMode('shop')
->additionalImages(array('photo'))
->groupModifications(FALSE)
->modifications(TRUE);
$Shop_Controller_YandexMarket
->shopItems()
->queryBuilder()
->where('shop_items.shop_group_id', 'IN', array(1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465));
$Shop_Controller_YandexMarket->show();
exit();
Если нужно несколько YML файлов по разным группам товаров, то создаём в параметрах ТДС новую переменную Idgroups. Назовём её "Массив групп каталога". Тогда ТДС будет иметь вид:
<?php
$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));
$IDgroups = explode(',' , Core_Array::get(Core_Page::instance()->libParams, 'Idgroups'));
// $oCore_Out_File = new Core_Out_File();
// $oCore_Out_File->filePath(CMS_FOLDER . "yandexmarket.xml");
$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
// $Shop_Controller_YandexMarket->stdOut($oCore_Out_File);
$Shop_Controller_YandexMarket
->token(Core_Array::get(Core_Page::instance()->libParams, 'token', ''))
->outlets(TRUE)
->parseUrl()
->model('DBS')
->priceMode('shop')
->additionalImages(array('photo'))
->itemsProperties(array(150, 151, 79))
->groupModifications(FALSE)
->modifications(TRUE);
$Shop_Controller_YandexMarket
->shopItems()
->queryBuilder()
->where('shop_items.shop_group_id', 'IN', $IDgroups);
$Shop_Controller_YandexMarket->show();
exit();
При создании узла структуры для YML файла появится поле, в которое можно вписать группы каталога, для вывода их в экспортном файле.
