Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ShipOrder.php
Go to the documentation of this file.
1 <?php
7 
15 
19 class ShipOrder implements ShipOrderInterface
20 {
24  private $orderValidator;
25 
29  private $shipmentValidator;
30 
34  private $validatorResultMerger;
35 
43  public function __construct(
44  OrderValidatorInterface $orderValidator,
45  ShipmentValidatorInterface $shipmentValidator,
46  ValidatorResultMerger $validatorResultMerger
47  ) {
48  $this->orderValidator = $orderValidator;
49  $this->shipmentValidator = $shipmentValidator;
50  $this->validatorResultMerger = $validatorResultMerger;
51  }
52 
65  public function validate(
66  $order,
67  $shipment,
68  array $items = [],
69  $notify = false,
70  $appendComment = false,
71  \Magento\Sales\Api\Data\ShipmentCommentCreationInterface $comment = null,
72  array $tracks = [],
73  array $packages = [],
75  ) {
76  $orderValidationResult = $this->orderValidator->validate(
77  $order,
78  [
79  CanShip::class
80  ]
81  );
82  $shipmentValidationResult = $this->shipmentValidator->validate(
83  $shipment,
84  [
85  QuantityValidator::class,
86  TrackValidator::class
87  ]
88  );
89 
90  return $this->validatorResultMerger->merge($orderValidationResult, $shipmentValidationResult);
91  }
92 }
$order
Definition: order.php:55
__construct(OrderValidatorInterface $orderValidator, ShipmentValidatorInterface $shipmentValidator, ValidatorResultMerger $validatorResultMerger)
Definition: ShipOrder.php:43
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)
Definition: ShipOrder.php:65
$arguments
foreach($order->getItems() as $orderItem) $shipment
$items