Разрешите, Тоже спрошу про статусы заказов.
У меня способ оплаты - банковская карта, процессор Yandex.Money, категория оплаты - Кредитная карта
Как сделать чтоб при успешной оплате приходило об этом оповещение на емейл?
Сейчас молча в заказе меняется поле "ID счета фактуры" и всё.
При этом после оплаты статус заказа становится "обработан", хотя в настройках метода такого нет.
http://joxi.ru/eAOLwnzhxjQ6Er
Вопрос:
Вам надо чтобы это распространялось только на оплату "Банковские карты" в Яндекс деньгах?
Если разбираетесь в коде, то советую посмотреть кусок кода
app/addons/rus_payments/payments/yandex_money.php в котором вам надо:
- выяснить каким либо способом, какие данные вам пришли от сервера
if ($mode == 'ok') {
if (fn_check_payment_script('yandex_money.php', $order_id)) {
$times = 0;
while ($times <= YM_MAX_AWAITING_TIME) {
$_order_id = db_get_field("SELECT order_id FROM ?:order_data WHERE order_id = ?i AND type = 'S'", $order_id);
if (empty($_order_id)) {
break;
}
sleep(1);
$times++;
}
$order_status = db_get_field("SELECT status FROM ?:orders WHERE order_id = ?i", $order_id);
if ($order_status == STATUS_INCOMPLETED_ORDER) {
fn_change_order_status($order_id, 'O');
}
fn_order_placement_routines('route', $order_id, false);
}
Тут надо понять что конкретно передаёт в $_REQUEST сервер ЯД.
И если в этом запрос в cscart от ЯД присутствуют данные, содержащие код способа оплаты, то вам повезло :)
Вам надо сделать проверку на эти данные и "присобачить" свою функцию оповещения перед кодом:
if ($order_status == STATUS_INCOMPLETED_ORDER) {
fn_change_order_status($order_id, 'O');
}