Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Поддержка] Модуль доставки Почта России


louise170

Recommended Posts

Здравствуйте.

Некоторое время назад после нажатия "Оформить заказ" Mysql-сервер стал уходить на перезагрузку.
Если отключаю ваш модуль - всё ОК.

 

Поставил новую версию (поверх старой) - не помогает.

 

Из логов:

2015-11-23 17:37:00 - PHP Notice:  mysql_query(): send of 57 bytes failed with errno=32 Broken pipe in /home/v/blabla/public_html/system/database/mysql.php on line 22
2015-11-23 17:37:00 - PHP Warning:  Error while sending QUERY packet. PID=13359 in /home/v/blabla/public_html/system/database/mysql.php on line 22
2015-11-23 17:37:00 - PHP Notice:  Error: MySQL server has gone away<br />Error No: 2006<br />SELECT * FROM ocvin_extension WHERE `type` = 'total' in /home/v/blabla/public_html/system/database/mysql.php on line 50

Код mysql.php:

<?php
final class MySQL {
	private $link;
	
	public function __construct($hostname, $username, $password, $database) {
		if (!$this->link = mysql_connect($hostname, $username, $password)) {
      		trigger_error('Error: Could not make a database link using ' . $username . '@' . $hostname);
		}

    	if (!mysql_select_db($database, $this->link)) {
      		trigger_error('Error: Could not connect to database ' . $database);
    	}
		
		mysql_query("SET NAMES 'utf8'", $this->link);
		mysql_query("SET CHARACTER SET utf8", $this->link);
		mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->link);
		mysql_query("SET SQL_MODE = ''", $this->link);
  	}
		
  	public function query($sql) {
		if ($this->link) {
			$resource = mysql_query($sql, $this->link);
	
			if ($resource) {
				if (is_resource($resource)) {
					$i = 0;
			
					$data = array();
			
					while ($result = mysql_fetch_assoc($resource)) {
						$data[$i] = $result;
			
						$i++;
					}
					
					mysql_free_result($resource);
					
					$query = new stdClass();
					$query->row = isset($data[0]) ? $data[0] : array();
					$query->rows = $data;
					$query->num_rows = $i;
					
					unset($data);
					
					return $query;	
				} else {
					return true;
				}
			} else {
				trigger_error('Error: ' . mysql_error($this->link) . '<br />Error No: ' . mysql_errno($this->link) . '<br />' . $sql);
				exit();
			}
		}
  	}
	
	public function escape($value) {
		if ($this->link) {
			return mysql_real_escape_string($value, $this->link);
		}
	}
	
  	public function countAffected() {
		if ($this->link) {
    		return mysql_affected_rows($this->link);
		}
  	}

  	public function getLastId() {
		if ($this->link) {
    		return mysql_insert_id($this->link);
		}
  	}	
	
	public function __destruct() {
		if ($this->link) {
			mysql_close($this->link);
		}
	}
}
?>
Надіслати
Поділитися на інших сайтах


 

Здравствуйте.

Некоторое время назад после нажатия "Оформить заказ" Mysql-сервер стал уходить на перезагрузку.

Если отключаю ваш модуль - всё ОК.

 

Поставил новую версию (поверх старой) - не помогает.

 

Из логов:

2015-11-23 17:37:00 - PHP Notice:  mysql_query(): send of 57 bytes failed with errno=32 Broken pipe in /home/v/blabla/public_html/system/database/mysql.php on line 22
2015-11-23 17:37:00 - PHP Warning:  Error while sending QUERY packet. PID=13359 in /home/v/blabla/public_html/system/database/mysql.php on line 22
2015-11-23 17:37:00 - PHP Notice:  Error: MySQL server has gone away<br />Error No: 2006<br />SELECT * FROM ocvin_extension WHERE `type` = 'total' in /home/v/blabla/public_html/system/database/mysql.php on line 50

Код mysql.php:

<?php
final class MySQL {
	private $link;
	
