BeTep2

При редактировании заказа - затирается поле "Компания"

Рекомендуемые сообщения

BeTep2    0

Добрый вечер,

 

ранее не пользовался этим полем, соответственно не замечал подобного.

При изменении заказа в админке, сразу после открытия формы updateorder затирается значение поля "Компания".

В /admin/controller/sale/order.php никаких правил для этого поля не добавлял, из родных тоже вроде ничего не нашел. В /model/controller/sale/order.php все дефолтное.

 

Если заказ не изменять в админке, все нормально, оно коректно записывается\формируется и т.д. Но как только заходишь в изменение заказа - заменяется на пустое.

Честно говоря не знаю даже куда копать.

Подскажите кто сталкивался, возможно были аналогичные случаи. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    822

что за движок и какая версия? какие модули по работе с заказами стоят?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
BeTep2    0

что за движок и какая версия? какие модули по работе с заказами стоят?

Прошу прощения. Осстор 1.5.4.1,, модулей нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    822

чудес не бывает

либо все же вносили изменения в файлы, либо что-то их меняет (например мод какой-нибудь если vqmod есть)

 

в первом случае пробуйте заменить файлы

admin\controller\sale\order.php

admin\model\sale\order.php

оригинальными из дистрибутива (только копии своих сделайте на всякий)

если проблема исчезнет - дело в изменениях, сравнивайте файлы со своими на предмет отличий

 

во втором - достаточно проверить наличие этих измененных файлов в кеше vqmod

если в папке vqmod/vqcache есть файлы

vq2-admin_controller_sale_order.php

vq2-admin_model_sale_order.php

- значит какой-то мод вносит в них изменения, смотрите сами файлы, ищите виновника

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
BeTep2    0

чудес не бывает

либо все же вносили изменения в файлы, либо что-то их меняет (например мод какой-нибудь если vqmod есть)

 

в первом случае пробуйте заменить файлы

admin\controller\sale\order.php

admin\model\sale\order.php

оригинальными из дистрибутива (только копии своих сделайте на всякий)

если проблема исчезнет - дело в изменениях, сравнивайте файлы со своими на предмет отличий

 

во втором - достаточно проверить наличие этих измененных файлов в кеше vqmod

если в папке vqmod/vqcache есть файлы

vq2-admin_controller_sale_order.php

vq2-admin_model_sale_order.php

- значит какой-то мод вносит в них изменения, смотрите сами файлы, ищите виновника

 

Изменения конечно вносил, только они не касались company, может что-то завязано на ней? К примеру Фамилия или метод доставки, которые я менял? На глаз не нашел этого..

По сути я частично закомментировал валидацию полей и добавил новые функции аля как invoice только с другими шаблонами и т.д.

То есть единственные значительные изменение это комментирование строк валидации, я кину весь сюда, чтобы было видно что я закоментировал:

