/** * @param OrderInterface $order * @param string $shipmentState * * @return int */ private function countOrderShipmentsInState(OrderInterface $order, $shipmentState) { $shipments = $order->getShipments(); return $shipments->filter(function (ShipmentInterface $shipment) use($shipmentState) { return $shipment->getState() === $shipmentState; })->count(); }
/** * @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; } }