	public function __construct($hostname, $username, $password, $database) {
		if (!$this->link = mysql_connect($hostname, $username, $password)) {
      		trigger_error('Error: Could not make a database link using ' . $username . '@' . $hostname);
		}

    	if (!mysql_select_db($database, $this->link)) {
      		trigger_error('Error: Could not connect to database ' . $database);
    	}
		
		mysql_query("SET NAMES 'utf8'", $this->link);
		mysql_query("SET CHARACTER SET utf8", $this->link);
		mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->link);
		mysql_query("SET SQL_MODE = ''", $this->link);
  	}
		
  	public function query($sql) {
		if ($this->link) {
			$resource = mysql_query($sql, $this->link);
	
			if ($resource) {
				if (is_resource($resource)) {
					$i = 0;
			
					$data = array();
			
					while ($result = mysql_fetch_assoc($resource)) {
						$data[$i] = $result;
			
						$i++;
					}
					
					mysql_free_result($resource);
					
					$query = new stdClass();
					$query->row = isset($data[0]) ? $data[0] : array();
					$query->rows = $data;
					$query->num_rows = $i;
					
					unset($data);
					
					return $query;	
				} else {
					return true;
				}
			} else {
				trigger_error('Error: ' . mysql_error($this->link) . '<br />Error No: ' . mysql_errno($this->link) . '<br />' . $sql);
				exit();
			}
		}
  	}
	
	public function escape($value) {
		if ($this->link) {
			return mysql_real_escape_string($value, $this->link);
		}
	}
	
  	public function countAffected() {
		if ($this->link) {
    		return mysql_affected_rows($this->link);
		}
  	}

  	public function getLastId() {
		if ($this->link) {
    		return mysql_insert_id($this->link);
		}
  	}	
	
	public function __destruct() {
		if ($this->link) {
			mysql_close($this->link);
		}
	}
}
?>

 

такое выдает, когда курл перестал работать как надо, возможно ваш айпишник попал в черный список посткалька и вы курлом ничего не получаете и все виснет, в том числе и база данных.

Надіслати
Поділитися на інших сайтах

такое выдает, когда курл перестал работать как надо, возможно ваш айпишник попал в черный список посткалька и вы курлом ничего не получаете и все виснет, в том числе и база данных.

Да, обнаружил IP хостера в черном списке. Но на том же IP сотни сайтов. Мой магазин только начинает работу и в принципе не мог создавать высокую нагрузку на посткальк.

А нельзя ли как-то обрабатывать эту ошибку, выдавая сообщение и не доводя сервер до перезагрузки?

Почему такие катастрофические последствия?

Надіслати
Поділитися на інших сайтах


Да, обнаружил IP хостера в черном списке. Но на том же IP сотни сайтов. Мой магазин только начинает работу и в принципе не мог создавать высокую нагрузку на посткальк.

А нельзя ли как-то обрабатывать эту ошибку, выдавая сообщение и не доводя сервер до перезагрузки?

Почему такие катастрофические последствия?

 

Бан ip дает такой эффект, там нет ответа от курла, он тупо подвисает. Так что ошибку выдавать не получается.

Напишите авторам посткалька, спросите почему в бане и что с этим делать.

Надіслати
Поділитися на інших сайтах

Такой вопрос:

В некоторые регионы, не круглогодичной наземной доступности, в определенное время(пока льда еще нет а судоходство закрыли) доступна только комбинированная (АВИА доставка). Но представленные в модуле варианты отправлений "Ценная авиапосылка" и "ценная авиапосылка с объявленной стоимостью" не отображаются. Например, ЯНАО, индекс 166721

 

Посткальк насколько я знаю выдает авиа доставку, и некоторые модули, даже представленные на этом форуме, показывают доставку в этот регион. 

 

Прошу не воспринимать это как "плювок" в Вашу сторону, типа "у вас плохой модуль а у когото хороший" а наоборот, как к тому, что модуль нравится, и хочется все-таки чтобы модуль рассчитывал так как надо, всю доставку почтой

 

P.S. Всем рекомендую данный модуль, автор помогает и все объясняет оперативно. Единственное, что обещали сделать доработку минимальной суммы заказа уже месяца полтора наверное назад, до сих пор ждем)))

Змінено користувачем Zavik21
Надіслати
Поділитися на інших сайтах


Такой вопрос:

В некоторые регионы, не круглогодичной наземной доступности, в определенное время(пока льда еще нет а судоходство закрыли) доступна только комбинированная (АВИА доставка). Но представленные в модуле варианты отправлений "Ценная авиапосылка" и "ценная авиапосылка с объявленной стоимостью" не отображаются. Например, ЯНАО, индекс 166721

 

Посткальк насколько я знаю выдает авиа доставку, и некоторые модули, даже представленные на этом форуме, показывают доставку в этот регион. 

 

Прошу не воспринимать это как "плювок" в Вашу сторону, типа "у вас плохой модуль а у когото хороший" а наоборот, как к тому, что модуль нравится, и хочется все-таки чтобы модуль рассчитывал так как надо, всю доставку почтой

 

P.S. Всем рекомендую данный модуль, автор помогает и все объясняет оперативно. Единственное, что обещали сделать доработку минимальной суммы заказа уже месяца полтора наверное назад, до сих пор ждем)))

 

Только авиа-доставка учитывается для нужных регионов самим посткальком, я только выдаю то, что отдает API.

Попробуйте на демо-сайте ввести этот индекс - для него сейчас отображаются отправления и не только авиа, так же как и на посткальке.

 

Если у вас нужные отправления не отображаются, значит либо вообще не включены в настройках модуля, либо что-то еще не так...

