Перейти к содержанию
walik

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

Рекомендуемые сообщения

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привязать в админке: "код купона --- товар с "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);
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.