You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Модуль версии 1.6.0
С 27 июля при переходе заказа в статус, указанный в настройке "Формировать второй чек при переходе заказа в статус", второй чек стал пробиваться 12 раз.
Происходит следующее:
Метод hookOrderStatusChange перехватывает нужный статус и отправляет второй чек
Делается запрос чеков по оплате и извлекается последний чек в массиве
Перебор товаров из полученного последнего чека ищет товары со значением "payment_mode": "full_prepayment"
Если такие товары в последнем чеке присутствуют, то формируется второй чек
После успешной отправки второго чека метод hookOrderStatusChange вызывает изменение статуса со своим комментарием (Отправлен второй чек. Сумма %s рублей.)
Изменение статуса в пункте 5 вызывает повторный цикл начиная с пункта 1
Проблема в том, что последний чек, получаемый в пункте 2 - это самый первый чек, отправленный при оплате и у него всегда товары с атрибутом "payment_mode": "full_prepayment".
Весь цикл крутиться до тех пор, пока последний чек в листинге (который ограничен 10 чеками) не станет одним из первых отправленных вторых чеков. Т.к. обновление листинга чеков происходит с небольшой задержкой, то успевают пробиться 11-13 чеков.
Ввиду того, что я у себя не вносил каких-то глобальных изменений в код движка, полагаю, что проблема в модуле. Возможно в методе catalog/model/extension/payment/yandex_money/Model/KassaSecondReceiptModel.phpgetLastReceipt имеет смысл заменить return array_pop($receipts); на return array_shift($receipts); Хотя это может не иметь смысла, судя по логам, запрос списка чеков на второй и третей итерации возвращает только первоначальный чек, вторые отправленные чеки туда не успевают попасть.
The text was updated successfully, but these errors were encountered:
Благодарю за обращение, проблема появилась из-за изменений на стороне Яндекс.Кассы. Мы уже подготавливаем исправление для этой проблеме. В ближайшие несколько рабочих дней должно выйти обновление.
До момента обновления модуля временно отключите отправку вторых чеков.
К сожалению, исправление в версии 1.6.1 не совсем решает проблему, как я писал выше, второй чек появляется в листинге чеков с некоторой задержкой, сегодня, после установки обновления, у меня успело отправиться три лишних чека.
Модуль версии 1.6.0
С 27 июля при переходе заказа в статус, указанный в настройке "Формировать второй чек при переходе заказа в статус", второй чек стал пробиваться 12 раз.
Происходит следующее:
Проблема в том, что последний чек, получаемый в пункте 2 - это самый первый чек, отправленный при оплате и у него всегда товары с атрибутом "payment_mode": "full_prepayment".
Весь цикл крутиться до тех пор, пока последний чек в листинге (который ограничен 10 чеками) не станет одним из первых отправленных вторых чеков. Т.к. обновление листинга чеков происходит с небольшой задержкой, то успевают пробиться 11-13 чеков.
Ввиду того, что я у себя не вносил каких-то глобальных изменений в код движка, полагаю, что проблема в модуле. Возможно в методе catalog/model/extension/payment/yandex_money/Model/KassaSecondReceiptModel.php getLastReceipt имеет смысл заменить return array_pop($receipts); на return array_shift($receipts); Хотя это может не иметь смысла, судя по логам, запрос списка чеков на второй и третей итерации возвращает только первоначальный чек, вторые отправленные чеки туда не успевают попасть.
The text was updated successfully, but these errors were encountered: