плата за обработку заказа

Тема в разделе "Модули и дополнения", создана пользователем Valerich, 27 мар 2016.

  1. Valerich

    Valerich Новичок

    Сообщения:
    18
    Симпатии:
    0
    В Opencart 2.2.0.0 предусмотрена одна плата за обработку заказа. Как сделать несколько сумм оплат за обработку заказа в зависимости от различных сумм заказа.
     
  2. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    \catalog\model\total\handling.php

    PHP:
    <?php
    class ModelTotalHandling extends Model {
        public function 
    getTotal($total) {
            if ((
    $this->cart->getSubTotal() > $this->config->get('handling_total')) && ($this->cart->getSubTotal() > 0)) {
                
    $this->load->language('total/handling');
             
                if (
    $this->cart->getSubTotal() > 200$handling_fee 50//добавил
                
    if ($this->cart->getSubTotal() > 300$handling_fee 20//добавил
             
                
    $total['totals'][] = array(
                    
    'code'       => 'handling',
                    
    'title'      => $this->language->get('text_handling'),
                    
    'value'      => $handling_fee//изменил
                    
    'sort_order' => $this->config->get('handling_sort_order')
                );

                if (
    $this->config->get('handling_tax_class_id')) {
                    
    $tax_rates $this->tax->getRates($this->config->get('handling_fee'), $this->config->get('handling_tax_class_id'));

                    foreach (
    $tax_rates as $tax_rate) {
                        if (!isset(
    $total['taxes'][$tax_rate['tax_rate_id']])) {
                            
    $total['taxes'][$tax_rate['tax_rate_id']] = $tax_rate['amount'];
                        } else {
                            
    $total['taxes'][$tax_rate['tax_rate_id']] += $tax_rate['amount'];
                        }
                    }
                }

                
    $total['total'] += $handling_fee//изменил
            
    }
        }
    }
    200 и 300 это минимальные суммы корзины
    50 и 20 это сумма доплаты

    и не забываем в настройках модуля ставить минимальную сумму.. например по данному примеру это 200
     
    Последнее редактирование: 28 мар 2016
  3. Valerich

    Valerich Новичок

    Сообщения:
    18
    Симпатии:
    0
    Разобрался что куда вставлять. Вставил и ничего не изменилось.
    ------------------------------------------------------------
    <?php
    class ModelTotalHandling extends Model {
    public function getTotal($total) {
    if (($this->cart->getSubTotal() > $this->config->get('handling_total')) && ($this->cart->getSubTotal() > 0)) {
    $this->load->language('total/handling');

    $total['totals'][] = array(
    'code' => 'handling',
    'title' => $this->language->get('text_handling'),
    'value' => $handling_fee,
    'sort_order' => $this->config->get('handling_sort_order')
    $handling_fee = ($this->cart->getSubTotal() > 200 ? 50 : 0);
    $handling_fee = ($this->cart->getSubTotal() > 300 ? 20 : 0);

    );

    if ($this->config->get('handling_tax_class_id')) {
    $tax_rates = $this->tax->getRates($this->config->get('handling_fee'), $this->config->get('handling_tax_class_id'));

    foreach ($tax_rates as $tax_rate) {
    if (!isset($total['taxes'][$tax_rate['tax_rate_id']])) {
    $total['taxes'][$tax_rate['tax_rate_id']] = $tax_rate['amount'];
    } else {
    $total['taxes'][$tax_rate['tax_rate_id']] += $tax_rate['amount'];
    }
    }
    }

    $total['total'] += $this->config->get('handling_fee');
    }
    }
    }
    -------------------------------------------------------------------------------
    может не так?
     
    Последнее редактирование: 28 мар 2016
  4. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.447
    Симпатии:
    786
    немного подправлено сообщение для ясности.
     
  5. Valerich

    Valerich Новичок

    Сообщения:
    18
    Симпатии:
    0
    И?
    После вышеуказанных изменений при входе в магазин выдается :
    Parse error: syntax error, unexpected T_VARIABLE, expecting ')' in /home/virtwww/w_domsadogorod_91497a41/http/catalog/model/total/handling.php on line 12
     
  6. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    Вам же специально намекнули на неправильный синтаксис и для ясности что неправильно выделили цветом...
    Перед массивом, а не внутри!!!
     
  7. Valerich

    Valerich Новичок

    Сообщения:
    18
    Симпатии:
    0
    перед массивом, и что? Изменений нет. (но на входе ошибку уже не показывает)
    -------------------------------------------------------------
    <?php
    class ModelTotalHandling extends Model {
    public function getTotal($total) {
    if (($this->cart->getSubTotal() > $this->config->get('handling_total')) && ($this->cart->getSubTotal() > 0)) {
    $this->load->language('total/handling');
    $handling_fee = ($this->cart->getSubTotal() > 200 ? 50 : 0);
    $handling_fee = ($this->cart->getSubTotal() > 300 ? 20 : 0);

    $total['totals'][] = array(
    'code' => 'handling',
    'title' => $this->language->get('text_handling'),
    'value' => $handling_fee,
    'sort_order' => $this->config->get('handling_sort_order')
    );

    if ($this->config->get('handling_tax_class_id')) {
    $tax_rates = $this->tax->getRates($this->config->get('handling_fee'), $this->config->get('handling_tax_class_id'));

    foreach ($tax_rates as $tax_rate) {
    if (!isset($total['taxes'][$tax_rate['tax_rate_id']])) {
    $total['taxes'][$tax_rate['tax_rate_id']] = $tax_rate['amount'];
    } else {
    $total['taxes'][$tax_rate['tax_rate_id']] += $tax_rate['amount'];
    }
    }
    }

    $total['total'] += $this->config->get('handling_fee');
    }
    }
    }
    ----------------------------------------------------------------------------------------------------
    В OpenCart 1.5.6.4 можно ввести несколько сумм оплаты оформления заказа в зависимости от суммы заказа. В OpenCart 2.2.0.0 только одну.
     
  8. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    Сообщение и рекомендации исправил!
     
  9. Valerich

    Valerich Новичок

    Сообщения:
    18
    Симпатии:
    0
    Ничего не изменяется. Остается возможность установить только одну ставку на сумму заказа.
     
  10. Valerich

    Valerich Новичок

    Сообщения:
    18
    Симпатии:
    0
    Можно решить вопрос или нет?
     
  11. Ravilr

    Ravilr Специалист

    Сообщения:
    3.962
    Симпатии:
    1.081
    нет. Так как решение выше рабочее.
     
  12. Valerich

    Valerich Новичок

    Сообщения:
    18
    Симпатии:
    0
    прошу прощения, разобрался как работает. Работает. Благодарю.
     
  13. AnnValder

    AnnValder Новичок

    Сообщения:
    2
    Симпатии:
    0
    Ocstore 1.5.5.1.2 пишет вот такую кракозябру

    Notice: Undefined variable: handling_fee in /home/a/annval/funko-russia.ru/public_html/catalog/model/total/handling.php on line 14Warning: Cannot use a scalar value as an array in /home/a/annval/funko-russia.ru/public_html/catalog/model/total/handling.php on line 30Notice: Undefined variable: handling_fee in /home/a/annval/funko-russia.ru/public_html/catalog/model/total/handling.php on line 30Notice: Undefined variable: handling_fee in /home/a/annval/funko-russia.ru/public_html/catalog/model/total/handling.php on line 14Warning: Cannot use a scalar value as an array in /home/a/annval/funko-russia.ru/public_html/catalog/model/total/handling.php on line 30Notice: Undefined variable: handling_fee in /home/a/annval/funko-russia.ru/public_html/catalog/model/total/handling.php on line 30

    Подскажите, пожалуйста, кто разобрался - в чем ошибка?
    Спасибо!
     
  14. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.570
    Симпатии:
    435
    Вы просто тупа вставили код который предназначен для Opencart 2.2.0.0. Вот ваша ошибка.
     
  15. AnnValder

    AnnValder Новичок

    Сообщения:
    2
    Симпатии:
    0
    А есть ли для более ранних версий вариант?
     
  16. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.570
    Симпатии:
    435
    Вы должны понимать что никто не будет скачивать старую версию движка и решать ваш проблему просто так.
    Сейчас все стараются поддерживать свои проекты на новой версии и вам я советую перейти на новую версию.
     
  17. MerkuLove

    MerkuLove Новичок

    Сообщения:
    4
    Симпатии:
    0
    Гуру OpenCart, подскажите мб, модуль есть или как организовать, что бы можно при обработке заказа вписать значение цены за обработку заказа.
     
  18. Vlad

    Vlad Эксперт

    Сообщения:
    4.146
    Симпатии:
    1.003
    Редактировать заказ и добавлять товар "Обработка заказа" :)
     
  19. MerkuLove

    MerkuLove Новичок

    Сообщения:
    4
    Симпатии:
    0
    это поле нужно сделать input типа text как сделать? какой файл нужно редактировать?
     

    Вложения:

  20. Vlad

    Vlad Эксперт

    Сообщения:
    4.146
    Симпатии:
    1.003
    Прочитайте внимательно мой ответ.