dlcrea Posted March 25, 2019 Share Posted March 25, 2019 Hello, I want to create automatic voucher with free shipping only usable on one of my carriers after regristration. So I create an override of AuthController with : protected function sendConfirmationMail(Customer $customer) { if (!Configuration::get('PS_CUSTOMER_CREATION_EMAIL')) { return true; } $cartRuleObj = new CartRule(); $cartRuleObj->date_from = date('Y-m-d H:i:s'); $cartRuleObj->date_to = date('Y-m-d H:i:s', strtotime('+1 year')); $cartRuleObj->name[Configuration::get('PS_LANG_DEFAULT')] = 'Free shipping first order'; $cartRuleObj->quantity = 1; $code = Tools::passwdGen(); while (CartRule::cartRuleExists($code)) { $code = Tools::passwdGen(); } $cartRuleObj->code = $code; $cartRuleObj->quantity_per_user = 1; $cartRuleObj->reduction_percent = 0; $cartRuleObj->reduction_amount = 0; $cartRuleObj->free_shipping = 1; $cartRuleObj->active = 1; $cartRuleObj->minimum_amount = 0; $cartRuleObj->id_customer = $customer->id; $cartRuleObj->add(); return Mail::Send( $this->context->language->id, 'account', Mail::l('Welcome!'), array( '{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, '{email}' => $customer->email, '{passwd}' => Tools::getValue('passwd'), '{coupon}' => $code), $customer->email, $customer->firstname.' '.$customer->lastname ); } } This works fine but the free shipping applied to all the carriers. So I add : $cartRuleObj->carrier_restriction = 1; My created voucher is now not available for any carrier. What should I add for attribute the ID of my carrier to the voucher ? Thanks for your help. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now