Получение данных о промо-акциях Shop-Script

В версии Shop-Script 8.3.0 появляется метод shopImportexportHelper::getPromoRules для получения данных о промо-акциях магазина. Метод предназначен для экспорта информации о промо-акциях в сторонние системы плагинами интеграции. Первый плагин, использующий этот метод - Яндекс.Маркет.

Плагины, представляющие функционал промо-акций, добавив хук для вызываемого в методе события promo_rules могут передавать данные о доступных промо-акциях.

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

Параметры события.

  • $params ['plugin'] string Строковый идентификатор плагина, запросившего данные

Ожидаемые значения: Массив данных об акциях с фиксированным ключом для каждого элемента массива с данными акции.

Формат данных об акции.

Поле Тип default Описание
type string code¹ тип акции
name string '' Название акции
description string '' Описание акции
url string '' Публичный URL описания акции на сайте
start_datetime int null Дата начала акции (unix timestamp)
end_datetime int null Дата окончания акции (unix timestamp)
settings string null Ссылка на настройки акции (формируется плагином, иначе используется ссылка на общие настройки плагина)
source string null Название источника акции (формируется плагином, иначе используется название плагина)
hint string '' Внутреннее описание акции
hash string '*'² hash коллекции товаров
promo_code string null Промо-код (для акции типа PROMO_CODE)
discount_unit string '' Символ % или код валюты ISO3 (для акций типа PROMO_CODE, FLASH_DISCOUNT)
discount_value string null Величина скидки (для акций типа PROMO_CODE, FLASH_DISCOUNT)
required_quantity string 1 Минимальное количество товаров для участия в акции
free_quantity string null Бесплатное количество товаров по акции (для акций типа N_PLUS_M)
gifts_hash string null² hash коллекции товаров, которые являются подарком к товару (для акций типа GIFT)
  1. Поддерживаемые типы акций перечислены в константах shopImportexportHelper::PROMO_TYPE_*
  2. Может быть любой строкой, поддерживаемой кодом shopProductsCollection

Обязательные поля.

Поле/Тип акции PROMO_CODE FLASH_DISCOUNT N_PLUS_M GIFT
start_datetime + * + +
end_datetime + * + +
promo_code + x x x
discount_unit * + x x
discount_value * + x x
required_quantity + + + *
free_quantity x x + x
gifts x x x *
  • x — не требуется
  • + — опциональное
  • * — обязательное

Использование данных

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

Плагин экспорта дополнительно валидириует данные о промо-акциях и может отклонять неподходящие.

Возможные причины отклонения акций на примере плагина Яндекс.Маркет:

  • неполные данные об акции
  • длина промо-кода превышает 20 символов
  • величина скидки более 95% или менее 5% или не целочисленная для акции PROMO_CODE
  • величина скидки не кратна 100 рублей для акции PROMO_CODE
  • продолжительно акции FLASH_DISCOUNT более 7 дней

4 ответа

  • 1
    Александр Тарасенко 21 февраля 2019 12:13 #

    Добрый день.

    Подскажите один момент, в новой версии плагина Подарки (по просьбам покупателей) мы реализуем возможность у подарка указать артикул (для многоартикульных товаров) 

    Получается в gifts_hash мы не сможем передать данную информацию, возможна ли доработка данного механизма или shopProductsCollection (например sku_id/3626,32323,32321 - три товара с необходимыми артикулами) ?

    • +1
      Владислав Горлов Владислав Горлов Webasyst 21 февраля 2019 15:13 #

      Прямо сейчас это не заработает - придётся подождать поддержку указания sku_id либо в коллекции, либо на уровне дополнительного кода в плагине. Кроме того, есть подозрение, что такая точность выбора подарков и товаров, к которым они идут, потребует режима экспорта каждого артикула отдельной позицией.

      • +1
        Александр Тарасенко Александр Тарасенко 22 февраля 2019 12:52 #

        Сейчас можно воспользоваться данным хуком без такой точности, но желательно все-таки поддержка sku_id в коллекциях - это может быть полезно и в других операциях с многоартикульными товарами

  • 1
    enso_studio@mail.ru 22 февраля 2019 16:17 #

    А что подразумевается под промоакциями? action=products#/promos/, action=products#/products/set_id=promo или что-то новое?

  • 1

    В плагин так-же передается параметр boolean list - за что он отвечает?

    • +1

      Этот параметр задумывался как флаг, отключающий получение "потенциально тяжелых данных" - хеши коллекций/величина скидки, но пока нет уверенности, что будет использоваться.

  • 1
    Виталий Танасюк 6 марта 2019 12:49 #

    Как выключить Промоакции  в Shop-Script 7 ?  выдает ошибки 

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите