Тоже столкнулся с проблемой что не меняется статус заказа после оплаты, причем некоторые заказы меняются а некоторые нет, закономерности не вижу пока, вариант с правами на файл order.txt я конечно попробую как тут выше писали НО записи в данном файле по всем заказам присутствуют как для тех где смена статуса прошла так и для тех где нет
Вопрос со статусом очень актуален т.к. происходит продажа файлов и пока статус не смениться ссылка на скачивание не работает, приходится вручную менять статус а это не очень удобно и для клиента не оперативно
В админке Робокассы статус заказа - оплачен, ответ на сайт отправляется как ОК*номер заказа*, в логах хостинга запрос от робокассы приходит
НО заметил что на тех заказах где не произошла смена статуса заказа клиент не побывал на странице finish возможно ли это по причине того что после оплаты на сайте робокассы клиент не дождался перенаправления с робокассы на сайт магазина?
Сталкивался ли еще кто-от с такой проблемой/особенностью, может ли кто-то подтвердить мои выводы?
Если вопрос именно в том что клиент не дождался после успешной оплаты перенаправления на страницу finish магазина можно ли избежать данной проблемы?
Использую Joomla 2.5.19 и JoomShopping 3.5.1
Это особенность JoomShopping пока не произведёшь возврат с платёжной системы "Вернуться в магазин" на сайт, то корзина остаётся полной.
Вот решение этого вопроса:
Открываем файл: /components/com_jshopping/lib/factory.php
Ищем: return $config; (у меня это 144 строка)
И над return $config; вставляем:
//чистим корзину если заказ закрыт
$session = JFactory::getSession();
$order_id = $session->get('jshop_end_order_id');
if ($order_id){
$db = JFactory::getDBO();
$query = "SELECT * FROM shop_jshopping_orders where order_id={$order_id}";
$res = $db->setQuery($query);
$ord = $db->loadObjectList();
$ord = $ord[0];
if ($ord->order_status == 6 && $ord->payment_method_id == 14){//id статуса, обычно статус оплаты! Замените на код вашего, если не совпадает! а также id метода оплаты, тоже измените на ваш!
$session = JFactory::getSession();
$session->set('check_params', null);
$session->set('cart', null);
$session->set('jhop_max_step', null);
$session->set('jshop_price_shipping_tax_percent', null);
$session->set('jshop_price_shipping', null);
$session->set('jshop_price_shipping_tax', null);
$session->set('pm_params', null);
$session->set('payment_method_id', null);
$session->set('jshop_payment_price', null);
$session->set('shipping_method_id', null);
$session->set('sh_pr_method_id', null);
$session->set('jshop_price_shipping_tax_percent', null);
$session->set('jshop_end_order_id', null);
$session->set('jshop_send_end_form', null);
$session->set('show_pay_without_reg', 0);
}
}
//
В итоге даже если после оплаты покупатель закроет страницу платёжной системы (без возврата на сайт магазина), то в магазине всё равно корзина очиститься!
Источник:
http://chinayanlun.com/veb-programmirovanie/joomshopping-i-ochistka-korziny-pri-oplate/