Экспорт в яндекс маркет

#
Экспорт в яндекс маркет
Подобный вопрос задавался на Форуме, но ответа там нет. Поэтому задаю заново
Как можно вывести в Яндекс.Маркет товары из определённых групп каталога?
Мне нужно как-то разделить товары для разных моделей работы на Маркете - ADV и DBS.
Выгружаем в эти модели разный состав предложений из одного магазина.
iNikSite - дизайн и фронтенд разработка
#
Re: Экспорт в яндекс маркет
Товары можно ограничить через queryBuilder() по shop_group_id в ТДС маркета.  
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Экспорт в яндекс маркет
А как это сделать, если The method 'queryBuilder' does not exist in 'Shop_Controller_YandexMarket' ?
iNikSite - дизайн и фронтенд разработка
#
Re: Экспорт в яндекс маркет
Пример:

$Shop_Controller_YandexMarket
   ->shopItems()
   ->queryBuilder()
   ->where('shop_items.shop_group_id', 'IN', array(1,2));
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Экспорт в яндекс маркет
Александр, этот код у меня никак не влияет на выборку из нужных групп. Всё равно в Маркет попадают товары из всех групп, где есть товары для экспорта.
Сделал вот так:

$Shop_Controller_YandexMarket
        ->checkRest(TRUE)
        ->outlets(array(5 => 111))
        ->model('DBS')
   ->parseUrl()
   ->modifications(TRUE)
   ->groupModifications(TRUE);

$Shop_Controller_YandexMarket
   ->shopItems()
   ->queryBuilder()
   ->where('shop_items.shop_group_id', 'IN', array(711));

   $Shop_Controller_YandexMarket->show();

exit();
iNikSite - дизайн и фронтенд разработка
#
Re: Экспорт в яндекс маркет
llirik писал(а):
$Shop_Controller_YandexMarket
   ->shopItems()
   ->queryBuilder()
   ->where('shop_items.shop_group_id', 'IN', array(1,2));

этот код никогда не будет работать
т.к. в _offers() идет повторное $this->_setShopItems(), которое предопределяет все что было в $this->_Shop_Items снова девственно-чистое
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Экспорт в яндекс маркет
Можете ограничить через хук:

class Shop_Controller_YandexMarket_Observer2
{
   static public function onBeforeSelectShopItems($object, $args)
   {
     
      $args[0]->queryBuilder()
      ->where('shop_items.shop_group_id', 'IN', array(711));   
   }
}

Core_Event::attach('Shop_Controller_YandexMarket.onBeforeSelectShopItems', array('Shop_Controller_YandexMarket_Observer2', 'onBeforeSelectShopItems'));


Код можно полностью поместить в ТДС маркета до выполнения ->show()
«Не выходи из комнаты, не совершай ошибку…»
Модератор
#
Re: Экспорт в яндекс маркет
alexpimnev,
спасибо, в новой версии вызов _setShopItems() будет только в конструкторе, а в _offers() будет вызываться deleteLastWhere() при $this->mode == 'between'
#
Re: Экспорт в яндекс маркет
hostcms писал(а):
Работает. Большое спасибо!
iNikSite - дизайн и фронтенд разработка
#
Re: Экспорт в яндекс маркет
hostcms писал(а):
Код можно полностью поместить в ТДС маркета до выполнения ->show()


Подскажите, пожалуйста, почему хук не срабатывает, если я создаю объект класса, унаследованного от Shop_Controller_YandexMarket?


class My_Shop_Controller_YandexMarket extends Shop_Controller_YandexMarket
{
   public function __construct(Shop_Model $oShop)
   {
      parent::__construct($oShop);

   }
}

$Shop_Controller_YandexMarket = new My_Shop_Controller_YandexMarket($oShop);
$Shop_Controller_YandexMarket->show();

Авторизация