public function Shipment::populateFromProposedShipment in Commerce Shipping 8.2
Populates the shipment from the given proposed shipment.
Parameters
\Drupal\commerce_shipping\ProposedShipment $proposed_shipment: The proposed shipment.
Overrides ShipmentInterface::populateFromProposedShipment
File
- src/
Entity/ Shipment.php, line 103
Class
- Shipment
- Defines the shipment entity class.
Namespace
Drupal\commerce_shipping\EntityCode
public function populateFromProposedShipment(ProposedShipment $proposed_shipment) {
if ($proposed_shipment
->getType() != $this
->bundle()) {
throw new \InvalidArgumentException(sprintf('The proposed shipment type "%s" does not match the shipment type "%s".', $proposed_shipment
->getType(), $this
->bundle()));
}
$this
->set('order_id', $proposed_shipment
->getOrderId());
$this
->set('title', $proposed_shipment
->getTitle());
$this
->set('items', $proposed_shipment
->getItems());
$this
->set('shipping_profile', $proposed_shipment
->getShippingProfile());
$this
->set('package_type', $proposed_shipment
->getPackageTypeId());
foreach ($proposed_shipment
->getCustomFields() as $field_name => $value) {
if ($this
->hasField($field_name)) {
$this
->set($field_name, $value);
}
else {
$this
->setData($field_name, $value);
}
}
$this
->prepareFields();
}