Смысл задачи такой: Покупатель делает заказ в интернет-магазине и оплатить пока не может, заказ уходит менеджеру. Менеджер этот заказ одобрит, после чего у покупателя появляется кнопка оплатить заказ.
Для этого решение было использовано такое, файл в одностраничном шаге заказа confirm.php поставили код:
где N стоит статус заказа уходит на проверку, а A это статус заказа прошедший проверку.
И эта кнопка в итоге появляется на странице после заказа например: нашсайт/personal/order/make/?ORDER_ID=339 , где 339 это номер заказа
но ведь проблема в том, что покупатель может закрыть эту страницу и потом просто не вернуться на нее.
Вопрос: как можно сделать так, чтобы зайдя в личный кабинет у него была возможность увидеть эту кнопку "Оплатить" напротив заказа?
Для этого решение было использовано такое, файл в одностраничном шаге заказа confirm.php поставили код:
Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? if (!empty($arResult["ORDER"])) { ?> // заказ существует идем дальше <? if ($arResult["ORDER"]["STATUS_ID"]=="N") { ?> // сообщаем пользователю о том что его заказ сформирован <? } elseif (!empty($arResult["PAY_SYSTEM"]) && $arResult["ORDER"]["STATUS_ID"]=="A") { ?> // предлагаем оплатить заказ (Я взял эту часть из стандартного шаблона) <div class="content pay"> <a href="<?=$arParams["PATH_TO_PAYMENT"]."?ORDER_ID=".urlencode(urlencode($arResult["ORDER"]["ACCOUNT_NUMBER"]));?>" target="_blank" class="paysystem"> <?=CFile::ShowImage($arResult["PAY_SYSTEM"]["LOGOTIP"], 100, 100, "border=0", "", false);?> <span><?= $arResult["PAY_SYSTEM"]["NAME"] ?></span> </a> <div class="info"> <? if (strlen($arResult["PAY_SYSTEM"]["ACTION_FILE"]) > 0) { ?> <? if ($arResult["PAY_SYSTEM"]["NEW_WINDOW"] == "Y") { ?> <sc ript language="JavaScript"> window.open('<?=$arParams["PATH_TO_PAYMENT"]?>?ORDER_ID=<?=urlencode(urlencode($arResult["ORDER"]["ACCOUNT_NUMBER"]))?>'); </sc ript> <?= GetMessage("SOA_TEMPL_PAY_LINK", Array("#LINK#" => $arParams["PATH_TO_PAYMENT"]."?ORDER_ID=".urlencode(urlencode($arResult["ORDER"]["ACCOUNT_NUMBER"]))))?> <? if (CSalePdf::isPdfAvailable()) { ?> <br /> <?= GetMessage("SOA_TEMPL_PAY_PDF", Array("#LINK#" => $arParams["PATH_TO_PAYMENT"]."?ORDER_ID=".urlencode(urlencode($arResult["ORDER"]["ACCOUNT_NUMBER"]))."&pdf=1&DOWNLOAD=Y")) ?> <? } ?> <? } else { ?> <? if (strlen($arResult["PAY_SYSTEM"]["PATH_TO_ACTION"])>0) { include($arResult["PAY_SYSTEM"]["PATH_TO_ACTION"]); } ?> <? } ?> <? } ?> </div> </div> <? } else { ?> // на тот случай если по той или иной причине не выбрана платежная система (ну мало ли:)) <? } ?> <? } else { ?> // Сообщаем что такого заказа не существует <? } ?> |
где N стоит статус заказа уходит на проверку, а A это статус заказа прошедший проверку.
И эта кнопка в итоге появляется на странице после заказа например: нашсайт/personal/order/make/?ORDER_ID=339 , где 339 это номер заказа
но ведь проблема в том, что покупатель может закрыть эту страницу и потом просто не вернуться на нее.
Вопрос: как можно сделать так, чтобы зайдя в личный кабинет у него была возможность увидеть эту кнопку "Оплатить" напротив заказа?