Акции в cms OpenCart устроены не самым удобным образом. Для добавления акционной цены нужно в разделе акции указывать уменьшенную акционную цену, а основную цену увеличивать. А если захотите отменить акцию, нужно будет основную цену опять уменьшать. акцию удалять.
Изменим стандартную логику. Сделаем так, что бы при добавлении акции мы добавляли во вкладке АКЦИИ увеличенную цену. В итоге основная цена будет основной (она уменьшенная будет), а акционная станет «старой» (увеличенной). И что бы удалить акцию — достаточно будет удалить ее из вкладки АКЦИИ и на этом все! Эта логика намного легче в плане работы с сайтом.
Приступим к изменениям. Изменим логику корзины. Откроем файл: \system\library\cart\cart.php
в районе 180 строки есть код
$product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");
его комментируем или удаляем и вместо него вставляем
$product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$cart['product_id'] . "' ORDER BY price ASC LIMIT 1");
Далее во всех файлах шаблонов (.twig), где есть товары, меняем местами основную и акционную цены:
файлы:
\catalog\view\theme\tt_tienda3\template\product\category.twig
\catalog\view\theme\tt_tienda3\template\product\manufacturer_info.twig
\catalog\view\theme\tt_tienda3\template\product\product.twig
\catalog\view\theme\tt_tienda3\template\product\search.twig
\catalog\view\theme\tt_tienda3\template\product\special.twig
в этих файлах будет примерно такой код
{% else %} <p class="special-price"><span class="price">{{ product.special }}</span></p> <p class="old-price"><span class="price">{{ product.price }}</span></p> {% endif %}
вместо него вставим такой код, меняем местами
{{ product.special }} и {{ product.price }}
{% else %} <p class="special-price"><span class="price">{{ product.price }}</span></p> <p class="old-price"><span class="price">{{ product.special }}</span></p> {% endif %}
В итоге мы изменили логику работы акций в магазине OpenCart.