create(OrderAddress::class, ['data' => $addressData]); $billingAddress->setAddressType('billing'); $shippingAddress = clone $billingAddress; $shippingAddress->setId(null)->setAddressType('shipping'); /** @var Payment $payment */ $payment = $objectManager->create(Payment::class); $payment->setMethod('checkmo') ->setAdditionalInformation('last_trans_id', '11122') ->setAdditionalInformation( 'metadata', [ 'type' => 'free', 'fraudulent' => false, ] ); /** @var OrderItem $orderItem */ $orderItem = $objectManager->create(OrderItem::class); $orderItem->setProductId($product->getId()) ->setQtyOrdered(2) ->setBasePrice($product->getPrice()) ->setPrice($product->getPrice()) ->setRowTotal($product->getPrice()) ->setProductType('simple') ->setName($product->getName()); /** @var Order $order */ $order = $objectManager->create(Order::class); $order->setIncrementId('100000001') ->setState(Order::STATE_PROCESSING) ->setStatus($order->getConfig()->getStateDefaultStatus(Order::STATE_PROCESSING)) ->setSubtotal(100) ->setGrandTotal(100) ->setBaseSubtotal(100) ->setBaseGrandTotal(100) ->setCustomerIsGuest(true) ->setCustomerEmail('customer@null.com') ->setBillingAddress($billingAddress) ->setShippingAddress($shippingAddress) ->setStoreId($objectManager->get(StoreManagerInterface::class)->getStore()->getId()) ->addItem($orderItem) ->setPayment($payment); /** @var OrderRepositoryInterface $orderRepository */ $orderRepository = $objectManager->create(OrderRepositoryInterface::class); $orderRepository->save($order);