Magento 2: отримання даних замовлення за increment ID

Надання високоякісних послуг вимагає оптимізації багатьох процесів у вашому магазині, включно з керуванням замовленнями. З огляду на це, пошук деяких деталей замовлення може зайняти певний час, особливо якщо ваш каталог налічує сотні продуктів.

Тим не менш, Magento дозволяє спростити цей процес. Ви можете отримати дані замовлення за increment ID в Magento кількома способами, так само, як ви можете отримати поточний продукт або поточну категорію.

Отож, у цій статті ви дізнаєтеся як використовувати кожен метод.

Отримайте дані замовлення за increment ID використовуючи factory method

Factory method використовують найчастіше. Для цього, застосуйте такий код:

protected $orderFactory;

public function __construct(
    \Magento\Sales\Model\OrderFactory $orderFactory
) {
    $this->orderFactory = $orderFactory;
}

public function getOrderByIncrementId()
{
    $orderIncrementId = 10000003;
    $order = $this->orderFactory->create()->loadByIncrementId($orderIncrementId);
}

Отримайте дані замовлення за increment ID використовуючи API repository

Ось ще один можливий варіант. Отримати дані замовлення за increment ID можна також за допомогою API repository.

protected $order;
public function __construct(
    \Magento\Sales\Api\Data\OrderInterface $order
) {
   $this->order = $order;
}

public function getOrderByIncrementId()
{
    $orderIncrementId = 10000485;
    $order = $this->order->loadByIncrementId($orderIncrementId);
}

Отримайте дані замовлення за increment ID використовуючи object manager

Object Manager теж можна застосувати для того, щоб отримати дані замовлення. Незважаючи на те, що цей метод видається найпростішим, з ним можуть виникати труднощі. 

$orderIncrementId= '1000101628';
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->get(\Magento\Sales\Api\Data\OrderInterface::class)->loadByIncrementId($orderIncrementId);
print_r($order->getData());

Примітка: рекомендуємо уникати використання методу object manager, оскільки він приховує реальні залежності класу.

Що ж, який метод імпонує вам найбільше? 

Наведені вище методи отримання даних замовлення не надто складні. Дізнавшись, як отримати дані замовлення за increment ID, важливо навчитися отримувати інформацію про магазин у Magento 2.