Перейти к содержанию
  • В связи с блокировкой банка QIWI оплата через сайт не возможна.
    Для оплаты и получения дополнений просьба писать в личные сообщения
    Admin*у
    После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Как вывести основную и оптовую цену в opencart


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

Думаю все в курсе, что в опенкарт можно задавать скидочные цены. При чем их можно задавать для разных групп покупателей. Обычно скидочная цена задается в зависимости от количества товара. Выводятся эти цены обычно под основной ценой в виде таблицы

cart1.png.dde8a9a628193ef7ee0986686dfe0d12.png

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

Сегодня сделаем реализацию вывода розничной и оптовой цены для магазина, который помимо розничной торговли, занимается оптовой. Т.е. на сайте есть группа покупателей Оптовики. Все дело в том, что если для оптовых покупателей указать скидочную цену от 1 единицы товара, то будет выводиться только скидочная цена, и оптовик не будет видеть сколько он экономит, по сравнению с розничным покупателем.

Сложного ничего нет и работа займет не больше пяти минут.

Доработка делается только для карточки товара. Если Вам необходимо сделать подобную реализацию для категорий, страницы поиска, модулей, то делается это по аналогии.

Прежде всего переходим в модель товара

/catalog/model/catalog/product.php

 

Примерно на 33 строке после

'price'            => ($query->row['discount'] ? $query->row['discount'] : $query->row['price']),

Добавляем

'standart_price'   => $query->row['price'],

Сохраняем и переходим к контроллеру по адресу

/catalog/controller/product/product.php

и после строки

$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));

нам необходимо добавить основную цену.

Назовем ее standart_price. Вывод стандартной цены будет выглядеть так

$data['standart_price'] = $this->currency->format($this->tax->calculate($product_info['standart_price'], $product_info['tax_class_id'], $this->config->get('config_tax')));

Однако это не все. Так как шаблон карточки товара для всех групп пользователей один, то необходимо задать условие, при котором мы будем или не будем отдавать стандартную цену. Так как если этого не сделать, то в карточке товара для оптового покупателя все будет работать правильно, а вот для розничного будет выводиться две одинаковые цены на с разным названием)

В итоге добавляемая конструкция будет выглядеть так

if ($product_info['standart_price']==$product_info['price']) {
$data['standart_price'] = false;
} else {
$data['standart_price'] = $this->currency->format($this->tax->calculate($product_info['standart_price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
}

Сохраняем и переходим к визуальной части, а именно к изменению шаблона карточки товара по адресу

/catalog/view/theme/default/template/product/product.tpl

Перед

<?php if ($tax) { ?>

Добавляем

<?php if ($standart_price) { ?>
            <li>
              <h2>Розничная цена: <?php echo $standart_price; ?></h2>
            </li>
<?php } ?>

Такая конструкция верна для магазина с одним языком. Если же у Вас мультиязычный магазин, тогда вместо «Розничная цена:» необходимо добавить языковую переменную, прописать ее в контроллере, а в языковых файлах прописать значение. 

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

skidochnaya2.jpg.6618e852b82d2dc21ff943730d55b8a7.jpg

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

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