Перейти к содержимому


Фото
- - - - -

Добавление подарка при заказе

Добавление подарка при заказ подарок доб авление в корзину

  • Чтобы отвечать, сперва войдите на форум
23 ответов в теме

#1 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 26.03.2018 - 15:01

Добрый день.  У меня возникла одна проблема, помогите пожалуйста.

 

Пользователь делает заказ на сайте, и если он заказал два товара, то третий ему забрасывается в корзину автоматически. Но если он какой-то из этих двух товаров удалит из корзины, то акционный удаляется тоже.

 

Например: если пользователь заказал на сайте два телефона, то карта памяти (бесплатная и заранее создана как товар) автоматически забрасывается ему в корзину в качестве подарка.

 

И заранее спасибо за помощь.



#2 Gruzin

Gruzin
  • Пользователь
  • 370 сообщений
  • Верстка, Пользователь
  • Версия CMS:2.x
  • Откуда:Минск

Опубликовано 26.03.2018 - 15:26

Так всё же логично, а иначе пользователь будет класть в корзину два товара , получать третий в подарок , а затем удаляя один из товаров будет получаться что он получил подарок за один купленный, а не за два. Адрес сайта напишите пожалуйста.



#3 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 26.03.2018 - 23:00

На сайте я ничего нормального реализовать не мог.  Может подскажете хоть как при отправке заказа проверить количество товаров и как добавить к ним подарок. То есть чтобы пользователь не видел приза, а сам приз отправлялся в админку.

Пожалуйста.



Насколько я понимаю при отправке заказа исполняемый файл Cart.php, правильно?



#4 Kosjak76

Kosjak76
  • Модератор
  • 3 753 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 26.03.2018 - 23:41

Нет, неправильно

Количество товаров подсчитывается в api/Cart.php

Но отправка заказа проходит в view/CartView.php

Там при добавлении товаров можно добавить ваш подарок, если вы хотите добавлять не в Корзину, а в Заказ



#5 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 27.03.2018 - 07:49

Понял, а как можно добавить товар непосредственно в заказ?



#6 phukortsin

phukortsin
  • Пользователь
  • 269 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 27.03.2018 - 09:46

В CartView.php можно видеть пример

                $this->orders->add_purchase(array('order_id'=>$order_id, 'variant_id'=>intval($variant_id), 'amount'=>intval($amount)));



#7 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 27.03.2018 - 15:58

Насколько я понял вместо $ variant_id нужно написать id приза и вместо $ amount количество товара. А что тогда делает переменная $ order_id?

 

$this->orders->add_purchase(array('order_id'=>$order_id, 'variant_id'=>intval(55), 'amount'=>intval(1)));



#8 Kosjak76

Kosjak76
  • Модератор
  • 3 753 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 27.03.2018 - 16:19

Это АйДи заказа, в который вы будете добавлять подарок



#9 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 27.03.2018 - 16:48

Понял. Благодарю за помощь.



#10 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 27.03.2018 - 19:37

Извиняюсь, но у меня есть еще один вопрос. Как можно проверить  заказал  ли пользователь товар с id 55?



#11 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 586 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 27.03.2018 - 19:45

Извиняюсь, но у меня есть еще один вопрос. Как можно проверить  заказал  ли пользователь товар с id 55?

Зайти в заказ, навести на ссылку товара и "О, чудо, вот он мой ID!".
http://prntscr.com/ix5236

#12 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 27.03.2018 - 22:38

Вы неправильно меня поняли. Я имел в виду как проверить в CartView.php есть или в заказе товар с определенным id. И еще одно, как можно определить количество товаров в корзине с CartView.php? Заранее благодарен за помощь.



#13 Kosjak76

Kosjak76
  • Модератор
  • 3 753 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 27.03.2018 - 23:28

$cart->total_products - количество товаров

А по поводу id - можно проверить сессию shopping_cart



#14 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 586 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 27.03.2018 - 23:43

print_r($_SESSION['shopping_cart']);


#15 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 28.03.2018 - 15:22

Спасибо за проверку количества товаров.
А можно как-то в этом же файле пройтись по id всех товаров в корзине и проверить есть ли среди них id с номером 5?
Если id есть то нужно количество товаров с этим id записать в переменную. Я пытался пройтись по id в сессии, оператором foreach но ничего из этого не вышло.


#16 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 586 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 28.03.2018 - 15:24

Спасибо за проверку количества товаров.
А можно как-то в этом же файле пройтись по id всех товаров в корзине и проверить есть ли среди них id с номером 5?
Если id есть то нужно количество товаров с этим id записать в переменную. Я пытался пройтись по id в сессии, оператором foreach но ничего из этого не вышло.

if(isset($_SESSION['shopping_cart'][5]))
{
	$var = $_SESSION['shopping_cart'][5];
}


#17 Kosjak76

Kosjak76
  • Модератор
  • 3 753 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 28.03.2018 - 16:05

Только в сессии хранятся id  не ТОВАРОВ а ВАРИАНТОВ



#18 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 28.03.2018 - 16:08

Понял, большое спасибо. Простите но как количество товаров вытянуть? Я стараюсь так:

 

if(isset($_SESSION['shopping_cart'][5]))
            {
            	$var = $_SESSION['shopping_cart'][5];
            	
            	
            	setcookie('shopping_cart', $var['amount']);
            	
            	$this->orders->add_purchase(array('order_id'=>$order_id, 'variant_id'=>intval(54), 'amount'=>intval(1)));
            }else{
                $this->orders->add_purchase(array('order_id'=>$order_id, 'variant_id'=>intval(55), 'amount'=>intval(4)));
            }


#19 Kosjak76

Kosjak76
  • Модератор
  • 3 753 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 28.03.2018 - 16:13

$var['amount'] - не существует

В $var будет просто число. Количество в Корзине



#20 Dithard

Dithard
  • Пользователь
  • 30 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Росия

Опубликовано 28.03.2018 - 16:43

А с сессии прочитать никак нельзя?






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых