ИМПОРТ / ЭКСПОРТ / Экспорт в YML файл определённых групп товаров

Заметка создана: 19 февраля 2024 г.
Если нужно отправить в 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 файла появится поле, в которое можно вписать группы каталога, для вывода их в экспортном файле.