Jump to content
Sign in to follow this  
walik

Как добавить бесплатный продукт в корзину

Recommended Posts

Задача - Нужно что бы при выдаче купона, можно было указать какой продукт будет даваться пользователю бесплатно. То есть я вам даю код купона - V2335 (к примеру), и когда вы его вбиваете, то вам в корзину добавляется продукт (выбранный в админке до этого), с 0 (нулевой) ценой (в подарок как бы).

 

Я сделал в админке что бы при создании купона можно было бы выбирать подарочные продукты. И тут у меня встала проблема, когда пользователь активирует купон, как мне добавить к нему в корзину продукт, при том что бы продукт был бесплатен, или если есть такой продукт уже в корзине, то что бы одна единица стала бесплатно ?

 

Не прошу писать код за меня, а просто рассказать, в какую сторону копать, как можно такое решить. Просто в opencart я новичек, и не знаю всех его нюансов.

Share this post


Link to post
Share on other sites

Привязать в админке: "код купона --- товар с "0" ценой", в самом же контроллере, где идёт добавление в корзину, найти условие:

if (isset($this->request->post['coupon'])) {
//и пишите функцию проверки по таблице привязки "код купона --- товар с "0" ценой

$this->load->model('checkout/coupon');

$bonus = $this->model_checkout_coupon->getCouponToProduct($this->request->post['coupon']);

//Потом просто добавляете в корзину
if ($bonus) {
$this->cart->add($bonus, 1);
}
}

Share this post


Link to post
Share on other sites

Если просто добавлять в корзину товар, то он будет добавляться с ценой из магазина.

 

Сделал так что:

   1) при добавлении купона, я добавляю товар в корзину, но в отдельный массив в сессию $this->session->data['free_products'] = array();  добавляю ID продукта, что бы знать что именно он бесплатный.

   2) У класса карт в методе getProducts сделал проверку что если ID продукта присутствует в массиве free_products, то меняю у переменных $price, $option_price и $original_price значение на 0 (ноль)

 

Осталась еще проблема что если подарок уже был в корзине (то есть продукт с таким ID), то сбрасывается цена на 0 независимо от кол-во продуктов, но это уже попровимо)))

 

Пол задачи уже получилось решить)))

Share this post


Link to post
Share on other sites

Так а почему б товары с "0" ценой не сделать 0 по цене в админке, как отдельный товар и не привязывать в категориях (что бы по сайту не фигурировал) в корзине же при проверке массива free_products сделать неактивным href на эти товары.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.