VladDev

[Решено] как вывести оптовую цену(discount) в модулях special, popular etc.

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

VladDev    0

В магазине должно быть 2 цены - опт. и розн. Оптовая цена реализована через "скидки"(discount). В контроллере продукта (catalog/controller/product/product.php) как я понимаю этот код отвечает за оптовую цену:

$discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']);
$data['discounts'] = array();
foreach ($discounts as $discount) {
$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')))
	);
}

Как его правильно добавить в контроллеры module/special, popular, related и т.д.?

Поделиться сообщением


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

ocStore 2.1.0.2.1

Никто не знает?

Изменено пользователем VladDev

Поделиться сообщением


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

Скидки в любом модуле можно выводить так же как в контролерре товара

Поделиться сообщением


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

Возможно я неправильно поставил вопрос. Например, в дефолтном модуле "Товары со скидкой" (module/special) выводятся две цены: акционная (устанавливается на вкладке акции) и перечеркнутая стандартная. Но мне нужно вывести еще скидочную (количественную)(вкладка скидки) цену. Возможно это реализовать?

 

На странице продукта она выводится без проблем, а в модулях ее нет.

Поделиться сообщением


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

А что мешает попробовать? Берите код из карточки товара и вставляйте в нужные модули.

Поделиться сообщением


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

В catalog/controller/module/popular.php после строк:

if ($this->config->get('config_review_status')) {
	$rating = $result['rating'];
} else {
	$rating = false;
}

добавил:

$discounts = $this->model_catalog_product->getProductDiscounts($result['product_id']);
		    
$data['discounts'] = array();

foreach ($discounts as $discount) {
	$data['discounts'][] = array(
		'quantity' => $discount['quantity'],
		'price'    => $this->currency->format($this->tax->calculate($discount['price'], $result['tax_class_id'], $this->config->get('config_tax')))
	);
}

здесь же, после строки:

