Автор Тема: Исправление ошибки в общем каталоге товаров  (Прочитано 87 раз)

07 Ноябрь 2019, 23:30:16
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
На странице с товаром всё работает и выводит самую низкую цену
Вставлено в catalog\_partials\product-prices.tpl
<span itemprop="price">  {foreach from=$product.quantity_discounts item='quantity_discount' name='quantity_discounts'}
        {/foreach}
        {$quantity_discount.price * 1} ₽</span>
Изображение 1

При выводе такого же кода в общем каталоге товаров везде пишется 0
Вставлено в catalog\_partials\miniatures\product.tpl
Изображение 2
Как исправить?
08 Ноябрь 2019, 14:10:41
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 15714
  • Репутация: +14604/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В блок какой код добавляете? Такой код добавьте:
{$product.quantity_discounts|var_dump}что покажет?
08 Ноябрь 2019, 14:28:24
Ответ #2
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В блок какой код добавляете? Такой код добавьте:
{$product.quantity_discounts|var_dump}что покажет?
Пустоту показывает
array(0) { }
09 Ноябрь 2019, 12:08:06
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 15714
  • Репутация: +14604/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Переменная в контроллере не определена, чтобы ее использовать в этом шаблоне, нужно в контроллере Product ее определить.
09 Ноябрь 2019, 17:55:48
Ответ #4
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Переменная в контроллере не определена, чтобы ее использовать в этом шаблоне, нужно в контроллере Product ее определить.
И так прописано
10 Ноябрь 2019, 12:22:35
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 15714
  • Репутация: +14604/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В
$this->context->smarty->assign(array(нет такой.
10 Ноябрь 2019, 14:14:15
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 21709
  • Репутация: +25292/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
В
$this->context->smarty->assign(array(нет такой.
В методе getTemplateVarProduct
...
$product_full['quantity_discounts'] = $this->quantity_discounts;
Видимость только на страницах товара.
На страницах категоория нельзя использовать без переопределения контроллера.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
10 Ноябрь 2019, 14:32:53
Ответ #7
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22688
  • Репутация: +17135/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Была же уже такая тема для Prestashop 1.6. На 1.7 тоже должно работать.
В CategoryController.php (или переопределить) в assignProductList
foreach ($this->cat_products as &$product) {
        $product['quantity_discount'] = SpecificPrice::getQuantityDiscounts((int)$product['id_product'], (int)Shop::getCurrentShop(), (int)self::$cookie->id_currency, $id_country, $id_group);
        if (isset($product['id_product_attribute']) && $product['id_product_attribute'] && isset($product['product_attribute_minimal_quantity'])) {
                $product['minimal_quantity'] = $product['product_attribute_minimal_quantity'];
        }
}
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
14 Ноябрь 2019, 21:09:06
Ответ #8
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Была же уже такая тема для Prestashop 1.6. На 1.7 тоже должно работать.
В CategoryController.php (или переопределить) в assignProductList
foreach ($this->cat_products as &$product) {
        $product['quantity_discount'] = SpecificPrice::getQuantityDiscounts((int)$product['id_product'], (int)Shop::getCurrentShop(), (int)self::$cookie->id_currency, $id_country, $id_group);
        if (isset($product['id_product_attribute']) && $product['id_product_attribute'] && isset($product['product_attribute_minimal_quantity'])) {
                $product['minimal_quantity'] = $product['product_attribute_minimal_quantity'];
        }
}

В \controllers\front\listing\CategoryController.php ?
14 Ноябрь 2019, 21:13:38
Ответ #9
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Была же уже такая тема для Prestashop 1.6. На 1.7 тоже должно работать.
В CategoryController.php (или переопределить) в assignProductList
foreach ($this->cat_products as &$product) {
        $product['quantity_discount'] = SpecificPrice::getQuantityDiscounts((int)$product['id_product'], (int)Shop::getCurrentShop(), (int)self::$cookie->id_currency, $id_country, $id_group);
        if (isset($product['id_product_attribute']) && $product['id_product_attribute'] && isset($product['product_attribute_minimal_quantity'])) {
                $product['minimal_quantity'] = $product['product_attribute_minimal_quantity'];
        }
}
Просто там даже assignProductList функции нет)
15 Ноябрь 2019, 14:05:21
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 15714
  • Репутация: +14604/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В классе /classes/Category.php в getProducts можно добавить quantity_discount.