Надіслати
Поділитися на інших сайтах

Только авиа-доставка учитывается для нужных регионов самим посткальком, я только выдаю то, что отдает API.

Попробуйте на демо-сайте ввести этот индекс - для него сейчас отображаются отправления и не только авиа, так же как и на посткальке.

 

Если у вас нужные отправления не отображаются, значит либо вообще не включены в настройках модуля, либо что-то еще не так...

 

Сейчас проверил все настройки модуля на демо сайте и у себя - все одинаково.

Но на демо сайте авиа доставка показывается, но на моем нет.

 

Задал все настройки абсолютно такие же как у вас, и у меня тоже начал показывать. Вывод - не показывало из-за индекста откуда посылка отправляется.

Был на почте, сказали что авиа посылки идут комбинированные - сначала доставка до Москвы, а с москвы авиа.

Видимо, по этому не отображается если с моего города доставка.

В результате что мы имеем - посылка сначала идет как простая ценная посылка до москвы а потом авиа доставка.

Надіслати
Поділитися на інших сайтах


Сейчас проверил все настройки модуля на демо сайте и у себя - все одинаково.

Но на демо сайте авиа доставка показывается, но на моем нет.

 

Задал все настройки абсолютно такие же как у вас, и у меня тоже начал показывать. Вывод - не показывало из-за индекста откуда посылка отправляется.

Был на почте, сказали что авиа посылки идут комбинированные - сначала доставка до Москвы, а с москвы авиа.

Видимо, по этому не отображается если с моего города доставка.

В результате что мы имеем - посылка сначала идет как простая ценная посылка до москвы а потом авиа доставка.

 

В данном случае наверное нужно написать на посткальк, чтобы они это смогли учесть и всем это было в дальнейшем доступно.

Надіслати
Поділитися на інших сайтах

В данном случае наверное нужно написать на посткальк, чтобы они это смогли учесть и всем это было в дальнейшем доступно.

Ждём решения проблемы, какого-либо или от посткалька, или автора модуля нам не важно в принципе, главное чтобы работало

Надіслати
Поділитися на інших сайтах


Ждём решения проблемы, какого-либо или от посткалька, или автора модуля нам не важно в принципе, главное чтобы работало

 

Я работаю с тем, что выдается через API посткалька, возможные решения по коррекции цен в модуле от меня есть - добавить доп. плату за упаковку, добавить вес. упаковки и т.п. Но в данном случае не ко мне вопрос, я тут ничего не могу сделать. Так что, когда будете писать на посткальк не забудьте ваш индекс написать - это самое важное! :) 

Иначе вряд ли его автор сам догадается откуда у вас там не отображаются данные по отправлениям, так же как и я не могла этого понять.

Надіслати
Поділитися на інших сайтах

Кто-нибудь использует этот модуль для расчета стоимости доставки за границу? Почему-то сильно расходится стоимость доставки международных отправлений в модуле и на  http://www.postcalc.ru, да и на почте мне посчитали больше, чем модуль.

В postcalc и на почте для международного мелкого авиа пакета заказного примерно одинаковая цена.

Надіслати
Поділитися на інших сайтах


Кто-нибудь использует этот модуль для расчета стоимости доставки за границу? Почему-то сильно расходится стоимость доставки международных отправлений в модуле и на  http://www.postcalc.ru, да и на почте мне посчитали больше, чем модуль.

В postcalc и на почте для международного мелкого авиа пакета заказного примерно одинаковая цена.

 

Давайте конкретные примеры.

 

С чего бы расходится ценам посткалька и модуля, если все цены модуль получает через API с посткалька? Что было подано на расчет для этого цена и была выдана.

Надіслати
Поділитися на інших сайтах

 

Давайте конкретные примеры.

 

С чего бы расходится ценам посткалька и модуля, если все цены модуль получает через API с посткалька? Что было подано на расчет для этого цена и была выдана.

 

Всё нормально, извините, мой косяк. При переносе базы, у некоторых опций почему-то пропал вес. Из-за этого и были проблемы.

Надіслати
Поділитися на інших сайтах


Здравствуйте

 

Сейчас при выборе доставки Ценная посылка с объявленной ценностью, на шаге 4 и 6 оформления заказа, в конце фразы приписывается сумма

Скажите пожалуйста, как можно  ее убрать ? так, что было просто написано "Ценная посылка с объявленной ценностью"

2ab326b4b640.pngf0ed794e554d.png
 

Надіслати
Поділитися на інших сайтах


Здравствуйте

 

Сейчас при выборе доставки Ценная посылка с объявленной ценностью, на шаге 4 и 6 оформления заказа, в конце фразы приписывается сумма

Скажите пожалуйста, как можно  ее убрать ? так, что было просто написано "Ценная посылка с объявленной ценностью"

2ab326b4b640.pngf0ed794e554d.png

 

 

В файле catalog/model/shipping/pochtaros.php закомментируйте это:

 

$local['title_more'] .= ' '.$this->currency->format($this->tax->calculate($local_total, $this->config->get($this->name.'_tax_class_id'), $this->config->get('config_tax')));

в след. версии вынесу это в настройки.

Надіслати
Поділитися на інших сайтах

Добрый день.

Вылезла такая проблемка, не знаю куда копать. При оформлении заказа выдает ошибку 

Notice: unserialize() [function.unserialize]: Error at offset 0 of 537 bytes in/home/nagimot/nagimot.ru/docs/catalog/model/shipping/pochtaros.php on line 241

 

В 241й строке                     $arrResponse = unserialize($Response);

                                               //print_r($arrResponse);

 

И возможности выбрать почтовую посылку нет, только самовывоз остался.

Помогите, пожалуйста.

Змінено користувачем zdevl
Надіслати
Поділитися на інших сайтах


Добрый день.

Вылезла такая проблемка, не знаю куда копать. При оформлении заказа выдает ошибку 

Notice: unserialize() [function.unserialize]: Error at offset 0 of 537 bytes in/home/nagimot/nagimot.ru/docs/catalog/model/shipping/pochtaros.php on line 241

 

В 241й строке                     $arrResponse = unserialize($Response);

                                               //print_r($arrResponse);

 

И возможности выбрать почтовую посылку нет, только самовывоз остался.

Помогите, пожалуйста.

 

там перед этой строчкой есть такое:

if ( substr($Response,0,3) == "\x1f\x8b\x08" ) {
                    $Response=gzinflate(substr($Response,10,-8));
                    //$Response=gzinflate(substr($Response,10));
                }

можно закомментировать наоборот, т.е.

//$Response=gzinflate(substr($Response,10,-8));
$Response=gzinflate(substr($Response,10));

иногда это помогает.

Надіслати
Поділитися на інших сайтах

не помогло

 

тогда надо перед  

 

$arrResponse = unserialize($Response);

                 
вывести print_r($arrResponse);
посмотреть что там вообще в данных вы получаете, возможно ваш IP заблокирован и вам там об этом пишет в виде обычного HTML, соотв. unserialize на такое выдает ошибку.
Надіслати
Поділитися на інших сайтах

можно поподробнее описать, что и куда надо вывести.

 

я раскомментировал print_r($arrResponse);

 

теперь выдает

Notice: unserialize() [function.unserialize]: Error at offset 0 of 537 bytes in/home/nagimot/nagimot.ru/docs/catalog/model/shipping/pochtaros.php on line 241

Надіслати
Поділитися на інших сайтах


можно поподробнее описать, что и куда надо вывести.

 

я раскомментировал print_r($arrResponse);

 

теперь выдает

Notice: unserialize() [function.unserialize]: Error at offset 0 of 537 bytes in/home/nagimot/nagimot.ru/docs/catalog/model/shipping/pochtaros.php on line 241

 

print_r($arrResponse); нужно перед ансериалайз поставить
а не просто раскомментировать, т.е. должно быть
print_r($arrResponse);
$arrResponse = unserialize($Response);
 
Надіслати
Поділитися на інших сайтах

Добрый день.

 

Подскажите, как установить географические зоны? 

У меня по умолчанию нет не одной.

Прочитал, что в архиве есть дамп для базы, но как подключить к себе я не знаю..

Надіслати
Поділитися на інших сайтах


Здравствуйте, хочу обратиться к вам за решением 2-х проблем с модулем , 1 - необходим отдельный пункт доставка наложенным платежом. При формировании доставки заказа такого пункта по умолчанию нет, вывести его тоже нереально, пользователям непонятно будет,

 

на данном этапе для заказа наложенным платежом идти методом - ценная посылка - оплата при получении. И главное но! не считается процент за наложенный платёж, т.е. при выборе ценная посылка - оплата при получении и при оплате сразу сумма одинаковая (2-я проблема) , хотя за наложенный платёж почта как помнится взымает от 3%

 

необходим отдельный пункт отправки - наложенным платежом, который расчитывал сразу сумму с % почты, что б не через ценная посылка + оплата при получении

Змінено користувачем malega
Надіслати
Поділитися на інших сайтах


Добрый день.

 

Подскажите, как установить географические зоны? 

У меня по умолчанию нет не одной.

Прочитал, что в архиве есть дамп для базы, но как подключить к себе я не знаю..

 

Зайти в базу данных через клиент, который есть у вас на сервере - обычно это phpmyadmin. Дальше копируете запросы из дампа и запускаете их в базе.

Если у вас префикс у таблиц не oc_, тогда предварительно в запросах надо будет его поменять на ваш.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.