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


Фото
- - - - -

Изменение цены товара в файле Cart.php


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

#1 Koc

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

Опубликовано 19.04.2019 - 22:34

Всем привет, подскажите в чем может быть ошибка..

 

В файле api/Cart.php, там где формируется $purchase, хочу добавить к цене +100 руб., но проблема в том, что для каждого следующего товара, эта цена прибавляется с учетом прошлого суммирования.

foreach($items as $item)
{    
    $purchase = null;
    if(!empty($products[$item->variant->product_id]))
    {

        $item->variant->price += 100;

        $purchase = new stdClass();
        $purchase->product = $products[$item->variant->product_id];                        
        $purchase->variant = $item->variant;
        $purchase->amount = $item->amount;
        $purchase->options_id = $item->options_id;
        
        $cart->purchases[] = $purchase;
        $cart->total_price += $item->variant->price*$item->amount;
        $cart->total_products += $item->amount;
    }
}
 

В итоге получается в корзине лежит 3 товара, каждый изначально стоит по 200 руб., НО если прибавлять по 100 как в коде выше, по идее каждый товар должен стоить 300. А получается что 300, 400, 500.

 

Почему так получается?

 



#2 Noxter

Noxter

    Simpla Developer

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

Опубликовано 19.04.2019 - 22:39

$item->variant->price = ($item->variant->price + 100);

#3 Koc

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

Опубликовано 20.04.2019 - 08:19

$item->variant->price = ($item->variant->price + 100);

 

Тоже самое получается, у всех последующих товаров цена увеличивается не на 100, а на 200, 300, 400 и т.д., то есть с учетом прошлого увеличения.



#4 phukortsin

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

Опубликовано 20.04.2019 - 08:45

$item->variant->price = ($item->variant->price + 100);


Очень забавно и смешно.
Это рекомендация опытного специалиста с многолетним стажем?
А остальные места в Simpla c операторами '+=' тоже надо переделывать на более сложный синтаксис?

В итоге получается в корзине лежит 3 товара, каждый изначально стоит по 200 руб., НО если прибавлять по 100 как в коде выше, по идее каждый товар должен стоить 300. А получается что 300, 400, 500.
Почему так получается?

У меня такого не получается, прибавляет 100 к цене каждого товара в корзине. Причина, видимо, в других Ваших переделках...

#5 Koc

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

Опубликовано 20.04.2019 - 11:26

У меня такого не получается, прибавляет 100 к цене каждого товара в корзине. Причина, видимо, в других Ваших переделках...

 

Разобрался в чем проблема..

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






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

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