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


Фото
- - - - -

Стоимость товара с учетом веса товара

product cart order simpla

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

#1 n1c

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

Опубликовано 26.12.2017 - 11:44

Здравствуйте уважаемые форумчане!

Подскажите пожалуйста, как вывести вес товара в корзине и заказе с учетом суммарной стоимости?

 

1 - 100 - 4
101 - 250 - 5
251 - 500 - 11
501 - 1000 - 15
1001 - 2000 - 18
 
к примеру вес от 1 грамма до 100 грамм - 4 евро, если больше 101 грамма до 250 то - 5 евро и тд
при этом чтобы считало в total_price ?
Спасибо!


#2 a13x

a13x
  • Забаненый
  • 213 сообщений
  • Дизайн, Программирование, Верстка, SEO, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 26.12.2017 - 12:19

если у товара прописан вес тогда суммировать вес всех продуктов (Х) и потом по вашему условию прогонять, например:

if(X <= 100)

  weight_price = X * 4;

elseif (X > 100 && X <= 250)

  weight_price = X * 5;

...

в конце

else

  weight_price = X * 18;

ну и потом эту цену добавить к итоговой в корзине.



#3 Пастухов

Пастухов
  • Пользователь
  • 119 сообщений
  • Программирование
  • Откуда:Минск

Опубликовано 26.12.2017 - 12:55

...как вывести вес товара в корзине и заказе с учетом суммарной стоимости?

 

Никак. Потому что вес товара НЕ зависит от стоимости.

Если Вы хотите стоимость заказа считать в зависимости от веса, то надо примерно в десятке мест вносить изменения, чтобы стоимость корректно считалась и в корзине и в заказе (и еще в некоторых других местах).



#4 n1c

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

Опубликовано 27.12.2017 - 14:28

если у товара прописан вес тогда суммировать вес всех продуктов (Х) и потом по вашему условию прогонять, например:

if(X <= 100)

  weight_price = X * 4;

elseif (X > 100 && X <= 250)

  weight_price = X * 5;

...

в конце

else

  weight_price = X * 18;

ну и потом эту цену добавить к итоговой в корзине.

 

Спасибо.

Сделал вывод в карточке товара, и в заказе. 

Но как добавить к итоговой цене? + если добавить 2 товара в корзину, то уже считает как "4 4", и не суммирует как "8"

 

В файле api/Orders.php строки:

	private function update_total_price($order_id)
	{
		$order = $this->get_order(intval($order_id));
		if(empty($order))
			return false;
		
		$query = $this->db->placehold("UPDATE __orders o SET o.total_price=IFNULL((SELECT SUM(p.price*p.amount)*(100-o.discount)/100 FROM __purchases p WHERE p.order_id=o.id), 0)+o.delivery_price*(1-o.separate_delivery)-o.coupon_discount, modified=NOW() WHERE o.id=? LIMIT 1", $order->id);
		$this->db->query($query);
		return $order->id;
	}

не нужно править?



#5 a13x

a13x
  • Забаненый
  • 213 сообщений
  • Дизайн, Программирование, Верстка, SEO, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 28.12.2017 - 17:17

К итоговой цене имеется ввиду корзина сайта? Если да, то класс view/CartView.php.

Должен не суммировать, а умножать кол-во товара на вес для каждого товара, а в конце выводить вес всех товаров, и уже общий вес прогонять по условию.



#6 mishanya

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

Опубликовано 28.12.2017 - 17:18

К итоговой цене имеется ввиду корзина сайта? Если да, то класс view/CartView.php.

Должен не суммировать, а умножать кол-во товара на вес для каждого товара, а в конце выводить вес всех товаров, и уже общий вес прогонять по условию.

 

api/Cart.php а не view/CartView.php



#7 a13x

a13x
  • Забаненый
  • 213 сообщений
  • Дизайн, Программирование, Верстка, SEO, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 28.12.2017 - 17:19

api/Cart.php а не view/CartView.php

точно.



#8 n1c

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

Опубликовано 28.12.2017 - 18:44

К итоговой цене имеется ввиду корзина сайта? Если да, то класс view/CartView.php.

Должен не суммировать, а умножать кол-во товара на вес для каждого товара, а в конце выводить вес всех товаров, и уже общий вес прогонять по условию.

 

я сделал давно вывод веса и вывод к сумме товара, но как оказалось не верно работает. если вес одного товара стоит 100г цена 4$, то за две футболки выводит 8$, а должно выводить 5$

 

сейчас в шаблоне order.tpl вывожу:

{if $purchase->ves < 100}
	4
{elseif $purchase->ves > 101 && {$purchase->ves} < 250}
	5
{elseif $purchase->ves > 251 && {$purchase->ves} < 500}
	11
{elseif $purchase->ves > 501 && {$purchase->ves} < 1000}
	15
{elseif $purchase->ves > 1001 && {$purchase->ves} < 2000}
	18
{/if}

работает, но дальше не пойму как...

что нужно указать в api/Cart.php?



#9 n1c

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

Опубликовано 17.01.2018 - 21:12

Друзья, прошу помочь. как сделать суммарный вывод веса и общей цены я сделал

кому нужно в шаблон/cart.tpl также поправил api/Cart.php, добавил туда total_ves


{if $cart->total_ves <= 100}
	{($cart->total_price+4)|convert} {$currency->sign}
{elseif $cart->total_ves >= 101 && {$cart->total_ves} <= 250}
	{($cart->total_price+5)|convert} {$currency->sign}
{elseif $cart->total_ves >= 251 && {$cart->total_ves} <= 500}
	{($cart->total_price+11)|convert} {$currency->sign}
{elseif $cart->total_ves >= 501 && {$cart->total_ves} <= 1000}
	{($cart->total_price+15)|convert} {$currency->sign}
{elseif $cart->total_ves >= 1001 && {$cart->total_ves} <= 2000}
	{($cart->total_price+18)|convert} {$currency->sign}
{/if}

не могу сделать в заказе order.tpl

показывает цифры которые я не знаю откуда берет))) ну явно считает сумму умноженную на количество, хотя не только

а как вывести общий вес не получается...



#10 Плохиш

Плохиш
  • Забаненый
  • 98 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Орел

Опубликовано 18.01.2018 - 11:01

В заказе считает принципиально иначе. 

api/Orders.php  

function update_total_price(...)



#11 n1c

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

Опубликовано 18.01.2018 - 11:13

В заказе считает принципиально иначе. 

api/Orders.php  

function update_total_price(...)

 

да, это понятно, но если добавлю p.price*p.amount+p.ves тогда будет прибавлять вес в граммах (100, 200...), а мне нужно цену по значению как выше я указывал решение в корзине



#12 Плохиш

Плохиш
  • Забаненый
  • 98 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Орел

Опубликовано 18.01.2018 - 14:31

Тогда надо писать соответствующую сложную формулу...



#13 n1c

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

Опубликовано 18.01.2018 - 14:36

Тогда надо писать соответствующую сложную формулу...

спасибо Капитан Очевидность, помог пипец



#14 n1c

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

Опубликовано 20.01.2018 - 13:06

Ребята прошу помочь! Если кто знает - отзовись!)



#15 n1c

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

Опубликовано 24.01.2018 - 23:32

Сделал, тема закрыта







Также с меткой «product, cart, order, simpla»

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

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