private function validateForm() {
    	if (!$this->user->hasPermission('modify', 'sale/order')) {
      		$this->error['warning'] = $this->language->get('error_permission');
    	}

    	if ((utf8_strlen($this->request->post['firstname']) < 1) || (utf8_strlen($this->request->post['firstname']) > 32)) {
      		$this->error['firstname'] = $this->language->get('error_firstname');
    	}

    	/*if ((utf8_strlen($this->request->post['lastname']) < 1) || (utf8_strlen($this->request->post['lastname']) > 32)) {
      		$this->error['lastname'] = $this->language->get('error_lastname');
    	}*/

    	if ((utf8_strlen($this->request->post['email']) > 96) || (!preg_match('/^[^\@]+@.*\.[a-z]{2,6}$/i', $this->request->post['email']))) {
      		$this->error['email'] = $this->language->get('error_email');
    	}

    	if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) {
      		$this->error['telephone'] = $this->language->get('error_telephone');
    	}

			/*if ((utf8_strlen($this->request->post['payment_firstname']) < 1) || (utf8_strlen($this->request->post['payment_firstname']) > 32)) {
      		$this->error['payment_firstname'] = $this->language->get('error_firstname');
    	}*/

    	/*if ((utf8_strlen($this->request->post['payment_lastname']) < 1) || (utf8_strlen($this->request->post['payment_lastname']) > 32)) {
      		$this->error['payment_lastname'] = $this->language->get('error_lastname');
    	}*/

			/*if ((utf8_strlen($this->request->post['payment_address_1']) < 3) || (utf8_strlen($this->request->post['payment_address_1']) > 128)) {
      		$this->error['payment_address_1'] = $this->language->get('error_address_1');
    	}*/

    	/*if ((utf8_strlen($this->request->post['payment_city']) < 3) || (utf8_strlen($this->request->post['payment_city']) > 128)) {
      		$this->error['payment_city'] = $this->language->get('error_city');
    	}*/

		$this->load->model('localisation/country');

		$country_info = $this->model_localisation_country->getCountry($this->request->post['payment_country_id']);

		if ($country_info) {
			if ($country_info['postcode_required'] && (utf8_strlen($this->request->post['payment_postcode']) < 2) || (utf8_strlen($this->request->post['payment_postcode']) > 10)) {
				$this->error['payment_postcode'] = $this->language->get('error_postcode');
			}

			// VAT Validation
			$this->load->helper('vat');

			if ($this->config->get('config_vat') && $this->request->post['payment_tax_id'] && (vat_validation($country_info['iso_code_2'], $this->request->post['payment_tax_id']) != 'invalid')) {
				$this->error['payment_tax_id'] = $this->language->get('error_vat');
			}
		}

			if ($this->request->post['payment_country_id'] == '') {
      		$this->error['payment_country'] = $this->language->get('error_country');
    	}

    	if ($this->request->post['payment_zone_id'] == '') {
      		$this->error['payment_zone'] = $this->language->get('error_zone');
    	}

    	if ($this->request->post['payment_method'] == '') {
      		$this->error['payment_zone'] = $this->language->get('error_zone');
    	}

		if (!$this->request->post['payment_method']) {
			$this->error['payment_method'] = $this->language->get('error_payment');
		}

		// Check if any products require shipping
		$shipping = false;

		if (isset($this->request->post['order_product'])) {
			$this->load->model('catalog/product');

			foreach ($this->request->post['order_product'] as $order_product) {
				$product_info = $this->model_catalog_product->getProduct($order_product['product_id']);

				if ($product_info && $product_info['shipping']) {
					$shipping = true;
				}
			}
		}

		if ($shipping) {
			/*if ((utf8_strlen($this->request->post['shipping_firstname']) < 1) || (utf8_strlen($this->request->post['shipping_firstname']) > 32)) {
				$this->error['shipping_firstname'] = $this->language->get('error_firstname');
			}*/

			/*if ((utf8_strlen($this->request->post['shipping_lastname']) < 1) || (utf8_strlen($this->request->post['shipping_lastname']) > 32)) {
				$this->error['shipping_lastname'] = $this->language->get('error_lastname');
			}*/

			/*if ((utf8_strlen($this->request->post['shipping_address_1']) < 3) || (utf8_strlen($this->request->post['shipping_address_1']) > 128)) {
				$this->error['shipping_address_1'] = $this->language->get('error_address_1');
			}*/

			/*if ((utf8_strlen($this->request->post['shipping_city']) < 3) || (utf8_strlen($this->request->post['shipping_city']) > 128)) {
				$this->error['shipping_city'] = $this->language->get('error_city');
			}*/

			$this->load->model('localisation/country');

			$country_info = $this->model_localisation_country->getCountry($this->request->post['shipping_country_id']);

			if ($country_info && $country_info['postcode_required'] && (utf8_strlen($this->request->post['shipping_postcode']) < 2) || (utf8_strlen($this->request->post['shipping_postcode']) > 10)) {
				$this->error['shipping_postcode'] = $this->language->get('error_postcode');
			}

			if ($this->request->post['shipping_country_id'] == '') {
				$this->error['shipping_country'] = $this->language->get('error_country');
			}

			if ($this->request->post['shipping_zone_id'] == '') {
				$this->error['shipping_zone'] = $this->language->get('error_zone');
			}

			if (!$this->request->post['shipping_method']) {
				$this->error['shipping_method'] = $this->language->get('error_shipping');
			}
		}

		if ($this->error && !isset($this->error['warning'])) {
			$this->error['warning'] = $this->language->get('error_warning');
		}

		if (!$this->error) {
	  		return true;
		} else {
	  		return false;
		}
  	}

 

