Помощь Найти минимальную скидку

animal_x

Постоялец
Регистрация
22 Июн 2012
Сообщения
412
Реакции
147
Подскажите как можно найти и вывести в карточке товара минимальную цену скидки. Т.е у каждого товара несколько цен заданных скидкой, нужно вывести в карточке наименьшую.

Нужно найти минимальную цену в массиве скидок и вывести ее вместо цены. Вот как на демке - Для просмотра ссылки Войди или Зарегистрируйся, под ценой идут Скидки, которые задаются в карточке товара. Мне нужно найти минимум, в данном случае 79.88.

Пока сделал это в шаблоне так:

PHP:
        <?php if ($discounts) { ?>
        <div class="discount">от
      <?php $price_min = $price; ?>
          <?php foreach ($discounts as $discount) { ?>
              <?php if ($discount['price'] < $price) {
            $price_min = $discount['price'];
        } ?>
          <?php } ?>
        <?php echo $price_min; ?>
        </div>
        <?php } else { ?>
        <?php echo $price; ?>
        <?php } ?>

Но хотелось бы все это реализовать через контроллер. В /catalog/controller/product/product.php есть такой код:
PHP:
            $discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']);
           
            $this->data['discounts'] = array();
           
            foreach ($discounts as $discount) {
                $this->data['discounts'][] = array(
                    'quantity' => $discount['quantity'],
                    'price'    => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')))
                );
            }
Думаю нужно в это массиве находить минимальную цену и назначить на нее переменную. Есть функция min(array()), но не знаю как ее правильно примнеить или может по другому как-то.
 
Последнее редактирование модератором:
Cantrell, меньше сообщения себе набивайте безполезных.

Нужно найти минимальную цену в массиве скидок и вывести ее вместо цены. Вот как на демке - Для просмотра ссылки Войди или Зарегистрируйся, под ценой идут Скидки, которые задаются в карточке товара. Мне нужно найти минимум, в данном случае 79.88.

Пока сделал это в шаблоне так:

PHP:
        <?php if ($discounts) { ?>
        <div class="discount">от
      <?php $price_min = $price; ?>
          <?php foreach ($discounts as $discount) { ?>
              <?php if ($discount['price'] < $price) {
            $price_min = $discount['price'];
        } ?>
          <?php } ?>
        <?php echo $price_min; ?>
        </div>
        <?php } else { ?>
        <?php echo $price; ?>
        <?php } ?>

Но хотелось бы все это реализовать через контроллер. В /catalog/controller/product/product.php есть такой код:
PHP:
            $discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']);
          
            $this->data['discounts'] = array();
          
            foreach ($discounts as $discount) {
                $this->data['discounts'][] = array(
                    'quantity' => $discount['quantity'],
                    'price'    => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')))
                );
            }
Думаю нужно в это массиве находить минимальную цену и назначить на нее переменную. Есть функция min(array()), но не знаю как ее правильно примнеить или может по другому как-то.
А не проще сразу в админке проставить необходимую цену товара?
 
Не проще, у товара будет много разных цен в зависимости от количества покупаемого (сайт для оптовых покупок). Если поставлю минимальный то по этой цене и будет покупать от 1 штуки.
 
Не проще, у товара будет много разных цен в зависимости от количества покупаемого (сайт для оптовых покупок). Если поставлю минимальный то по этой цене и будет покупать от 1 штуки.
Ясно. Давай еще раз. Значит вместо цены будет выводиться минимальная цена (там должно указываться количество товара или просто цена?), далее, первая и вторая цена (перед минимальной) их убрать надо или оставить на том же месте?
 
Ясно. Давай еще раз. Значит вместо цены будет выводиться минимальная цена
да, написато "от" и минимальная цена на основании скидок

далее, первая и вторая цена (перед минимальной) их убрать надо или оставить на том же месте?
массив со всеми ценами скидок остается, его не трогаем , я просто показал для наглядности на картинке
 
Какая версия opencart? И какой шаблон?
 
Какая версия opencart? И какой шаблон?
Какая разница? Вы что тоже собщения набиваете себе? Функция в контроллее стандартная. Тут нужны больше php знания чем opencart
ocStore 1.5.4, шаблон Sellya
 
Ну что? Нашел решение? У меня есть пару задумок
 
Назад
Сверху