order_calculate_discount

Позволяет применять собственные виды скидок.

Доступно начиная с версии 5.1.9.

Shop-Script

Входящие параметры (передаются по ссылке)

$params['order'] array Массив с информацией о заказе со следующими ключами:
$params['order']['id'] int ID заказа.
$params['order']['currency'] string 3-буквенный код валюты.
$params['order']['params'] array Параметры заказа в виде массива со следующими ключами:
$params['order']['params']['coupon_discount'] float|null Размер скидки по применённому купону.
$params['order']['params']['coupon_id'] int ID применённого купона.
$params['order']['params']['customer_timezone'] string Обозначение часового пояса покупателя.
$params['order']['params']['departure_datetime'] datetime Рассчитанные дата и время готовности заказа к отправке.
$params['order']['params']['ip'] string IP-адрес покупателя.
$params['order']['params']['landing'] string Относительный URL страницы, с которой покупатель начал посещение сайта.
$params['order']['params']['payment_id'] int ID выбранного способа оплаты.
$params['order']['params']['payment_name'] string Название выбранного способа оплаты.
$params['order']['params']['payment_plugin'] string Идентификатор плагина выбранного способа оплаты.
$params['order']['params']['sales_channel'] string Обозначение канала продаж.
$params['order']['params']['shipping_address.city'] string Название населённого пункта в адресе доставки.
$params['order']['params']['shipping_address.country'] string 3-буквенное обозначение страны в адресе доставки.
$params['order']['params']['shipping_address.region'] mixed Код региона в адресе доставки.
$params['order']['params']['shipping_currency'] string 3-буквенное обозначение валюты стоимости доставки.
$params['order']['params']['shipping_currency_rate'] float Курс валюты стоимости доставки к основной валюте магазина.
$params['order']['params']['shipping_id'] int ID выбранного способа доставки.
$params['order']['params']['shipping_name'] string Название выбранного способа доставки.
$params['order']['params']['shipping_rate_id'] string Название выбранного варианта доставки.
$params['order']['params']['storefront'] string Адрес витрины, на которой оформлен заказ.
$params['order']['params']['user_agent'] string Обозначение User-Agent браузера покупателя.
$params['order']['items'] array Список позиций заказа. Каждый элемент списка — массив со следующими ключами:
$params['order']['items'][]['type'] string Тип позиции заказа: 'product' (товар), 'service' (услуга).
$params['order']['items'][]['id'] int ID позиции заказа.
$params['order']['items'][]['name'] string Название позиции заказа.
$params['order']['items'][]['product_id'] int ID товара, которому соответствует позиция заказа.
$params['order']['items'][]['sku_id'] int ID модификации товара, которой соответствует позиция заказа.
$params['order']['items'][]['sku_code'] string Код артикула модификации товара, которой соответствует позиция заказа.
$params['order']['items'][]['service_id'] int|null ID заказанной услуги.
$params['order']['items'][]['service_variant_id'] int|null ID варианта заказанной услуги.
$params['order']['items'][]['price'] float Стоимость позиции заказа.
$params['order']['items'][]['quantity'] float Количество позиции заказа.
$params['order']['items'][]['quantity_denominator'] int Доступная точность указания складских остатков заказанного товара: 1 (целые штуки), 10 (точность до десятых), 100 (точность до сотых), 1000 (точность до тысячных).
$params['order']['items'][]['parent_id'] int|null ID позиции с товаром, к которой относится заказанная услуга.
$params['order']['items'][]['stock_id'] int|null ID склада, выбранного для списания остатков заказанного товара.
$params['order']['items'][]['purchase_price'] float Закупочная цена заказанного товара.
$params['order']['items'][]['total_discount'] float Размер скидки, применённой к заказанному товару.
$params['order']['items'][]['tax_percent'] float|null Размер налоговой ставки, применённой к заказанному товару.
$params['order']['items'][]['tax_included'] bool Признак включения размера налога в цену заказанного товара.
$params['order']['items'][]['stock_unit_id'] int ID складской единицы измерения количества заказанного товара.
$params['order']['items'][]['image_id'] int ID изображения товара.
$params['order']['items'][]['sku_image_id'] int ID изображения модификации товара.
$params['order']['items'][]['file_name'] string Имя загруженного файла.
$params['contact'] object Экземпляр класса waContact со свойствами покупателя.
$params['apply'] bool Флаг, требующий применения скидки, а не только её вычисления.
… код плагина …

Результат работы плагина

$return['discount']
Размер скидки в валюте заказа.
$return['description']
Описание скидки для всего заказа.
$return['items']
Массив с информацией о скидках для каждого товара в заказе; ключи массива — ID элементов заказа, значения — массивы с ключами 'discount' (размер скидки для товара) и 'description' (описание скидки для товара).
$return
Простой формат возврата размера скидки в валюте заказа вместо массива с ключами 'discount' и 'description'. В этом случае описание скидки формируется автоматически из названия плагина и суммы скидки.
Shop-Script

Пример кода плагина

PHP

public function orderCalculateDiscount($params)
{
    $discount = shopMyPluginHelper::getDiscount($params);

    return [
        'discount' => $discount['amount'],
        'description' => $discount['info'],
    ];
}