Перейти к содержанию
Официальный форум поддержки Simpla

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


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

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

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

 

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

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

if(X <= 100)

  weight_price = X * 4;

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

  weight_price = X * 5;

...

в конце

else

  weight_price = X * 18;

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

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

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

 

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

 

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

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

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

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;
	}

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

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

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

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

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

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

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

 

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

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

К итоговой цене имеется ввиду корзина сайта? Если да, то класс 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?

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

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

кому нужно в шаблон/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

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

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

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

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

api/Orders.php  

function update_total_price(...)

 

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

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...