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


Фото
- - - - -

При самовывозе скидка 10%


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

#1 Dithard

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

Опубликовано 31.03.2018 - 19:22

Здравствуйте.  Подскажите пожалуйста как сделать так, чтобы при выборе способа доставки "Самовывоз" делалась скидка на заказ в размере 10%.  Выбор способа доставки реализован на radio

 

<div id="deliveries">
					<div class="deline">
			<div class="chk">
				<input type="radio" name="delivery_id" value="1" checked="" id="deliveries_1">
				<label for="deliveries_1">
				Курьерская доставка по Москве			
				</label>			
			</div>
				
		</div>
				<div class="deline">
			<div class="chk">
				<input type="radio" name="delivery_id" value="2" id="deliveries_2">
				<label for="deliveries_2">
				Самовывоз			
				</label>			
			</div>
				
		</div>
			
	<div class="clear"></div>
</div>

Заранее благодарен за помощь.



#2 mishanya

mishanya
  • Фрилансер
  • 2 550 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 31.03.2018 - 22:54

можно если вы не пользуетесь скидками пользователей ($user->discount)

 

в view/CartView.php добавить ПОСЛЕ

 

// Скидка
$cart = $this->cart->get_cart();
$order->discount = $cart->discount;

 

строку

 

if($order->delivery_id==2)
    $order->discount = 10;


#3 phukortsin

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

Опубликовано 01.04.2018 - 09:47

Может работать неверно, если в админке на странице заказе изменить способ доставки.



#4 mishanya

mishanya
  • Фрилансер
  • 2 550 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 01.04.2018 - 10:50

Может работать неверно, если в админке на странице заказе изменить способ доставки.

 

да, нужно дописывать и в админке или менять вручную поле скидка



#5 Dithard

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

Опубликовано 01.04.2018 - 23:21

А в корзине пользователю как вывести?



В на сайте регистрации нет



#6 phukortsin

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

Опубликовано 02.04.2018 - 09:52

Если Вы хотите выводить в корзине свой % скидки, то это не совсем просто  В ПРИНЦИПЕ.  И, скорее всего, породит еще массу проблем. Потому что в корзине покупатель выбирает способ доставки, от которого этот % зависит. Значит, надо его менять как-то на ходу.  Если захотите  пользователю  вывести стоимость с учетом скидки, еще добавочно что-то делать - надо корзину перегружать при выборе способа доставки либо что-то через JS менять...



#7 Dithard

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

Опубликовано 02.04.2018 - 11:22

Может создать отдельную функцию php i обращаться к ней используя Ajax? Эта функция, если самовывоз, создает сессию, а в файле Order View.php проверяется эта сессия, если есть то учитывается скидка. Если же выбран самовывоз то выполняется другая функция, которая проверяет есть ли сессия, и если есть то удаляет ее.



И еще одно, подскажите пожалуйста как при отправке заказа в CartView.php проверить общую стоимость? Это нужно, чтобы скидка на самовывоз работала только от определенной суммы.


Изменено: Dithard, 02.04.2018 - 11:22


#8 phukortsin

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

Опубликовано 02.04.2018 - 12:29

Может создать отдельную функцию php i обращаться к ней используя Ajax? Эта функция, если самовывоз, создает сессию, а в файле Order View.php проверяется эта сессия, если есть то учитывается скидка. Если же выбран самовывоз то выполняется другая функция, которая проверяет есть ли

сессия, и если есть то удаляет ее.

 

Конечно, можно. Пробуйте...

 

И еще одно, подскажите пожалуйста как при отправке заказа в CartView.php проверить общую стоимость? Это нужно, чтобы скидка на самовывоз работала только от определенной суммы.

 

Пример можно легко найти в том же файле:

 

            // Стоимость доставки
            $delivery = $this->delivery->get_delivery($order->delivery_id);
            if(!empty($delivery) && $delivery->free_from > $order->total_price)
            {
                $this->orders->update_order($order->id, array('delivery_price'=>$delivery->price, 'separate_delivery'=>$delivery->separate_payment));
            }
 



#9 Dithard

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

Опубликовано 02.04.2018 - 13:39

Вы неправильно меня поняли, я имел в виду общую стоимость товаров, которые в корзине.



#10 Kosjak76

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

Опубликовано 02.04.2018 - 13:46

$order->total_price или $cart->total_price



#11 Dithard

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

Опубликовано 02.04.2018 - 15:41

Спасибо за помощь!

:D






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

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