ЗЫ. VQMOD не установлен.

Изменено пользователем BeTep2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
BeTep2    0

Понял в чем проблема.

В шаблоне админки в order_form.tpl я менял поле компании с:

              <td><input type="text" name="shipping_company" value="<?php echo $shipping_company; ?>" /></td>
на:
              <td><textarea name="shipping_company" value="<?php echo $shipping_company; ?>" /></textarea></td>
 
Сейчас я понял глупость, но в целом если ли возможность изменить так область этого поля? Это значительно облегчит работу с ним.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    822

возможность есть, но так же нужно менять код js в admin\view\template\sale\order_form.tpl

найдите

$('input[name=\'shipping_company\']').attr('value', json['company']);

 

измените на

$('textarea[name=\'shipping_company\']').attr('value', json['company']);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
BeTep2    0

возможность есть, но так же нужно менять код js в admin\view\template\sale\order_form.tpl

найдите

$('input[name=\'shipping_company\']').attr('value', json['company']);

 

измените на

$('textarea[name=\'shipping_company\']').attr('value', json['company']);

Когда нашел причину уже пробовал изменить и js, все равно значение поля textarea становится пустым.

Не знаю важно ли это, но в бд для этого поля выставил те же требования что и для поля comment то есть text (с лимитом, но большим достаточно).

Ранее у него было значение varchar (32). 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
BeTep2    0

В общем ошибка в выводе textarea. Вместо:
 <td><textarea name="shipping_company" value="<?php echo $shipping_company; ?>" /></textarea></td>

Нужно value вынести:
<td><textarea name="shipping_company"><?php echo $shipping_company; ?></textarea></td>

 

Как обычно тупейшая ошибка..

Спасибо за помощь!
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
BeTep2    0

Привет еще раз. Теперь такой вопрос:

Как значение этой переменной в виде textarea вывести в счет с переносами строк? Он вставляет просто текст, не понимая перенос строки.

К примеру текст:
"Компания Пупсик и Ко
Директор: Пупсик К.О.

тел. 467496476947694"

Вставляет как: "
Компания Пупсик и КоДиректор: Пупсик К.О.тел. 467496476947694"

 

