Ограничить код купона [magento] определенным списком клиентов? - PullRequest
3 голосов
/ 17 декабря 2011

Любые идеи о том, как ограничить код купона для использования определенным списком клиентов?

Справочная информация: Моя компания проводит промо-акцию, и мы уже отправили код скидки по электронной почте.к списку 2000+ очень ценных клиентов.Мы не хотим, чтобы ВСЕ наши клиенты могли использовать код, а только те, которые есть в нашем списке.И проблема в том, что код купона уже был размещен на некоторых популярных форумах и в других местах, поэтому, если мы не сделаем что-то, чтобы предотвратить это, мы получим кучу заказов от людей, которые не собирались получать код.

Я пытаюсь сделать какой-то контроль за непредвиденным ущербом - я думаю, что мне придется где-то вносить изменения в код, но я все еще осматриваюсь, не могу найти лучшее место.У меня есть список клиентов в файле.

Ответы [ 3 ]

6 голосов
/ 17 декабря 2011

Вы можете создать наблюдателя, наблюдающего за salesrule_validator_process (это событие вызывается при применении правила корзины покупок), который должен проверить 2 вещи:

  • , к которому применяется правилоправило, которое вы хотите ограничить списком своих клиентов:

    $ruleId = $observer->getEvent()->getRule()->getRuleId();
    
  • , если первое условие выполнено, то убедитесь, что клиент вошел в систему, и что электронная почта является одним из электронных писем в вашемlist:

    if ($observer->getEvent()->getQuote()->getCustomer()->getEmail()) {
        $customerEmail = $observer->getEvent()->getQuote()->getCustomer()->getEmail();
        if ($customerEmail IS ON YOUR LIST) {
            return $this;
        } else {
            $event = $observer->getEvent();
            $result = $event->getResult();
            $result->setBaseDiscountAmount(0)->setDiscountAmount(0);
    } else {
        $event = $observer->getEvent();
        $result = $event->getResult();
        $result->setBaseDiscountAmount(0)->setDiscountAmount(0);
    }
    

Вы должны рефакторинг этого кода, чтобы поставить его в СУХОЙ, а также я не сделал фактическое условие if, но вы получите картину.
также выПридется изменить сообщение «купон успешно применен».
скажите, если вам нужна дополнительная информация.

1 голос
/ 18 декабря 2011

Сдек, ты можешь создать обервер, как объяснил Осдэйв.Или, если у вас есть список клиентов, которые получили промо-код, и вы не хотите позволить им использовать это промо.Вы можете сделать следующееобновляет группу пользователей в списке пользователей до No-promo-customer

Перейти к правилу промо, которое вы создали.отредактируйте это.& В разделе Группы клиентов выберите No-promo-Customer

Это должно выполнить то, что вы пытаетесь выполнить.

0 голосов
/ 17 декабря 2011

Возможно, вы могли бы использовать скидки для клиентов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...