$data['products'][] = array(

добавил:

'discounts'    => $discounts,

В catalog/view/theme/default/template/module/popular.tpl добавил:

<?php if ($product['discounts']) { ?>
          <?php foreach ($product['discounts'] as $discount) { ?>
            <p><?php echo $discount['price'] ?></p>
            <p> от <?php echo $discount['quantity'] ?> ед.</p>
          <?php } ?>
 <?php } ?>

Работает, но выводится discount цена только в ДОЛЛАРАХ, и не реагирует на смену валют. Что это может быть, почему не отрабатывает "$this->currency" ? 

Поделиться сообщением


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

Вы помещаете пересчитанную цену со скидкой в $data['discounts'] а используете для отображения исходную из $discounts

поменяйте

'discounts'    => $discounts,

на

'discounts'    => $data['discounts'],

Поделиться сообщением


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

Спасибо Вам огромное, Shalan! Наконец-то заработало как нужно! Проблема решена!

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От louise170


      Просмотр файла Продукты по акции Pro
      Модуль позволяет создавать и проводить акции с товарами идущими в подарок при заказе на определенную сумму денег или
      если с корзине лежит определенный товар или группа товаров. Подарочные товары автоматически попадают в заказ, если были выполнены условия акции.
      Отличия от модуля "Продукты по акции":
      Усовершенствована система добавления товаров в акцию.
      Это дает больше возможностей в управлении акционными товарами, а именно: нет вкладок, информация по акциям хранится в базе данных, это позволяет создавать большое кол-во акций (на вкладках максимум 59) связи между товарами: один к одному, один ко многим, многие к одному, многие ко многим, можно выбирать не конкретные товары, а сразу производителей или категории. создание связей разделено на группы - каждая группа - это отдельная строчка в таблице на странице "Связи". Описания акций отображаются подобно новостям: модуль с анонсами, страница с полным списком и отдельная страница описания акции Страница описания акции также содержит полный список товаров, участвующих в акции. Есть возможность выводить отдельными блоками товары из акции. В списке товаров в категориях видны акционные товары, при нажатии на ссылку открывается краткое описание акции. На странице акционного товара виден блок с подарочным товаром. SEO-урлы для списка и описания акций. Акционные товары можно отображать в корзине вместе с остальными товарами. Акционные товары, кот. отображаются лежащими в корзине, также будут отображаться в счете и в письмах отправляемых покупателю. Учитывается вес акционных товаров, кот. отображаются лежащими в корзине. Акции можно использовать для определенных групп покупателей.  
      С помощью данного модуля также можно делать акции типа "Бесплатная доставка" - описание и список товаров делается здесь, а непосредственная обработка бесплатных товаров в корзине делается с помощью модуля доставки, который может делать бесплатную доставку для определенных групп товаров. Еще в модуле можно делать анонсы для товаров со скидками и специальных предложений, которые делаются через стандартный функционал Опенкарта.
      Никакие системные файлы не затираются, модуль работает на vqmod.
      Модуль тестировался на OpenCart 1.5.4.1, 1.5.6, 1.5.6.4, 2.1.0.2, 2.2.0.0
       
      Поддерживаемые языки
      русский
       
      Пример работы модуля
      http://ocstore156.hypnoguru.ru/
      http://opencart2200.opencartplus.ru/
       
      Демо админки
      http://ocstore156.hypnoguru.ru/admin/
      http://opencart2200.opencartplus.ru/admin/
      доступ
      demo / demo
       
      Лицензия
      При покупке данного модуля, Вы получаете право установки его на один домен. Лицензионный ключ можно получить по запросу на e-mail, который вы увидите на странице модуля, после его установки.
       
      Установка
      Инструкция по установке находится в файле readme.txt в архиве модуля.
       
      Требования к серверу
      На хостинге должен быть PHP 5.3 или выше. На хостинге должен быть установлен ionCube Loader последней версии (минимум версия 5.0). Чтобы проверить его наличие скачайте этот файл, разархивируйте его содержимое и закачайте в корневую директорию Вашего сайта. После этого откройте в браузере http://ваш_сайт/test_ioncube.php Для корректной работе на Опенкарте 1.5.х на вашем сайте должен быть установлен VQMOD не ниже версии 2.4.1,
      если у вас стоит версия ниже - нужно обновиться отсюда: https://github.com/vqmod/vqmod/releases
      FAQ
      FAQ общие вопросы по Опенкарту. Добавил louise170 Добавлено 21.12.2014 Категория Учет в заказе Системные требования PHP 5.3+, IonCube Loader версии 5.0+, для Опенкарт 1.5.х - VQMOD не ниже версии 2.4.1 Сайт разработчика Старая цена Метод активации По емейлу Ioncube Loader Требуется OpenCart 2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1 ocStore 2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1 OpenCart.Pro, ocShop Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От louise170
      Модуль позволяет создавать и проводить акции с товарами идущими в подарок при заказе на определенную сумму денег или
      если с корзине лежит определенный товар или группа товаров. Подарочные товары автоматически попадают в заказ, если были выполнены условия акции.
      Отличия от модуля "Продукты по акции":
      Усовершенствована система добавления товаров в акцию.
      Это дает больше возможностей в управлении акционными товарами, а именно: нет вкладок, информация по акциям хранится в базе данных, это позволяет создавать большое кол-во акций (на вкладках максимум 59) связи между товарами: один к одному, один ко многим, многие к одному, многие ко многим, можно выбирать не конкретные товары, а сразу производителей или категории. создание связей разделено на группы - каждая группа - это отдельная строчка в таблице на странице "Связи". Описания акций отображаются подобно новостям: модуль с анонсами, страница с полным списком и отдельная страница описания акции Страница описания акции также содержит полный список товаров, участвующих в акции. Есть возможность выводить отдельными блоками товары из акции. В списке товаров в категориях видны акционные товары, при нажатии на ссылку открывается краткое описание акции. На странице акционного товара виден блок с подарочным товаром. SEO-урлы для списка и описания акций. Акционные товары можно отображать в корзине вместе с остальными товарами. Акционные товары, кот. отображаются лежащими в корзине, также будут отображаться в счете и в письмах отправляемых покупателю. Учитывается вес акционных товаров, кот. отображаются лежащими в корзине. Акции можно использовать для определенных групп покупателей.  
      С помощью данного модуля также можно делать акции типа "Бесплатная доставка" - описание и список товаров делается здесь, а непосредственная обработка бесплатных товаров в корзине делается с помощью модуля доставки, который может делать бесплатную доставку для определенных групп товаров. Еще в модуле можно делать анонсы для товаров со скидками и специальных предложений, которые делаются через стандартный функционал Опенкарта.
      Никакие системные файлы не затираются, модуль работает на vqmod.
      Модуль тестировался на OpenCart 1.5.4.1, 1.5.6, 1.5.6.4, 2.1.0.2, 2.2.0.0
       
      Поддерживаемые языки
      русский
       
      Пример работы модуля
      http://ocstore156.hypnoguru.ru/
      http://opencart2200.opencartplus.ru/
       
      Демо админки
      http://ocstore156.hypnoguru.ru/admin/
      http://opencart2200.opencartplus.ru/admin/
      доступ
      demo / demo
       
      Лицензия
      При покупке данного модуля, Вы получаете право установки его на один домен. Лицензионный ключ можно получить по запросу на e-mail, который вы увидите на странице модуля, после его установки.
       
      Установка
      Инструкция по установке находится в файле readme.txt в архиве модуля.
       
      Требования к серверу
      На хостинге должен быть PHP 5.3 или выше. На хостинге должен быть установлен ionCube Loader последней версии (минимум версия 5.0). Чтобы проверить его наличие скачайте этот файл, разархивируйте его содержимое и закачайте в корневую директорию Вашего сайта. После этого откройте в браузере http://ваш_сайт/test_ioncube.php Для корректной работе на Опенкарте 1.5.х на вашем сайте должен быть установлен VQMOD не ниже версии 2.4.1,
      если у вас стоит версия ниже - нужно обновиться отсюда: https://github.com/vqmod/vqmod/releases
      FAQ
      FAQ общие вопросы по Опенкарту.
    • От louise170


      Просмотреть файл Продукты по акции
      Модуль позволяет создавать и проводить акции с товарами идущими в подарок при заказе на определенную сумму денег.
      Подарочные товары автоматически кладутся в корзину с нулевой стоимостью, если была достигнута заданная стоимость заказа.
      Для информирования покупателей о проводимых акциях, можно использовать другие модули, например: статьи, новости, баннеры. Лично мне нравится использовать для этих целей модуль HTML Popup
      Никакие системные файлы не изменяются. Модуль тестировался на OpenCart 1.5.4.1
      Поддерживаемые языки:
      русский
      Пример работы модуля:
      http://ocstore1541.hypnoguru.ru/
      Демо админки:
      http://ocstore1541.hypnoguru.ru/admin/
      доступ
      demo / demo
      Установка
      Разархивируйте Скопируйте файлы на сервер В интерфейсе администратора установите права доступа к модулю Зайдите на страницу "Дополнения -> Учитывать в заказе" и установите модуль Продукты по акции Нажмите кнопку "Изменить" и настройте модуль как вам нужно. Обновление модуля
      Закачать все файлы из архива модуля на сайт. Зайти в админку модуля и нажать кнопку "Сохранить". Прописать настройки, которые появились в новой версии (если они вам нужны). Автор louise170 Добавлен 09.10.2013 Категория Учет в заказе Системные требования Сайт разработчика Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
    • От louise170
      Модуль позволяет создавать и проводить акции с товарами идущими в подарок при заказе на определенную сумму денег.
      Подарочные товары автоматически кладутся в корзину с нулевой стоимостью, если была достигнута заданная стоимость заказа.
      Для информирования покупателей о проводимых акциях, можно использовать другие модули, например: статьи, новости, баннеры. Лично мне нравится использовать для этих целей модуль HTML Popup
      Никакие системные файлы не изменяются. Модуль тестировался на OpenCart 1.5.4.1
      Поддерживаемые языки:
      русский
      Пример работы модуля:
      http://ocstore1541.hypnoguru.ru/
      Демо админки:
      http://ocstore1541.hypnoguru.ru/admin/
      доступ
      demo / demo
      Установка
      Разархивируйте Скопируйте файлы на сервер В интерфейсе администратора установите права доступа к модулю Зайдите на страницу "Дополнения -> Учитывать в заказе" и установите модуль Продукты по акции Нажмите кнопку "Изменить" и настройте модуль как вам нужно. Обновление модуля
      Закачать все файлы из архива модуля на сайт. Зайти в админку модуля и нажать кнопку "Сохранить". Прописать настройки, которые появились в новой версии (если они вам нужны).
    • От perke
      Что такое опенкарт узнала на прошлой неделе. Сейчас заказчик просит выводить в админке в детальном просмотре заказа помимо суммы скидки по дисконту еще и номер использованного дисконта. Насколько я поняла используется отдельный (собственный?) модуль Discount, а не стандартные купоны и ваучеры.
      Захожу в ControllerSaleOrder функция info() и смотрю что есть в $this->request->get['order_id']) или this->model_sale_order->getOrder($order_id) . По дисконту там нет ничего.Зато есть в $this->data['totals'] , который получает из модуля неясную выборку по таблице order_total , где имеется сумма доставки, заказа, размер и сумма скидки по дисконту, но не номер.
      В письме об успешном заказе есть номер дисконта. Не могу найти только сам его контроллер.

      Помогите как-то связать эту инфу воедино и вывести номер использованного дисконта в админку
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу