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

[Решено] Дописать процент к сумме доставки! Как?


Recommended Posts

Доброго времени ув. форумчане!

Кто мне написать не просто сумму доставки, а сумму с процентом от товара!?

На скрине подчеркнул, в сумме нужно дописать ещё +2% от суммы заказа.

post-666864-0-79475400-1366271438_thumb.jpg

Заранее всем благодарен за ответы!!

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


В качестве примера использую стандартную доставку с фиксированной стоимостью. В принципе, чтобы поправить любой другой модуль доставки, надо сделать примерно тоже самое. Но главное - суть!

 

Работаем с файлом модели \catalog\model\shipping\flat.php (flat.php - этой модель для доставки с фиксированной стоимостью).

 

В opencart все квоты модулей доставки помещаются в массив $quote_data[]. Для данного модуля смотрим, чем наполняется массив:

$quote_data['flat'] = array(
                'code'         => 'flat.flat',
                'title'        => $this->language->get('text_description'),
                'cost'         => $this->config->get('flat_cost'),
                'tax_class_id' => $this->config->get('flat_tax_class_id'),
                'text'         => $this->currency->format($this->tax->calculate($this->config->get('flat_cost'), $this->config->get('flat_tax_class_id'), $this->config->get('config_tax')))
              );
 

code - Код метода доставки. Этот элемент нас не интересует. В итоге это ID метода в HTML коде.

title - Заголовок, который отображается на странице пользователю. Видно, что он берется из текстового файла в директориях language.

cost - Переменная, которая содержит стоимость, которая отдается в итоговый чек. Видно, что она берется из БД, где предустанавливается из админки.

tax_class_id - Идентификатор налоговой зоны, тоже нас не интересует.

text - в данном случае вывод стоимости и наименования валюты (например 100р, 200$, в зависимости он настроек вывода).

 

Итак, нас интересует внесение изменений в финальный прайс. Формализованная задача: Надо учитывать стоимость корзины, и вычислять от нее 2%. Эти 2% прибавить к фиксированной предустановленной стоимости доставки.

 

Решение: изменить алгоритм расчета элемента cost и вывода элемента text массива $quote_data[].

 

Метод:

Добавляем к cost и text 2-х процентную составляющую от стоимости корзины, которую достает стандартным методом opencart:

 

'cost'         => $this->config->get('flat_cost') + 0.02*$this->cart->getTotal(),


'text'         => $this->currency->format($this->tax->calculate($this->config->get('flat_cost') + 0.02*$this->cart->getTotal(), $this->config->get('flat_tax_class_id'), $this->config->get('config_tax')))

 

Метод getTotal() класса cart возвращает конечную стоимость корзины.

 

Надеюсь, я тебе помог :-)

  • +1 5
Надіслати
Поділитися на інших сайтах


А что значит два способа :-)

Если вопрос, как сделать тоже самое для двух разных модулей, например, для фиксовой доставки, и для доставки в зависимости от веса, то надо сделать абсолютно тоже самое с массивом квоты, про который писал выше. Модули все одинаково работают.

 

Уточни, что ты имеешь ввиду

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


  • 5 weeks later...
  • 1 month later...
  • 3 weeks later...

soloyes, я примерно вижу что истина где-то рядом, но ни как не могу додумать решение своей чем-то схожей задачи.

 

Я использую налоги. В случае платной доставки Опенкарт не добавляет сумму доставки без налога в sub total. А вот общий налог (НДС за товар и за доставку) он считает правильно и конечную сумму с налогом выдает тоже правильно. Нужно чтоб в Sub total он выдавал тоже правильну сумму без налога.

Я думаю что надо редактировать фаил /catalog/model/total/sub_total.php

 

На скрине вместо 11,07 должно быть 15,21. Цена товара и доставки включают НДС. Но надо сделать разбивку на сумму без НДС и НДС отдельно.

lWT7H1Gj.jpg

 

Надо поиграться с  $this->config->get('flat_cost') в файле  /catalog/model/total/sub_total.php

Змінено користувачем aartyom
Надіслати
Поділитися на інших сайтах


  • 6 months later...
  • 11 months later...

Добрый день! Хоть сабж звучит как дописать процент к сумме доставки, а решили как сумму с процентом от заказа.

Интересует как добавить, скажем 10% к сумме доставки? Допустим есть тара, её оценивают как 10 % от суммы ДОСТАВКИ, чтобы пользователь видел из чего цена складывается. Может с тарой/упаковкой как то 

по-другому работают? Спасибо за отзывы!

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


  • 4 months later...
  • 8 months later...

Спасибо! Отличное решение, мне помогло с модом в зависимости от веса

Если можно вопрос: как можно этот способ применить к таким значением

от 1000 до 5000 + 4%

от 5000 до 20000 +2%

от 20000 и больше +1.5%

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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