有关如何限制特定客户列表使用的优惠券代码的任何想法?
背景:我的公司正在宣传,我们已经通过电子邮件将折扣码发送给2000多名非常有价值的客户。我们不希望所有客户都能够使用代码,只需使用我们列表中的代码。问题是优惠券代码已经发布在一些流行的论坛和其他地方,所以除非我们做一些事情来阻止它,否则我们会从那些不打算获取代码的人那里得到一堆订单。
我正在尝试做一些紧急伤害控制 - 我想我将不得不在某处进行代码修改,但我仍然环顾四周,无法找出最佳位置。我在文件中有一个客户列表。
答案 0 :(得分:6)
你可以创建一个观察者观察salesrule_validator_process
(当应用购物车规则时触发此事件),这将需要检查两件事:
应用的规则是您要限制到客户列表的规则:
$ruleId = $observer->getEvent()->getRule()->getRuleId();
如果满足第一个条件,则检查客户是否已登录,并且电子邮件是列表中的电子邮件之一:
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 :(得分:1)
Sdek你可以创造像奥斯达夫解释的那样的奥伯。或者,如果您有一个已收到促销代码的客户列表&你不愿意让他们使用那个促销。 你可以这样做
这应该符合你想要完成的目标。
答案 2 :(得分:0)
也许您可以使用customer discounts