Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вывод суммы скидки Opencart 3


Recommended Posts

Ситуэшн следующая.
Запилил формулы просчета скидок к опциям в процентах, но вывод суммы скидок не запилил.

 

catalog/controller/product/product.php

 

if ($option_value['price_prefix']=="u") {
            $price = '+' . (float)$option_value['price'].'%';
        }
        elseif ($option_value['price_prefix']=="d") {
            $price = '-' . (float)$option_value['price'].'%';
        }
        elseif ($option_value['price_prefix']=="*") {
            $price = '*' . (float)$option_value['price'];
        }
        elseif ($option_value['price_prefix']=="/") {
            $price = '/' . (float)$option_value['price'];
        }
        else{
            $price = $option_value['price_prefix'].$this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']);
        }

 

system/library/cart/cart.php

 

  if ($option_value_query->row['price_prefix'] == '=') {
              $sort_key=count($option_price) + 1;
          } else {
              $sort_key=count($option_price)+10;
          }
          
          $option_price[$sort_key] = array(
              $option_value_query->row['price_prefix']=>$option_value_query->row['price'],
          );

 

Далее в этом же файле

 

$newprice = $price;
           $defprice = $price;
          
          ksort($option_price);

          foreach($option_price as $operations){
              foreach($operations as $operation=>$value){
                  if ($operation == '=') {

                      if ($price!=0 ){
                          $newprice = $value;
                          $price=0;
                      }
                      else{
                          $newprice += $value;
                      }
                      
                  }
                  elseif ($operation == '+') {
                      $newprice += $value;
                  }
                  elseif ($operation == '-') {
                      $newprice -= $value;
                  }
                  elseif ($operation == '*') {
                      $newprice = $newprice * $value;
                  }
                  elseif ($operation == '/') {
                      $newprice = $newprice / $value;
                  }
                  elseif ($operation == 'u') {
                      $newprice = $newprice + (( $defprice * $value ) / 100);
                      }
                  elseif ($operation == 'd') {
                      $newprice = $newprice - (( $defprice * $value ) / 100);
                  }
              }
          }

 

 

Далее в этом же файле

 

$price + $option_price заменено на $newprice

 

admin/view/template/catalog/product_form.twig

 

 

{% if product_option_value.price_prefix == '=' %} 
            <option value="=" selected="selected">=</option>
        {% else %} 
            <option value="=">=</option>
        {% endif %} 
        {% if product_option_value.price_prefix == '*' %} 
            <option value="*" selected="selected">*</option>
        {% else %} 
            <option value="*">*</option>
        {% endif %} 
        {% if product_option_value.price_prefix == '/' %} 
            <option value="/" selected="selected">/</option>
        {% else %} 
            <option value="/">/</option>
        {% endif %} 
        {% if product_option_value.price_prefix == 'u' %} 
            <option value="u" selected="selected">+%</option>
        {% else %} 
            <option value="u">+%</option>
        {% endif %} 
        {% if product_option_value.price_prefix == 'd' %} 
            <option value="d" selected="selected">-%</option>
        {% else %} 
            <option value="d">-%</option>
        {% endif %}

 

в этом же файле

 

html += '      <option value="=">=</option>';
        html += '      <option value="*">*</option>';
        html += '      <option value="/">/</option>';
        html += '      <option value="u">+%</option>';
        html += '      <option value="d">-%</option>';

 

Всё гуд, всё работает, но есть одно но, раньше выводилось значение "-10%", т.е. то значение, которое задал в админке, начал пилить что бы он выводил сумму высчитываемую, вообще всё пропало, бэкапнул, теперь не отображаются даже эти  "-10%", надо что бы во вьюшку приходила сумма вычитаемая с прайса, т.е. не -10%, а к примеру -280руб, если цена товара была 2800р.
Благодарю за внимание!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.