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

Настроить бесплатную доставку без модуля


Recommended Posts

Здравствуйте! Подскажите пожалуйста, как можно сделать, чтобы если сумма меньше 500 рублей допустим, доставка стала бесплатной ? В целом принцип понятный, можно реализовать данную идею с помощью данного кода,  но я не могу найти переменную суммы доставки, сумма не фиксированная, вот в чем проблема ) Версия 2.1 

Спасибо!

P.S. Меня интересуют варианты без модуля

if ($this->cart->getTotal() <= 500) {
тут будет код ))
}

 

 

 

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


1 час назад, Billionaire сказал:

Здравствуйте! Подскажите пожалуйста, как можно сделать, чтобы если сумма меньше 500 рублей допустим, доставка стала бесплатной ? В целом принцип понятный, можно реализовать данную идею с помощью данного кода,  но я не могу найти переменную суммы доставки, сумма не фиксированная, вот в чем проблема ) Версия 2.1 

Спасибо!

P.S. Меня интересуют варианты без модуля


if ($this->cart->getTotal() <= 500) {
тут будет код ))
}

 

 

 

А как Вы хотите реализовать доставку без модуля? В OC это невозможно. Как минимум за основу нужно взять какой-то модуль из коробки и его править или вообще использовать стандартное решение «Бесплатная доставка». Ставите там сумму, при какой модуль будет отображаться и все.

Если хотите, чтоб это в одном и том же модуле было, скажем в «Фиксируемая стоимость оплаты», тогда открываем его код и ставим проверку там где идёт добавление суммы доставки в массив

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

Нужно править модуль доставки, который используете. В нем и ставить это условие.

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

7 часов назад, Seriusis сказал:

Нужно править модуль доставки, который используете. В нем и ставить это условие.

А я не знаю какой модуль использую ) 

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


10 часов назад, Fedka сказал:

А как Вы хотите реализовать доставку без модуля? В OC это невозможно. Как минимум за основу нужно взять какой-то модуль из коробки и его править или вообще использовать стандартное решение «Бесплатная доставка». Ставите там сумму, при какой модуль будет отображаться и все.

Если хотите, чтоб это в одном и том же модуле было, скажем в «Фиксируемая стоимость оплаты», тогда открываем его код и ставим проверку там где идёт добавление суммы доставки в массив

Мне нужно найти переменную, которая отвечает за стоимость доставки, остальное уже понятно как реализовать. Но никак не могу найти данную переменную

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


1 час назад, Billionaire сказал:

Но никак не могу найти данную переменную

Тут все зависит от того, какой модуль Вы используете как донор, точнее где делаете изменения

 

Например, в модуле "Фиксированная стоимость оплаты" - это $this->config->get('flat_cost')

где flat - это название модуля

 

И получается, что значение формируется $this->config->get('НАЗВАНИЕ_cost')

 

И массив имеет вид:

$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')))
);

Тоесть цена попадает в значение "cost" и дальше этот параметр и участвует в обработке.

 

Если хотите, чтоб цена была 0, можно сделать так:

$quote_data['flat'] = array(
  'code'         => 'flat.flat',
  'title'        => $this->language->get('text_description'),
  'cost'         => ($this->cart->getTotal() <= 500) ? $this->config->get('flat_cost') : 0,
  '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')))
);

Тоесть получается, если цена больше 500, тогда доставка 0 (бесплатно), если меньше тогда стоит столько сколько указали.

 

Код приведен для модуля "Фиксированная стоимость доставки". По аналогии можно сделать для любого другого.

И учтите, что все правки оригинальных файлов следует делать через модификатор.

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

1 час назад, Fedka сказал:

Тут все зависит от того, какой модуль Вы используете как донор, точнее где делаете изменения

 

Например, в модуле "Фиксированная стоимость оплаты" - это $this->config->get('flat_cost')

где flat - это название модуля

 

И получается, что значение формируется $this->config->get('НАЗВАНИЕ_cost')

 

И массив имеет вид:


$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')))
);

Тоесть цена попадает в значение "cost" и дальше этот параметр и участвует в обработке.

 

Если хотите, чтоб цена была 0, можно сделать так:


$quote_data['flat'] = array(
  'code'         => 'flat.flat',
  'title'        => $this->language->get('text_description'),
  'cost'         => ($this->cart->getTotal() <= 500) ? $this->config->get('flat_cost') : 0,
  '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')))
);

Тоесть получается, если цена больше 500, тогда доставка 0 (бесплатно), если меньше тогда стоит столько сколько указали.

 

Код приведен для модуля "Фиксированная стоимость доставки". По аналогии можно сделать для любого другого.

И учтите, что все правки оригинальных файлов следует делать через модификатор.

Спасибо большое! Но мне нужно, чтобы если цена была меньше 500, тогда доставка была бесплатной (0). И у меня не фиксированная сумма, вы могли бы подсказать как реализовать все это ?

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


18 часов назад, Billionaire сказал:

Спасибо большое! Но мне нужно, чтобы если цена была меньше 500, тогда доставка была бесплатной (0). И у меня не фиксированная сумма, вы могли бы подсказать как реализовать все это ?

все правильно вам написал Fedka . В настройках модуля доставки "Фиксированная стоимость доставки" укажите сумму, которая будет, если товаров меньше чем 500 рублей. Затем сделайте условие, если сумма меньше, то ставим сумму из настроек, если нет, то 0. 

в файте 

catalog/model/extension/shipping/flat.php 

примерно 29 строка

'cost'         => $this->config->get('flat_cost'),
заменить на 
'cost'         => ($this->cart->getTotal() <= 500) ? $this->config->get('flat_cost') : 0,

Таким образом можно использовать модуль "Фиксированная стоимость доставки" для вашей задачи, заменив всего 1 его строку

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

1 час назад, Seriusis сказал:

все правильно вам написал Fedka . В настройках модуля доставки "Фиксированная стоимость доставки" укажите сумму, которая будет, если товаров меньше чем 500 рублей. Затем сделайте условие, если сумма меньше, то ставим сумму из настроек, если нет, то 0. 

в файте 

catalog/model/extension/shipping/flat.php 

примерно 29 строка


'cost'         => $this->config->get('flat_cost'),
заменить на 

'cost'         => ($this->cart->getTotal() <= 500) ? $this->config->get('flat_cost') : 0,

Таким образом можно использовать модуль "Фиксированная стоимость доставки" для вашей задачи, заменив всего 1 его строку

Мне нужно, чтобы если цена была меньше 500 тогда доставка была бесплатная а не наоборот. 

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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