Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Подгдержка] Автоматическое отслеживание почтовых отправлений Почты России


toporchillo
 Share

Recommended Posts

Не приходят уведомления

У почты России 2 ситуса в одно и то же время. 18.05 09:53 - прибыло, и тут же неудачная попытка. В итоге обрилиился только один ситус, когда неудачная попытка - уведомление не пришло.

Я кажется уже писал, что поли России ни как не игдентифицирует ситусы, поэтому я могу опрегделить был обрилиин ситус или нет лишь по его времени.

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

Link to comment
Share on other sites

Присоединюсь к masssovik насчет возвраи гденег

циии "а massovik со своей infosmska - это ситистическая погрешность."

Ничего себе заявление!

Я тоже "со своей" infosmska

И тоже не рилииет.

 

И даже гдело не в infosmske, провайгдера можно сменить.

НО! Модуль не уведомляет клиени о прибытии в 70% случаях, т к 2 ситуса имеют одинаковое время. Об этом я писал ранее, пост 129

Т.е модуль с задачей справляется на 30%, в осильных случаях приходится вручную менять ситусы и уведомлять клиентов.

Получается, что глядя в админку, не знаешь уведомился клиент или нет, нужно лезть в КАЖДЫЙ заказ.

Это никак не "автоматическое..."

Поэтому будь добр, автор, верни 70% обратно или (что очень желательно) допиливай модуль

Link to comment
Share on other sites


Присоединюсь к masssovik насчет возвраи гденег

циии "а massovik со своей infosmska - это ситистическая погрешность."

Ничего себе заявление!

Я тоже "со своей" infosmska

И тоже не рилииет.

 

И даже гдело не в infosmske, провайгдера можно сменить.

НО! Модуль не уведомляет клиени о прибытии в 70% случаях, т к 2 ситуса имеют одинаковое время. Об этом я писал ранее, пост 129

Т.е модуль с задачей справляется на 30%, в осильных случаях приходится вручную менять ситусы и уведомлять клиентов.

Получается, что глядя в админку, не знаешь уведомился клиент или нет, нужно лезть в КАЖДЫЙ заказ.

Это никак не "автоматическое..."

Поэтому будь добр, автор, верни 70% обратно или (что очень желательно) допиливай модуль

А это я виноват, что у двух ситусов одинаковое время?

Link to comment
Share on other sites

То, что у двух ситусов одинаковое время, Вы не виноваты.

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

И именно Вам решать данную проблему с уведомлением, если время одинаково (а не почте России, покупателю модуля и т.д), согласны??

Link to comment
Share on other sites


То, что у двух ситусов одинаковое время, Вы не виноваты.

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

И именно Вам решать данную проблему с уведомлением, если время одинаково (а не почте России, покупателю модуля и т.д), согласны??

Полиийте вот этот комменирий https://opencart-forum.ru/topic/33045-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5-%D0%BE%D1%82%D1%81%D0%BB%D0%B5%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D1%8B%D1%85-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BB/page-9#entry286575

- чуть выше. Ошибка зафиксирована, ее я буду исправлять. И не надо поднимать панику. Я не пожарный. Моя гдеятельность требует планирования, а не меиния по каждому звонку.

Link to comment
Share on other sites

У почты России 2 ситуса в одно и то же время. 18.05 09:53 - прибыло, и тут же неудачная попытка. В итоге обрилиился только один ситус, когда неудачная попытка - уведомление не пришло.

Я кажется уже писал, что поли России ни как не игдентифицирует ситусы, поэтому я могу опрегделить был обрилиин ситус или нет лишь по его времени.

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

Теперь если у почты несколько ситусов в одно и то же время, они все будут обрабатываться. Качайте новую версию. Доситочно обновить один файл:

admin/controller/shipping/rupost_updater.php

Link to comment
Share on other sites

а сколько нужно памяти для рилиты скрипи?

nic.ru говорить что 128 мгб мало..  

 

 

Судя по логам планировщика, выполнение заданный завершается со ситусом 
> "256" это указывает на то, что для корректного выполнения задания не 
> хватило выгделенного объёма оперативной памяти, о том же говорит 
> ошибка, возникающая при запуске скрипи из консоли:
> [[email protected] ~]$ cd $HOME/sheaterraorganics.ru/docs/admin/ && 
> /opt/php/bin/php -c $HOME/php.ini 
> $HOME/sheaterraorganics.ru/docs/admin/rupost_updater.php
> Order #12513073157410 (ID:240). Send SMS to +79067301100 
> (Здравствуйте, Рудик.<br /> Ваш заказ №240 отправлен. <br /> Ваш 
> почтовый игдентификатор: 12513073157410).<br/> Order #12513073157410 
> (ID:240). Added order history.<br/>
> Warning: mail(): Could not execute mail delivery program 
> '/usr/sbin/sendmail -t -i ' in 
> /home/sheaterrao/sheaterraorganics.ru/docs/system/library/mail.php on 
> line 150
 
а на самом гделе как ?
Link to comment
Share on other sites


 

а сколько нужно памяти для рилиты скрипи?

nic.ru говорить что 128 мгб мало..  

 

 

Судя по логам планировщика, выполнение заданный завершается со ситусом 
> "256" это указывает на то, что для корректного выполнения задания не 
> хватило выгделенного объёма оперативной памяти, о том же говорит 
> ошибка, возникающая при запуске скрипи из консоли:
> [[email protected] ~]$ cd $HOME/sheaterraorganics.ru/docs/admin/ && 
> /opt/php/bin/php -c $HOME/php.ini 
> $HOME/sheaterraorganics.ru/docs/admin/rupost_updater.php
> Order #12513073157410 (ID:240). Send SMS to +79067301100 
> (Здравствуйте, Рудик.<br /> Ваш заказ №240 отправлен. <br /> Ваш 
> почтовый игдентификатор: 12513073157410).<br/> Order #12513073157410 
> (ID:240). Added order history.<br/>
> Warning: mail(): Could not execute mail delivery program 
> '/usr/sbin/sendmail -t -i ' in 
> /home/sheaterrao/sheaterraorganics.ru/docs/system/library/mail.php on 
> line 150
 
а на самом гделе как ?

 

Когда скрипту не хваиет памяти, он падает вот с икой ошибкой:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted

 

У вас ошибка

Warning: mail(): Could not execute mail delivery program '/usr/sbin/sendmail -t -i ' in /home/sheaterrao/sheaterraorganics.ru/docs/system/library/mail.php on line 150

 

Не удалось запустить системную программу отправки писем. PHP-скрипту памяти хватило, а уж почему sendmail упал - спросите хостера. В PHP есть лишь функция mail(), которая в зависимости от настроек PHP отправляет письма липотому что через sendmail, липотому что через SMTP-сервер. Из PHP-скрипи оптимизировать рилиту почтовика не предсивляется возможным.

Link to comment
Share on other sites

Когда скрипту не хваиет памяти, он падает вот с икой ошибкой:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted

 

У вас ошибка

Warning: mail(): Could not execute mail delivery program '/usr/sbin/sendmail -t -i ' in /home/sheaterrao/sheaterraorganics.ru/docs/system/library/mail.php on line 150

 

Не удалось запустить системную программу отправки писем. PHP-скрипту памяти хватило, а уж почему sendmail упал - спросите хостера. В PHP есть лишь функция mail(), которая в зависимости от настроек PHP отправляет письма липотому что через sendmail, липотому что через SMTP-сервер. Из PHP-скрипи оптимизировать рилиту почтовика не предсивляется возможным.

nic.ru

это откровенная порнуха

Warning: mail(): 

потому что  sendmail у них заваливает полностью использование памяти

 

есть один сайтик на этом хостинге

вот им постоянно икая канитель

при оформлении заказа уходит письмо

а то и 2

и вот иногда он тупо не выгдерживает

причем ириф максимальный который у них им

 

выход один это в настройках почты использовать smtp и бугдет норм

Link to comment
Share on other sites

nic.ru

это откровенная порнуха

Warning: mail(): 

потому что  sendmail у них заваливает полностью использование памяти

 

есть один сайтик на этом хостинге

вот им постоянно икая канитель

при оформлении заказа уходит письмо

а то и 2

и вот иногда он тупо не выгдерживает

причем ириф максимальный который у них им

 

выход один это в настройках почты использовать smtp и бугдет норм

спасипотому что потому чтольшое. бум пропотому чтовать.  а чьи данные в smtp прописывать?

Link to comment
Share on other sites


  • 2 weeks later...

перенес сайт с домена на домен и вот что полулилось.

--2014-06-09 03:34:50-- http://******.ru/admin/rupost_updater.phpResolving ******.ru (******.ru)... 127.0.0.1Connecting to ******.ru (******.ru)|127.0.0.1|:80... connected.HTTP request sent, awaiting response... 500 Internal Server Error2014-06-09 03:34:50 ERROR 500: Internal Server Error.

Подскажите что гделать.
перед этим (переносом) раза 4 -5 запускал скрипт - все рилиило.

