Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Статус заказов "Пропавшие заказы"


 Share

Recommended Posts

Приветствую, форумчане!

 

Очень надеюсь на вашу помощь. Столкнулся с проблемой. Заказы приходят со статусом "Пропавшие заказы". И при этом, если "нырнуть" в заказ, то там будет отображаться статус "Завершен".

Объясню ситуацию. Ставил модуль оплаты картой PayKeeper, и он (модуль) должен был менять статус заказа после оплаты на "Оплачен", но этого не происходило. Я поковырялся в настройках движка, удалил лишние статусы. После этого все заказы приходят "Пропавшими". Я погуглил всю эту тему в интернете - у всех просто не видно такие заказы. У меня они видны, но косяк со статусом. Теперь чтобы я не менял в настройках, что касается статусов, ничего не помогает. Также пробовал выключать модули Simple, PayKeeper. Ума не приложу куда копать...

Link to comment
Share on other sites


6 минут назад, ashap сказал:

вы еще не делаете бэкапы?)

может у хостера есть

Да тут не в бэкапе дело))) Коль такая проблема возникла сейчас, она может и возникнуть потом. Соответственно, зло надо искоренить)

Link to comment
Share on other sites


7 минут назад, sano4kin сказал:

Да тут не в бэкапе дело))) Коль такая проблема возникла сейчас, она может и возникнуть потом. Соответственно, зло надо искоренить)

У вас в статусах есть статус "Пропавший заказ"?  Такого статуса нет, при фильтре по такому статусу просто выводятся заказы со статусом = 0

Link to comment
Share on other sites

20 минут назад, bogdan281989 сказал:

У вас в статусах есть статус "Пропавший заказ"?  Такого статуса нет, при фильтре по такому статусу просто выводятся заказы со статусом = 0

Скрин приложил. Посмотрите.

Да, по факту такого статуса нет. Но тем не менее он отображается.

Безымянный1.png

Link to comment
Share on other sites


21 минуту назад, ashap сказал:

смотрите id статуса в базе какой , таблица order

Сейчас висят 3 заказа. У всех ID 1

Безымянный2.png

Link to comment
Share on other sites


Только что, sano4kin сказал:

Сейчас висят 3 заказа. У всех ID 1

Безымянный2.png

ну так это нормальный статус

зайдите в локализация - статусы заказов и переменуйте там пропавшие заказы в чтото нормальное (это не пропавший заказ)

Link to comment
Share on other sites

4 минуты назад, ashap сказал:

ну так это нормальный статус

зайдите в локализация - статусы заказов и переменуйте там пропавшие заказы в чтото нормальное (это не пропавший заказ)

В том-то и дело что такого статуса нет =) "Пропавшие заказы" отображаются только в списке заказов.

Ниже видны все мои статусы.

Безымянный3.png

Link to comment
Share on other sites


Только что, ashap сказал:

а говорите дело не в бэкапе

тут точно ктото чтото наковырял)

Кроме меня некому ковырять. А я ничего криминального не делал. =)

Link to comment
Share on other sites


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

может модификаторы какие вносят правки, поотключайте их, проверяйте

Link to comment
Share on other sites

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

то точно в оплате статус сохранен которого нет или он сам посдтавляет статус id 1 никого не справшивая , которого у вас в системе уже нет, так как вы поудаляли статусы, проверьте на нормально работающем методе оплаты из коробки ОПЛАТА ПРИ ДОСТАВКЕ

Link to comment
Share on other sites

28 минут назад, ashap сказал:

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

может модификаторы какие вносят правки, поотключайте их, проверяйте

Модификаторы я уже отключал. Не в них дело.

Link to comment
Share on other sites


24 минуты назад, ashap сказал:

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

то точно в оплате статус сохранен которого нет или он сам посдтавляет статус id 1 никого не справшивая , которого у вас в системе уже нет, так как вы поудаляли статусы, проверьте на нормально работающем методе оплаты из коробки ОПЛАТА ПРИ ДОСТАВКЕ

Протестировал на "Оплата при доставке". Заказ поступил со статусом "Завершен"... Интересно...

Link to comment
Share on other sites


Разобрался в чем был прикол. Заказам присваивался статус с ID 1, а у меня не было статуса с таким ID. В итоге я прямо в БД у статусов изменил ID с 1 по возрастанию. Но всё равно все заказы приходят с одним и тем же статусом (ID 1)...

  • +1 1
Link to comment
Share on other sites


2 минуты назад, sano4kin сказал:

Разобрался в чем был прикол. Заказам присваивался статус с ID 1, а у меня не было статуса с таким ID. В итоге я прямо в БД у статусов изменил ID с 1 по возрастанию. Но всё равно все заказы приходят с одним и тем же статусом (ID 1)...

вы сообщение читали выше?

Цитата

то точно в оплате статус сохранен которого нет или он сам посдтавляет статус id 1 никого не справшивая

 

Link to comment
Share on other sites

5 часов назад, ashap сказал:

вы сообщение читали выше?

 

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

Link to comment
Share on other sites


  • 2 weeks later...

Добрый день! Присоединяюсь к автору, сейчас данная проблема появляется при выборе самовывоза, в настройке статусов заказов ничего нет, там просто можно переименовывать поля, в плагине самовывоза также нет ничего. В опциях также по идее все настроено. Ощущение, что нужно код подправить, подскажите, как исправить проблему?

 

Screenshot_1.png

Link to comment
Share on other sites


13 часов назад, Artem9223 сказал:

