Пишу платежный модуль и нужно обойти SuccessValidator. Для этого использую метод https://gielberkers.com/style-checkoutonepagesuccess-page-magento-2/ Всё вроде нормально, но вот незадача, если заказов нет, то код
$order = $this->orderCollectionFactory->create()
->setPageSize(1)
->setOrder('entity_id', 'DESC')
//->addFieldToFilter('status', ['eq' => 'complete'])
->getFirstItem();точнее проверка $order->getId() дает пустое значение, т.к. естественно предыдущих заказов еще нет. Тогда как мне найти номер заказа?
Публичный номера заказов это Increment, так же как и инвойса. Id это идентификатор в базе. После сохранения заказа получить его параметры можно так
$last_order_increment_id = Mage::getModel("sales/order")->getCollection()->getLastItem()->getIncrementId();
$last_order = Mage::getModel("sales/order")->getCollection()->getLastItem();
Да и пока заказа нет, у вас есть только Id для Quote.
Да, забыла написать, что Magento 2. Так что это здесь не прокатит.
Вот здесь есть ответ http://magento.stackexchange.com/questions/102561/magento-2-fetch-checkout-session-on-new-route-page... но я не пойму что значит making cacheable to false in layout xml file
Мой шаблон
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<title>Success Page</title>
</head>
<body>
<referenceContainer name="content">
<block class="WalletOne\Payment\Block\Form\CheckoutResult" name="checkout.success" template="form/result_chekout.phtml" cacheable="false"/>
<block class="Magento\Checkout\Block\Registration" name="checkout.registration" template="registration.phtml" cacheable="false"/>
</referenceContainer>
<referenceContainer name="order.success.additional.info">
<block class="WalletOne\Payment\Block\Form\CheckoutResult" name="onepage.success.result_chekout"/>
</referenceContainer>
</body>
</page>Куда здесь можно вставить cacheable?