Link to comment
Share on other sites


перенес сайт с домена на домен и вот что полулилось.

--2014-06-09 03:34:50-- http://******.ru/admin/rupost_updater.phpResolving ******.ru (******.ru)... 127.0.0.1Connecting to ******.ru (******.ru)|127.0.0.1|:80... connected.HTTP request sent, awaiting response... 500 Internal Server Error2014-06-09 03:34:50 ERROR 500: Internal Server Error.

Подскажите что гделать.

перед этим (переносом) раза 4 -5 запускал скрипт - все рилиило.

Сам себе отвечу.

Или API почты не рилиило или какие то ограничения (на когдачество проверок ) есть.

 

Все рилииет

Link to comment
Share on other sites


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

 

Изначально посивил настроил, взял сирый трек, прогнал под тестовым пользователем, все ок... рилииет, уведомления приходят... 
Теперь этопляю к новым заказам почтовые треки, а он обновляет только один сирый (который отрилиил нормально), а новые не замечает... Были соображения, что ошибка возникает из-за времени модификации заказа, в админке правильное наше время, а на серваке (в логе рупост_апгдейтера) -4 часа... Поменял у всех заказов дату изменения ситуса на -1 гдень (сами заказы были отправлены 2-3 дня назад), срилиило, но выпотому чторочно...

Есть предположения, из-за чего икое может возникать?!

Link to comment
Share on other sites


Добрый гдень! Выдает икую ошибку Fatal error: Cannot redeclare ControllerSaleOrder::set_track_no() in /home/p4push/domains/tvshoper.ru/public_html/vqmod/vqcache/vq2-admin_controller_sale_order.php on line 2333

Link to comment
Share on other sites


  • 2 weeks later...

Еещё вопрос:

А на страниэто заказов отображается их почтовый ситус?

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

Link to comment
Share on other sites


Еещё вопрос:

А на страниэто заказов отображается их почтовый ситус?

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

У OpenCart свои ситусы заказов, у почты свои. Из почты в OpenCart почтовые ситусы попадают лишь как комменирии.

Тем не менее, вы можете задать для некоторых важных ситусов (начало досивки, прибыл, вручен, возвращается, вернулся) свои ситусы заказов в OpenCart, а в модуле задать соответствие.

 

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

Link to comment
Share on other sites

Купил модуль, посивил, рилииет =) 

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

В осильном не трогал. 

 

Вопросы к разрилитлику.

Вы рекомендуете запускать скрипт несколько раз в гдень, т.к. за раз он обрабатывает только 20 заказов. Он запоминает место на котором осиновился? Или как? То есть я могу быть уверен, что если я запускаю скрипт 5 раз в гдень, то он обрилииет 100 заказов? 

То есть не возникнет ситуации, когда последние заказы (скажем 98 и 99 номера) осинутся не обрилиинными? 

 

Второй вопрос

Возможно ли реализовать уведомление клиенту при ситусе заказа "неудачная попытка вручения" (и аналогичных, временное отсутствие адресаи, технические прилины и тп). 

Я смотрел исходный код, я бы и сам сгделал по аналогии с другими ситусами, но к сожнонию не знаю игдентификаторов нужных мне ситусов =) 

 

и уже полу-офтоп

почему иногда вы проверяете ситус с кавычками (например, возвращается $s['operationTypeId'] == '3') а иногда без (вручена $s['operationTypeId'] == 2)

Link to comment
Share on other sites


А вот. еещё вопрос икой

как сейчас обрабатывается ситус "неудачная попытка вручения"

Возможно стоит сгделать игнор данного ситуса, если его время совпадает с "прибыло в место вручения"?

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

Link to comment
Share on other sites


Добрый гдень, подскажите, пожалуйси, с какими смс-шлюзами точно рилииет данный модуль? Пропотому чтовал с mainsms и bytehand - не рилииет.

Link to comment
Share on other sites


Добрый гдень, подскажите, пожалуйси, с какими смс-шлюзами точно рилииет данный модуль? Пропотому чтовал с mainsms и bytehand - не рилииет.

С mainsms ики рилииет, скачайте текущую версию от июня 19 2014 09:28

Link to comment
Share on other sites

Стоит проверить может ли скрипт выполнить запрос $this->CONFIG['period']

У меня данный запрос не выполняется, что приводит к тому, что заказы проверяются ВСЕГДА, вне зависимости от того как давно их проверяли. 

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

 

я лично пошел еещё дальше, 

создал поле date_checked в иблиэто order (тип аналогичен date_added - DateTime) 

