Exemplo n.º 1
0
 /**
  * @param OrderInterface $order
  *
  * @throws UnresolvedDefaultShippingMethodException
  * @return ShipmentInterface
  */
 private function getOrderShipment(OrderInterface $order)
 {
     if ($order->getShipment()) {
         return $order->getShipment();
     }
     /** @var ShipmentInterface $shipment */
     $shipment = $this->shipmentFactory->createNew();
     $order->setShipment($shipment);
     $shipment->setMethod($this->defaultShippingMethodResolver->getDefaultShippingMethod($shipment));
     return $shipment;
 }
Exemplo n.º 2
0
 function it_creates_a_single_shipment_with_default_shipping_method_and_assigns_all_units_to_it(DefaultShippingMethodResolverInterface $defaultShippingMethodResolver, FactoryInterface $shipmentFactory, OrderInterface $order, OrderItemUnitInterface $itemUnit1, OrderItemUnitInterface $itemUnit2, ShipmentInterface $shipment, ShippingMethodInterface $defaultShippingMethod)
 {
     $defaultShippingMethodResolver->getDefaultShippingMethod($shipment)->willReturn($defaultShippingMethod);
     $shipmentFactory->createNew()->willReturn($shipment);
     $order->hasShipments()->willReturn(false);
     $order->getItemUnits()->willReturn([$itemUnit1, $itemUnit2]);
     $shipment->setMethod($defaultShippingMethod)->shouldBeCalled();
     $shipment->addUnit($itemUnit1)->shouldBeCalled();
     $shipment->addUnit($itemUnit2)->shouldBeCalled();
     $order->addShipment($shipment)->shouldBeCalled();
     $this->processOrderShipment($order);
 }
Exemplo n.º 3
0
 /**
  * @param OrderInterface $order
  *
  * @return ShipmentInterface
  */
 private function getOrderShipment(OrderInterface $order)
 {
     if ($order->hasShipments()) {
         return $order->getShipments()->first();
     }
     try {
         /** @var ShipmentInterface $shipment */
         $shipment = $this->shipmentFactory->createNew();
         $shipment->setOrder($order);
         $shipment->setMethod($this->defaultShippingMethodResolver->getDefaultShippingMethod($shipment));
         $order->addShipment($shipment);
         return $shipment;
     } catch (UnresolvedDefaultShippingMethodException $exception) {
         return null;
     }
 }