Добрый день! Присоединяюсь к автору, сейчас данная проблема появляется при выборе самовывоза, в настройке статусов заказов ничего нет, там просто можно переименовывать поля, в плагине самовывоза также нет ничего. В опциях также по идее все настроено. Ощущение, что нужно код подправить, подскажите, как исправить проблему?

 

Screenshot_1.png

Приветствую! У меня проблема решена. Модуль оплаты (который срабатывает самым последним при оформлении заказа) прописывал свой (заранее выставленный в настройках модуля) ID статуса в БД после оформления заказа. В моем случае это был модуль Filterit. В Вашем - возможно другой. Надо понять какой модуль, и какой ID он прописывает в БД. Первое что сделайте - в БД посмотрите какие ID у Ваших текущих статусов заказа. Если Вы удаляли и добавляли статусы, то, скорее всего, порядковая нумерация статусов нарушена. Поправьте. Также в БД посмотрите какой ID статуса прописывается в заказе. Так сможете сделать выводы.

Вообще, как я понял, статус "Пропавшие заказы" получается если модуль оплаты пишет в заказ ID несуществующего статуса. Например: есть статусы "Принят (ID 3)" и "Завершен (ID 2)". Модуль оплаты должен выставлять статус "Принят", у которого должен быть ID 1, и, соответственно, пишет в БД ID 1. Но Ваш статус "Принят" имеет ID 3, оттого движок не понимает что происходит с кидает заказы в "пропавшие".

P.S.

Таблица заказов в БД -  oc_order 

Таблица статусов в БД -   oc_order_status  

Link to comment
Share on other sites


20 часов назад, sano4kin сказал:

Приветствую! У меня проблема решена. Модуль оплаты (который срабатывает самым последним при оформлении заказа) прописывал свой (заранее выставленный в настройках модуля) ID статуса в БД после оформления заказа. В моем случае это был модуль Filterit. В Вашем - возможно другой. Надо понять какой модуль, и какой ID он прописывает в БД. Первое что сделайте - в БД посмотрите какие ID у Ваших текущих статусов заказа. Если Вы удаляли и добавляли статусы, то, скорее всего, порядковая нумерация статусов нарушена. Поправьте. Также в БД посмотрите какой ID статуса прописывается в заказе. Так сможете сделать выводы.

Вообще, как я понял, статус "Пропавшие заказы" получается если модуль оплаты пишет в заказ ID несуществующего статуса. Например: есть статусы "Принят (ID 3)" и "Завершен (ID 2)". Модуль оплаты должен выставлять статус "Принят", у которого должен быть ID 1, и, соответственно, пишет в БД ID 1. Но Ваш статус "Принят" имеет ID 3, оттого движок не понимает что происходит с кидает заказы в "пропавшие".

P.S.

Таблица заказов в БД -  oc_order 

Таблица статусов в БД -   oc_order_status  

Здравствуйте! Спасибо за наводку. Отключил в плагинах оплаты пункт от яндекс go "Оплата при доставке" и оставил форму только от тинькова и всем заказам стал устанавливаться нужный статус без потерь. Спасибо).

Link to comment
Share on other sites


  • 11 months later...

Кстати Да, если оплату не нужно принимать на сайте, то лучше использовать метод оплаты "Банковский перевод", этот метод не запускает скрипт "перехода к оплате".

В фильтре отчета "Продажи-Заказы" добавили новую опцию "потерянные заказы".
Если я не ошибаюсь то в старых версиях ОС, этой опции раньше не было, и приходилось эти так называемые "потерянные заказы" искать только в базе через запрос: "SELECT * FROM `oc_order` WHERE order_status_id = 0". Это в принципе тот же самый запрос который выполняет отчет "Продажи-Заказы" при выборе статуса "потерянные заказы" в фильтре.

Как я уже сказал, "потерянные заказы" это заказы без статуса. То есть их статус это 0.

Когда происходит подтверждение заказа клиентом (это когда клиент уже нажимает кнопку подтвердить заказ), система запускает скрипт controller/checkout/confirm.php.
Этот скрипт создаёт запись в базе на заказ клиента со статусом 0. (то-есть на данный момент у этого заказа нет статуса, но он уже содержит имя клиента, адрес, сумму, продукты итд...)

Затем запускается скрипт который отвечает за перевод денежных средств. Какой скрипт оплаты запустится системой ОС зависит от того какой тип оплаты был выбран клиентом при заказе. Эти скрипты хранятся в controller/payment/*.php. Когда скрипт получает сообщение о переводе денежных средств от системы оплаты (например PayPal или SagePay) то находит недавно созданную запись заказа в базе (без статуса) и даёт статус заказу в зависимости от полученного сообщения. Сообщение о переводе от системы оплаты может быть разное, например Отказано, Не удалось, в ожидании, Завершено, итд.

Вот так вот выглядит скрипт оплаты через PayPal.

script snip.PNG

 

Я подозреваю что периодически происходит какой-то сбой в скрипте оплаты. То есть возможно периодически он НЕ получает какое либо подтверждение от системы оплаты (даже если это метод "Оплата при доставке"), и в связи с этим не может дать статус заказу. Таким образом этот заказ остаётся без статусным (утерянным) для систему ОС. В таком случае скрипт даже не будет выдавать ошибку (но это уже зависит от того как он был написан). В принципе email клиенту тоже будет отправлен, что заказ был осуществлён.

Какую систему оплаты используют ваши клиенты? Нужно посмотреть, что скрипт делает в случае если он НЕ получает сообщение от системы оплаты.
https://forum.opencart.com/viewtopic.php?t=126001

Edited by fortoonas
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

×
×
  • 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.