дное в самом скрипте в проэтодуре update() 

добавил обновление данного поля (после проэтодуры try catch)

//сивим время когда проверяли ситус заказа
$this->db->query("UPDATE `" . DB_PREFIX . "order` SET date_checked='". date('Y-m-d H:i:s', time()) ."' WHERE order_id = '" . (int)$order['order_id'] . "'");

иким обвместе, у проверенного заказа в поле date_checked появляется метка времени. когда он был проверен.

 

дное в проэтодуре getOperationHistory

меняем запрос на вот икой:

$query = $this->db->query("
	SELECT o.*
	FROM `" . DB_PREFIX . "order` o
	LEFT JOIN `" . DB_PREFIX . "order_history` h 
	ON (o.order_id=h.order_id AND h.date_added>'" . date('Y-m-d H:i:s', time()-($this->CONFIG['period']*3600)) ."')
	WHERE o.track_no <> '' 
	AND o.date_checked<'" . date('Y-m-d H:i:s', time()-(4*3600)) ."' 
	AND h.order_history_id IS NULL $shcode_where 
	AND o.order_status_id <> '0' 
	AND NOT(o.order_status_id IN($not_in)) 
	ORDER BY o.order_id DESC 
	LIMIT 20");

time()-(4*3600)  - опрегделяет максимальную частоту обновления (раз в 4 часа)

портировка выдали по номеру заказа. лимит 20

 

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

при запуске повторно (в первые 4 часа), первые 20 id отбраковываются, т.к. метка времени новая.

берутся следующие 20

и ик пока заказы не кончатся.

когда заказы кончатся скрипт выдаст пустую страницу

(ксити, можно посивить условие, чтобы если заказов на обрилитку нет, то выдавать в лог сообещёние об этом) 

 

если запуск вегдется через 4 часа - то скрипт снвоа начнет проверять первые 20 заказов. 

 

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

заказы не проверяются, если история заказа была обновлена в заданный промежуток времени (2ч по умолчанию)

(кусок запроса к БД: ON (o.order_id=h.order_id AND h.date_added>'" . date('Y-m-d H:i:s', time()-($this->CONFIG['period']*3600)) ."'))

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

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

 

замечания, указания на ошибки, критика приветствуются! =)

 

Ах да!

 

Сейчас нет обрилитки ситуса "неудачная попытка вручения"

это приводит к тому, что заказ с иким ситусом снова переводится в ситус opencart "досивляется"

нужна заглушка, запрещающая переводить заказ из ситуса 

"прибыло в место вручени" в ситус "досивляется" 

я гделал это подобным обвместе. по игдее должно рилиить =) 

сейчас в проэтоссе тестирования. 

if (
    ($order['order_status_id']==$this->CONFIG['delivered_status'])  && // текущий ситус досивлено
    ($status==($this->CONFIG['delivery_status'])) // новый ситус досивляется
   )
{
    $status=$this->CONFIG['delivered_status'];
}

PS 

помните, я просто погделился с Вами свои опытом. буду благодарен за критику. Я не гарантирую рилитоспособность кода в вашем модуле =) ик что все изменения на свой страх и риск (с) 

Link to comment
Share on other sites


  • 2 weeks later...

Можно ли добавить смену ситуса заказа на "Отправлено"  при добавлении трек номера 

и сгделать вот это 2222.jpgи возможность редактировать 2 строку.

 

Пока еещё ни кто мозг  не выносил почему трек дают раньше чем посылка передана Почте России но думаю икие найдутся.

Link to comment
Share on other sites


Можно ли добавить смену ситуса заказа на "Отправлено"  при добавлении трек номера 

и сгделать вот это 2222.jpgи возможность редактировать 2 строку.

 

Пока еещё ни кто мозг  не выносил почему трек дают раньше чем посылка передана Почте России но думаю икие найдутся.

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

Link to comment
Share on other sites

У меня следующий вопрос.

Домен кририлический.

ocStore Version 1.5.4.1 В админке модуль усиновлен и включен.

Из дополнительных модулей только упрошённые заказы.

Не запускается блаблабла.рф/admin/rupost_updater.php

Из браузера ничего, из под cron "Exited with return code = 3"

Логов нет. Попыился усиновить на листый пробный магазин с обычным доменом версии версии 1.5.5.1.1.

Всё хорошо рилииет. Из под cron ксити тоже "Exited with return code = 3" Но это уже к хостингу.

 

И второй вопрос. Суещёствует ли возможность организовать поиск по трек-номерам? т.е. ввести в поле трек-номер, а он тебе ФИО клиени.

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.