/** * @param \Ess\M2ePro\Model\Order $order * @param \Magento\Sales\Model\Order\Shipment $shipment * @return int */ public function handle(\Ess\M2ePro\Model\Order $order, \Magento\Sales\Model\Order\Shipment $shipment) { if (!$order->isComponentModeAmazon()) { throw new \InvalidArgumentException('Invalid component mode.'); } $trackingDetails = $this->getTrackingDetails($shipment); if (!$order->getChildObject()->canUpdateShippingStatus($trackingDetails)) { return self::HANDLE_RESULT_SKIPPED; } $items = $this->getItemsToShip($order, $shipment); $trackingDetails['fulfillment_date'] = $shipment->getCreatedAt(); $order->getChildObject()->updateShippingStatus($trackingDetails, $items); return self::HANDLE_RESULT_SUCCEEDED; }