orderValidator = $orderValidator; $this->shipmentValidator = $shipmentValidator; $this->validatorResultMerger = $validatorResultMerger; } /** * @param OrderInterface $order * @param ShipmentInterface $shipment * @param array $items * @param bool $notify * @param bool $appendComment * @param \Magento\Sales\Api\Data\ShipmentCommentCreationInterface|null $comment * @param array $tracks * @param array $packages * @param \Magento\Sales\Api\Data\ShipmentCreationArgumentsInterface|null $arguments * @return \Magento\Sales\Model\ValidatorResultInterface */ public function validate( $order, $shipment, array $items = [], $notify = false, $appendComment = false, \Magento\Sales\Api\Data\ShipmentCommentCreationInterface $comment = null, array $tracks = [], array $packages = [], \Magento\Sales\Api\Data\ShipmentCreationArgumentsInterface $arguments = null ) { $orderValidationResult = $this->orderValidator->validate( $order, [ CanShip::class ] ); $shipmentValidationResult = $this->shipmentValidator->validate( $shipment, [ QuantityValidator::class, TrackValidator::class ] ); return $this->validatorResultMerger->merge($orderValidationResult, $shipmentValidationResult); } }