private:koding:hostcms:modules:shop:import_export:yandex_market_conditions

Условия для экспорта товаров в Яндекс.Маркет

В HostCMS есть поддержка экспорта товаров в формат YML для обмена данными с Яндекс.Маркетом, за это отвечает ТДС «Экспорт в Яндекс.Маркет» и контроллер Shop_Controller_YandexMarket. Для того, чтобы добавить условия для экспорта только определенных товаров необходим наблюдатель на событие Shop_Controller_YandexMarket.onBeforeSelectShopItems.

Рассмотрим наблюдатель добавляющий ограничение на минимальную цену товара.

  1. Создаем константу YANDEX_MARKET_EXPORT_MIN_PRICE, в которой укажем цену, ниже которой товары экспортироваться не будут.
  2. Создаем файл наблюдателя:
    <?php
     
    defined('HOSTCMS') || exit('HostCMS: access denied.');
     
    /**
     * Наблюдатель для установки минимальной цены экспортируемых товаров.
     * 
     * @author KAD Systems (©) 2017
     */
    class Shop_Controller_YandexMarket_Observer_MinPrice
    {
    	/**
    	 * Устанавливает ограничение на цену минимального товара.
    	 *
    	 * @param  Shop_Controller_YandexMarket  $oShopControllerYandexMarket
    	 * @param  array  $aArgs
    	 * @return
    	 */
    	static public function onBeforeSelectShopItems(Shop_Controller_YandexMarket $oShopControllerYandexMarket, array $aArgs)
    	{
    		list($oShopItems) = $aArgs;
     
    		if (!$oShopItems || !defined('YANDEX_MARKET_EXPORT_MIN_PRICE'))
    		{
    			return;
    		}
     
    		$oShopItems->queryBuilder()
    			->where('shop_items.price', '>', YANDEX_MARKET_EXPORT_MIN_PRICE);
    	}
    }
  3. В ТДС «Экспорт в Яндекс.Маркет» перед:
    $Shop_Controller_YandexMarket->show();

    Добавляем:

    if (defined('YANDEX_MARKET_EXPORT_MIN_PRICE'))
    {
    	Core_Event::attach('Shop_Controller_YandexMarket.onBeforeSelectShopItems', array('Shop_Controller_YandexMarket_Observer_MinPrice', 'onBeforeSelectShopItems'));
    }

Страницу создал Максим Засорин 08.06.17 в 09:57

private/koding/hostcms/modules/shop/import_export/yandex_market_conditions.txt · Last modified: 27.12.17 в 10:00 by maximzasorin_gmail.com