Skip to content
  1. Компоненты
  2. msPromoCode2
  3. Кейсы
  4. Установка промо-кода программно при входе на сайт

Установка промо-кода программно при входе на сайт

Мало кто знает, что msPromoCode2 можно использовать и как компонент для скидок на товары, без обязательного ввода промо-кода юзером. Всего лишь нужно написать маленький плагин, взаимодействующий с программным API. В этом посте предлагаю данный кейс.

Делается это в 2 волшебных шага.

Шаг 1

Создаём промо-код DISCOUNT и настраиваем его, как нам необходимо.

Шаг 2

Добавляем плагин и вешаем его на событие OnWebPageInit с приоритетом -9999999.

php
// Код промо-кода, который применяем
$code = 'DISCOUNT';

$mspc2 = $modx->getService('mspromocode2', 'msPromoCode2',
    MODX_CORE_PATH . 'components/mspromocode2/model/mspromocode2/');
$mspc2->initialize($modx->context->key);
$manager = $mspc2->getManager();
switch ($modx->event->name) {
  case 'OnWebPageInit':
    $couponCurrent = $manager->getCurrentCoupon();
    $couponNew = $manager->getCoupon($code);
    if (!is_array($couponCurrent) && is_array($couponNew)) {
      $manager->setCoupon((int)$couponNew['id']);
    }
    break;
}

Главное, замените значение переменной $code, если название промо-кода у вас отличается.