cancel
Showing results for 
Search instead for 
Did you mean: 

Как узнать номер заказа если он первый Magento 2

Как узнать номер заказа если он первый Magento 2

Пишу платежный модуль и нужно обойти 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() дает пустое значение, т.к. естественно предыдущих заказов еще нет. Тогда как мне найти номер заказа?

4 REPLIES

Re: Как узнать номер заказа если он первый

Публичный номера заказов это Increment, так же как и инвойса. Id это идентификатор в базе. После сохранения заказа получить его параметры можно так

$last_order_increment_id = Mage::getModel("sales/order")->getCollection()->getLastItem()->getIncrementId();
$last_order = Mage::getModel("sales/order")->getCollection()->getLastItem();

 

Да и пока заказа нет, у вас есть только Id для Quote. 

http://smartceo.ru
Методология организации интернет-торговли, технические решения, консалтинг.

Re: Как узнать номер заказа если он первый

Re: Как узнать номер заказа если он первый

Да, забыла написать, что Magento 2. Так что это здесь не прокатит.

Re: Как узнать номер заказа если он первый 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?