Вывод информации по промо-коду в письме

14 октября 2020, 07:00

В этом кейсе мы рассмотрим вывод промо-кода и информацию по скидке в письме пользователю/менеджеру.

На самом деле такая возможность не совсем явным образом бросается в глаза. Делается это в 2 простых шага.

Шаг 1

В чанке письма, где нибудь в начале, пишем такой код:

{var $coupon = (('!pdoResources' | snippet : [
    'class' => 'mspc2CouponOrder',
    'loadModels' => 'msPromoCode2',
    'innerJoin' => [ [
        'class' => 'mspc2Coupon',
        'alias' => 'mspc2Coupon',
        'on' => 'mspc2Coupon.id = mspc2CouponOrder.coupon',
    ] ],
    'select' => [
        'mspc2CouponOrder' => 'code, discount, discount_amount',
    ],
    'where' => [
        'mspc2CouponOrder.order' => $order['id'],
    ],
    'sortby' => '{"id":"ASC"}',
    'return' => 'json',
]) | fromJSON)}
{if $coupon?}
    {var $coupon = $coupon[0]}
{/if}

Таким образом мы получим массив в переменную $coupon или пустой массив, если купон к заказу не привязан:

Array (
    [code] => DISCOUNT
    [discount] => 20%
    [discount_amount] => 40218.00
)

Шаг 2

Имея эту информацию по купону мы можем узнать и стоимость корзины без скидки:

Сумма скидки: {$coupon['discount_amount']}
Стоимость со скидкой: {$total['cart_cost']}
Стоимость без скидки: {($coupon['discount_amount'] + ($total['cart_cost'] | replace : ' ' : ''))}

Обратите внимание на то, как я обрабатываю стоимость корзины: $total.cart_cost | replace : ' ' : ''. Дело в том, что в чанк письма стоимость попадает не числом, а строкой с пробелами в виде разделителей тысяч: 1 000.00. Если его не обработать, то подсчёт будет некорректным.



Предыдущий документ
Генерация промо-кода в письме на следующий заказ
Следующий документ
Установка промо-кода программно при входе на сайт