Jump to content

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


Recommended Posts

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

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

 

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

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

if(X <= 100)

  weight_price = X * 4;

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

  weight_price = X * 5;

...

в конце

else

  weight_price = X * 18;

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

Link to post
Share on other sites

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

 

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

 

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites

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

Link to post
Share on other sites
  • 3 weeks later...

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

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

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

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

Link to post
Share on other sites

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

api/Orders.php  

function update_total_price(...)

 

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...