Перейти к содержанию
BeTep2

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

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

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

 

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

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

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

 

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

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

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

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


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

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

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


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

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

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

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


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

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

либо все же вносили изменения в файлы, либо что-то их меняет (например мод какой-нибудь если 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

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

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


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

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

либо все же вносили изменения в файлы, либо что-то их меняет (например мод какой-нибудь если 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

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


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

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

В шаблоне админки в 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>
 
Сейчас я понял глупость, но в целом если ли возможность изменить так область этого поля? Это значительно облегчит работу с ним.

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


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

возможность есть, но так же нужно менять код 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 в 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). 

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


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

В общем ошибка в выводе 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>

 

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

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

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


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

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

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

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

тел. 467496476947694"

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

 

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

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


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

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

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

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

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

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

Войти

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

Войти

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

    • От ashap
      550.00 руб
      Скачать/Купить дополнение


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

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

       
      Смотрите также другие модули по ссылке
      Добавил ashap Добавлено 13.06.2013 Категория Учет в заказе Системные требования Сайт разработчика https://store.pe-art.ru/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1 OpenCart.Pro, ocShop Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От ashap
      Shipedit - Ручное изменение стоимости доставки.
      Модуль дает возможность изменить окончательную стоимость доставки в административной панели при редактировании заказа.
      После добавления товаров или изменения способа доставки все пересчитывается заново. Данный модуль работает только для окончательной корректировки стоимости доставки.
       
      Версия для магазинов ОС 2.3 по ссылке
      Версия для магазинов 3.x по ссылке
       

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

       
      Смотрите также другие модули по ссылке
    • От shchs
      1 800.00 руб
      Скачать/Купить дополнение


      OrderPro - Расширенный редактор заказа для 1.5.x.x
      OrderPro - Редактор заказа в админ панели интернет-магазина.
       
      Позволяет выполнять практически любые действия с заказом:
      1. Создавать/изменять/копировать заказы.
      2. Изменять цену/количество/опции/скидки у товара.
      3. Добавлять/удалять товары в заказе.
      3. Изменять данные покупателя/адрес доставки в заказе.
      4. Регистрировать гостей как покупателей на основе данных в заказе.
      5. Изменять способы оплаты и доставки с автоматическим**/ручным пересчетом стоимости.
      6. Добавлять произвольные скидки/наценки на сумму заказа.
      7. Управлять бонусными баллами/купонами/сертификатами/партнерской комиссией в заказе.
      8. Добавлять историю заказа.
      9. Имеет интерфейс с удобной группировкой данных без ненужных повторений/ограничений полей.
      ** - если метод доставки при расчете подгружает какие-либо скрипты/карты, то такой метод возможно
      не сможет автоматически обновить свою стоимость. Но в любом случае вы будете иметь возможность сохранить
      данные его первичного расчета при (оформлении заказа).
       
      Перед установкой дополнения, обязательно ознакомьтесь с порядком новой установки и обновления,
      описанном в файле "readme.rus" в архиве с модулем.
       
      Известные несовместимости (ограничения):
      1. Дополнение не совместимо с модулями влияющими на подсчет итогов заказа, у которых "код итога" называется "discount"
      Обычно файлы такого дополнения также имеют названия "discount.php" и в файле модели "catalog\model\total\discount.php"
      имеют строку: "$total_data[] = array('code' => 'discount'
       
      Условия приобретения:
      1. Данное дополнение распространяется по принципу 1 лицензия - 1 домен + 1 тестовый домен.
      2. Поддомены считаются отдельным доменом!
      3. Тестовым доменом может быть только либо технический адреса хостинга, либо поддомен "test" основного домена.
      4. Модуль распространяется по принципу "как есть", со всеми его особенностями, достоинствами
      и недостатками, как имеющимися в данный момент так и выявленными в будущем, поэтому
      любые исправления или изменения модуля возможны только по воле автора и никак иначе.
      5. В модуле используется технология защиты, препятствующая несанкционированному использованию модуля,
      а также ограничивающая изменение файлов с его кодом.
      6. Данная защита не снимается ни при каких условиях.
      7. Применение средств и методов, позволяющих обойти используемую технологию защиты, являются незаконными.
      8. Лицензия возврату не подлежит!
      9. Продукт не является бесплатным программным обеспечением и не может распространяться в какой-либо форме где-либо без письменного согласия автора.
       
      Условия Тех.поддержки:
      1. Вопросы по поддержке вы также можете задавать по почте shchs@ya.ru, либо по скайпу: ashchs
      2. Активация дополнения выполняется в течении суток с момента покупки.
      3. Тех.поддержка оказывается в течении двух суток с момента поступления запроса.
       3.1 Тех.поддержка оказывается при предоставлении доступа в админ.панель и к файлам сайта по протоколу FTP.
      4. В условия тех.поддержки не входит:
       4.1 согласование работы дополнения с какими-то либо другими модулями.
       4.2 настройка и запуск дополнения на версиях opencart/ocstore отличных от явно заявленных.
       4.3 изменение работы или добавление каких-либо новых функций.
      5. Поддержка оказывается только легальным и добросовестным покупателям, купившим данный продукт непосредственно у автора, а также на сайте opencartforum.com
       
      Системные требования:
      1. Минимум PHP 5.3
      2. Vqmod
      3. IonCube loader последней версии
      4. Opencart/OcStore 1.5.2.x-1.5.6.x
       
      Приобретая данное дополнение, вы тем самым соглашаетесь с системными требованиями, ограничениями, условиями покупки и тех.поддержки.
       
      Для приобретения дополнительных лицензий обращаться на shchs@ya.ru
      Возможно получение тестовой лицензии на 10 дней - писать на shchs@ya.ru
       
      Демо:
      http://mambasu.ru/admin
      demo
      demo
      Добавил shchs Добавлено 10.02.2016 Категория Редакторы Системные требования Ioncube Loader, Vqmod Сайт разработчика Старая цена Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart ocStore OpenCart.Pro, ocShop  
    • От shchs
      OrderPro - Редактор заказа в админ панели интернет-магазина.
       
      Позволяет выполнять практически любые действия с заказом:
      1. Создавать/изменять/копировать заказы.
      2. Изменять цену/количество/опции/скидки у товара.
      3. Добавлять/удалять товары в заказе.
      3. Изменять данные покупателя/адрес доставки в заказе.
      4. Регистрировать гостей как покупателей на основе данных в заказе.
      5. Изменять способы оплаты и доставки с автоматическим**/ручным пересчетом стоимости.
      6. Добавлять произвольные скидки/наценки на сумму заказа.
      7. Управлять бонусными баллами/купонами/сертификатами/партнерской комиссией в заказе.
      8. Добавлять историю заказа.
      9. Имеет интерфейс с удобной группировкой данных без ненужных повторений/ограничений полей.
      ** - если метод доставки при расчете подгружает какие-либо скрипты/карты, то такой метод возможно
      не сможет автоматически обновить свою стоимость. Но в любом случае вы будете иметь возможность сохранить
      данные его первичного расчета при (оформлении заказа).
       
      Перед установкой дополнения, обязательно ознакомьтесь с порядком новой установки и обновления,
      описанном в файле "readme.rus" в архиве с модулем.
       
      Известные несовместимости (ограничения):
      1. Дополнение не совместимо с модулями влияющими на подсчет итогов заказа, у которых "код итога" называется "discount"
      Обычно файлы такого дополнения также имеют названия "discount.php" и в файле модели "catalog\model\total\discount.php"
      имеют строку: "$total_data[] = array('code' => 'discount'
       
      Условия приобретения:
      1. Данное дополнение распространяется по принципу 1 лицензия - 1 домен + 1 тестовый домен.
      2. Поддомены считаются отдельным доменом!
      3. Тестовым доменом может быть только либо технический адреса хостинга, либо поддомен "test" основного домена.
      4. Модуль распространяется по принципу "как есть", со всеми его особенностями, достоинствами
      и недостатками, как имеющимися в данный момент так и выявленными в будущем, поэтому
      любые исправления или изменения модуля возможны только по воле автора и никак иначе.
      5. В модуле используется технология защиты, препятствующая несанкционированному использованию модуля,
      а также ограничивающая изменение файлов с его кодом.
      6. Данная защита не снимается ни при каких условиях.
      7. Применение средств и методов, позволяющих обойти используемую технологию защиты, являются незаконными.
      8. Лицензия возврату не подлежит!
      9. Продукт не является бесплатным программным обеспечением и не может распространяться в какой-либо форме где-либо без письменного согласия автора.
       
      Условия Тех.поддержки:
      1. Вопросы по поддержке вы также можете задавать по почте shchs@ya.ru, либо по скайпу: ashchs
      2. Активация дополнения выполняется в течении суток с момента покупки.
      3. Тех.поддержка оказывается в течении двух суток с момента поступления запроса.
       3.1 Тех.поддержка оказывается при предоставлении доступа в админ.панель и к файлам сайта по протоколу FTP.
      4. В условия тех.поддержки не входит:
       4.1 согласование работы дополнения с какими-то либо другими модулями.
       4.2 настройка и запуск дополнения на версиях opencart/ocstore отличных от явно заявленных.
       4.3 изменение работы или добавление каких-либо новых функций.
      5. Поддержка оказывается только легальным и добросовестным покупателям, купившим данный продукт непосредственно у автора, а также на сайте opencartforum.com
       
      Системные требования:
      1. Минимум PHP 5.3
      2. Vqmod
      3. IonCube loader последней версии
      4. Opencart/OcStore 1.5.2.x-1.5.6.x
       
      Приобретая данное дополнение, вы тем самым соглашаетесь с системными требованиями, ограничениями, условиями покупки и тех.поддержки.
       
      Для приобретения дополнительных лицензий обращаться на shchs@ya.ru
      Возможно получение тестовой лицензии на 10 дней - писать на shchs@ya.ru
       
      Демо:
      http://mambasu.ru/admin
      demo
      demo
    • От noakky
      Скачать/Купить дополнение


      Кнопка редактирования заказа при просмотре [vQmod]
      Модуль добавляет кнопку "Изменить" Редактирования заказа при просмотре самого заказа рядом с кнопками "Показать счет" и "Вернуться" (иначе приходилось выходить из просмотра заказа, что его изменить).
      Для использования без vqmod:
      в файле admin/controller/sale/order.php добавить
      $this->data['button_inedit'] = $this->language->get('button_inedit'); перед

      $this->data['button_invoice'] = $this->language->get('button_invoice');

      добавить
      $this->data['inedit'] = $this->url->link('sale/order/update', 'token=' . $this->session->data['token'] . '&order_id=' . (int)$this->request->get['order_id'], 'SSL'); перед

      $this->data['invoice'] = $this->url->link('sale/order/invoice', 'token=' . $this->session->data['token'] . '&order_id=' . (int)$this->request->get['order_id'], 'SSL');


      [*]в файле admin/language/russian/russian.php
      добавить
      $_['button_inedit'] = 'Изменить'; перед

      $_['button_invoice'] = 'Показать счет';


      [*]В файле admin/view/template/sale/order_info.tpl
      добавить
      <a href="<?php echo $inedit; ?>" target="_blank" class="button"><?php echo $button_inedit; ?></a> после

      <div class="buttons">




      Добавил noakky Добавлено 20.10.2013 Категория Редакторы  
  • Последние посетители   0 пользователей онлайн

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

×