Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ShippingAssignmentBuilder.php
Go to the documentation of this file.
1 <?php
7 
9 use Magento\Sales\Api\Data\ShippingAssignmentInterfaceFactory;
10 use Magento\Sales\Model\OrderFactory;
11 
17 {
21  private $orderFactory;
22 
26  private $shippingAssignmentFactory;
27 
31  private $shippingBuilderFactory;
32 
36  private $orderId = null;
37 
45  public function __construct(
46  OrderFactory $orderFactory,
47  ShippingAssignmentInterfaceFactory $shippingAssignmentFactory,
48  ShippingBuilderFactory $shippingBuilderFactory
49  ) {
50  $this->orderFactory = $orderFactory;
51  $this->shippingAssignmentFactory = $shippingAssignmentFactory;
52  $this->shippingBuilderFactory = $shippingBuilderFactory;
53  }
54 
59  public function setOrderId($orderId)
60  {
61  $this->orderId = $orderId;
62  }
63 
67  private function getOrderId()
68  {
69  return $this->orderId;
70  }
71 
75  public function create()
76  {
77  $shippingAssignments = null;
78  if ($this->getOrderId()) {
79  $order = $this->orderFactory->create()->load($this->getOrderId());
81  $shippingAssignment = $this->shippingAssignmentFactory->create();
82 
83  $shipping = $this->shippingBuilderFactory->create();
84  $shipping->setOrderId($this->getOrderId());
85  $shippingAssignment->setShipping($shipping->create());
86  $shippingAssignment->setItems($order->getItems());
87  $shippingAssignment->setStockId($order->getStockId());
88  //for now order has only one shipping assignment
89  $shippingAssignments = [$shippingAssignment];
90  }
91  return $shippingAssignments;
92  }
93 }
$order
Definition: order.php:55
__construct(OrderFactory $orderFactory, ShippingAssignmentInterfaceFactory $shippingAssignmentFactory, ShippingBuilderFactory $shippingBuilderFactory)