Перейти к содержанию
View in the app

A better way to browse. Learn more.

Русскоязычное сообщество Opencart

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

В связи с блокировкой банка QIWI оплата через сайт не возможна.
Для оплаты и получения дополнений просьба писать в личные сообщения 
Admin*у
или в Телеграмм https://t.me/pascha_opencart
После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Как вывести основную и оптовую цену в 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

Последние посетители 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.