Помощь admin_order_edit_with_ajax есть проблема с добавление товара

meatuss

Постоялец
Регистрация
24 Фев 2013
Сообщения
103
Реакции
5
Подскажите может кто то уже сталкивался с проблемой данного характера.

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

также при выборе опций нет самих названий опций.

Скажите как быть и что делать с этим?

эта часть кода выдаёт ошибку

в частности строка

'name' => $option_value['name'],

Код:
foreach ($options as $option) {
      if ($option['type'] == 'select' || $option['type'] == 'radio' || $option['type'] == 'checkbox' || $option['type'] == 'image') {
        $option_value_data = array();

        foreach ($option['product_option_value'] as $option_value) {
          if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) {
            $option_value_data[] = array(
                'product_option_value_id' => $option_value['product_option_value_id'],
                'option_value_id' => $option_value['option_value_id'],
                'name' => $option_value['name'],
                'image' => $this->model_tool_image->resize($option_value['image'], 50, 50),
                'price' => (float) $option_value['price'] ? $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : false,
                'price_prefix' => $option_value['price_prefix']
            );
          }
        }

        $this->data['options'][] = array(
            'product_option_id' => $option['product_option_id'],
            'option_id' => $option['option_id'],
            'name' => $option['name'],
            'type' => $option['type'],
            'option_value' => $option_value_data,
            'required' => $option['required']
        );
      } elseif ($option['type'] == 'text' || $option['type'] == 'textarea' || $option['type'] == 'file' || $option['type'] == 'date' || $option['type'] == 'datetime' || $option['type'] == 'time') {
        $this->data['options'][] = array(
            'product_option_id' => $option['product_option_id'],
            'option_id' => $option['option_id'],
            'name' => $option['name'],
            'type' => $option['type'],
            'option_value' => $option['option_value'],
            'required' => $option['required']
        );
      }
    }

    $this->data['text_select'] = $this->language->get('text_select');
    $this->data['text_manufacturer'] = $this->language->get('text_manufacturer');
    $this->data['text_model'] = $this->language->get('text_model');
    $this->data['text_reward'] = $this->language->get('text_reward');
    $this->data['text_points'] = $this->language->get('text_points');
    $this->data['text_discount'] = $this->language->get('text_discount');
    $this->data['text_stock'] = $this->language->get('text_stock');
    $this->data['text_price'] = $this->language->get('text_price');
    $this->data['text_tax'] = $this->language->get('text_tax');
    $this->data['text_discount'] = $this->language->get('text_discount');
    $this->data['text_option'] = $this->language->get('text_option');
    $this->data['text_qty'] = $this->language->get('text_qty');
    $this->data['text_or'] = $this->language->get('text_or');
    $this->data['text_write'] = $this->language->get('text_write');
    $this->data['text_note'] = $this->language->get('text_note');
    $this->data['text_share'] = $this->language->get('text_share');
    $this->data['text_wait'] = $this->language->get('text_wait');
    $this->data['text_tags'] = $this->language->get('text_tags');
    $this->data['button_upload'] = $this->language->get('button_upload');

    $this->template = 'sale/options.tpl';

    $this->response->setOutput($this->render());
  }
 
Версия опенркарта, чистый или сборка? Модуль точно совместим с вашей версией ОС?
 
Подскажите может кто то уже сталкивался с проблемой данного характера.

Так модуль работает отлично - но он немного не правильно работает при добавлении нового товара к заказу

Несколько лет назад, к своему удивлению узнал, что многие разработчики игнорируют notice ошибки. В некотором роде это можно оправдать уменьшением количества кода...
Но в настройках php или скриптах стоит выставить подавление ошибок этой категории:
PHP:
@ini_set('error_reporting', E_ALL ^ E_NOTICE);
#	или
error_reporting(E_ALL ^ E_NOTICE);
Кстати, при хорошей и безопасной настройке на продакшене все ошибки должны падать только в файл или на почту админу!

Для фикса в самом коде подойдёт что-то типа:
PHP:
'name' => isset($option_value['name']) ? $option_value['name'] : 'undefined name',
Но это чисто техническое решение, еще надо проверить логику, возможно проверку существования имени надо делать перед
PHP:
 $option_value_data[] = array(
...
 
Несколько лет назад, к своему удивлению узнал, что многие разработчики игнорируют notice ошибки. В некотором роде это можно оправдать уменьшением количества кода...
Но в настройках php или скриптах стоит выставить подавление ошибок этой категории:
PHP:
@ini_set('error_reporting', E_ALL ^ E_NOTICE);
#    или
error_reporting(E_ALL ^ E_NOTICE);
Кстати, при хорошей и безопасной настройке на продакшене все ошибки должны падать только в файл или на почту админу!

Для фикса в самом коде подойдёт что-то типа:
PHP:
'name' => isset($option_value['name']) ? $option_value['name'] : 'undefined name',
Но это чисто техническое решение, еще надо проверить логику, возможно проверку существования имени надо делать перед
PHP:
 $option_value_data[] = array(
...

не помогло, вместо названия опции отображается undefined name . могу предоставить весь модуль целиком. Для того что бы вы его просмотрели и сказале свой вердикт.

С Новым Годом :):elka::pryg-pryg:
 
Назад
Сверху