Ранее (когда был input вместо textarea) вставлял с переносами...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От Pulemet

      300.00 руб
      Скачать/Купить дополнение


      Админка - управление обязательными полями в заказе
      В Opencart при редактировании заказа необходимо обязательно заполнять множество данных, которые во многих случаях просто не нужны. Данное расширение позволит вам отключить необходимость ввода полей (возможность заполнения остаётся) в админке заказа, в которых нет необходимости.

      Есть возможность настроить активность/неактивность следующих строк:

      Вкладка Данные покупателя:   Имя, Фамилия, E-Mail, Телефон;
      Вкладка Детали оплаты: Имя, Фамилия, Адрес 1, Город, Страна, Регион / Область;
      Вкладка Детали доставки: Имя, Фамилия, Адрес 1, Город, Страна, Регион / Область.


      Внимание! Работоспособность модуля гарантируется только в стандартной форме редактирования заказа.

      Почта для связи : order.opencart@gmail.com
      Добавил Pulemet Добавлено 26.09.2017 Категория Инструменты, утилиты Системные требования Сайт разработчика Старая цена Метод активации Без активации
      Автоматическая активация Ioncube Loader Нет OpenCart 2.3
      2.1 ocStore 2.3
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От Pulemet
      В Opencart при редактировании заказа необходимо обязательно заполнять множество данных, которые во многих случаях просто не нужны. Данное расширение позволит вам отключить необходимость ввода полей (возможность заполнения остаётся) в админке заказа, в которых нет необходимости.

      Есть возможность настроить активность/неактивность следующих строк:

      Вкладка Данные покупателя:   Имя, Фамилия, E-Mail, Телефон;
      Вкладка Детали оплаты: Имя, Фамилия, Адрес 1, Город, Страна, Регион / Область;
      Вкладка Детали доставки: Имя, Фамилия, Адрес 1, Город, Страна, Регион / Область.


      Внимание! Работоспособность модуля гарантируется только в стандартной форме редактирования заказа.

      Почта для связи : order.opencart@gmail.com
    • От faceoff


      Просмотреть файл Быстрый комментарий к заказу (vQmod)
      - Дополнение добавляет заметку о клиенте, которая при следующем заказе доступна менеджеру в карточке заказа. На практике бывает необходимо, когда клиенту не добавили что-то в заказ и нужно отметить, чтобы в следующий заказ этот товар добавили. Так же бывают случаи отправки одному клиенту наложенным платежом нескольких заказов, когда он их не выкупает.
      - Дополнение добавляет заметку "о заказе", например можно указать когда клиент придет за заказом.
      - В списке заказов отображается заметка о заказе
      Покупателя определяет по емейлу, поле емейл обязательно для заполнения.
      Тестировалось на OcStore версий с 1.5.4.1 по 1.5.5.1.2
       
      Установка:
      Скопировать содержимое архива в корень сайта, не заменяет стандартные файлы Opencart.
      История изменений:
      - Версия 1.6
      Имя пользователя, который оставил комментарий - Версия 1.5
      Вывод комментария на печать в инвойсе - Версия 1.4
      Проверка на пустой комментарий - Версия 1.3
      Уменьшил количество sql запросов - Версия 1.2
      Отображение заметки о заказе в списке заказов - Версия 1.1
      Добавлена функция - Заметка о заказе - Версия 1.0
      Добавлена функция - Заметка о покупателе Автор faceoff Добавлен 15.11.2014 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
    • От faceoff
      - Дополнение добавляет заметку о клиенте, которая при следующем заказе доступна менеджеру в карточке заказа. На практике бывает необходимо, когда клиенту не добавили что-то в заказ и нужно отметить, чтобы в следующий заказ этот товар добавили. Так же бывают случаи отправки одному клиенту наложенным платежом нескольких заказов, когда он их не выкупает.
      - Дополнение добавляет заметку "о заказе", например можно указать когда клиент придет за заказом.
      - В списке заказов отображается заметка о заказе
      Покупателя определяет по емейлу, поле емейл обязательно для заполнения.
      Тестировалось на OcStore версий с 1.5.4.1 по 1.5.5.1.2
       
      Установка:
      Скопировать содержимое архива в корень сайта, не заменяет стандартные файлы Opencart.
      История изменений:
      - Версия 1.6
      Имя пользователя, который оставил комментарий - Версия 1.5
      Вывод комментария на печать в инвойсе - Версия 1.4
      Проверка на пустой комментарий - Версия 1.3
      Уменьшил количество sql запросов - Версия 1.2
      Отображение заметки о заказе в списке заказов - Версия 1.1
      Добавлена функция - Заметка о заказе - Версия 1.0
      Добавлена функция - Заметка о покупателе
    • От ashap


      Просмотреть файл Ручное изменение стоимости доставки.
      Shipedit - Ручное изменение стоимости доставки.
      Модуль дает возможность изменить окончательную стоимость доставки в административной панели при редактировании заказа.
      После добавления товаров или изменения способа доставки все пересчитывается заново. Данный модуль работает только для окончательной корректировки стоимости доставки.
      Версия для магазинов ОС 2.3 по ссылке
       

       
      Демонстрация
      http://ashap.pe-art.ru/
      Админка
      http://ashap.pe-art.ru/admin
      логин demo
      пароль demo

       
      Смотрите также другие модули по ссылке
      Автор ashap Добавлен 13.06.2013 Категория Учет в заказе Системные требования Сайт разработчика Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
  • Последние посетители   0 пользователей онлайн

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