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

Тема в разделе "Opencart", создана пользователем meatuss, 31 дек 2015.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. meatuss

    meatuss Постоялец

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

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

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

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

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

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

    '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());
      }
    
     
  2. HADAJIb

    HADAJIb Создатель

    Регистр.:
    5 июн 2012
    Сообщения:
    24
    Симпатии:
    10
    Версия опенркарта, чистый или сборка? Модуль точно совместим с вашей версией ОС?
     
  3. meatuss

    meatuss Постоялец

    Регистр.:
    24 фев 2013
    Сообщения:
    86
    Симпатии:
    5
    ocStore 1.5.5.1.2 должен. не уверен. но на 80% должен быть совместим
     
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.402
    Симпатии:
    1.183
    Несколько лет назад, к своему удивлению узнал, что многие разработчики игнорируют 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(
    ...
     
  5. meatuss

    meatuss Постоялец

    Регистр.:
    24 фев 2013
    Сообщения:
    86
    Симпатии:
    5
    не помогло, вместо названия опции отображается undefined name . могу предоставить весь модуль целиком. Для того что бы вы его просмотрели и сказале свой вердикт.

    С Новым Годом :):elka::pryg-pryg: