OrderDataInitializer.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Model\Sales;
  6. use Magento\Sales\Api\Data\OrderInterface;
  7. use Temando\Shipping\Model\OrderInterfaceBuilder;
  8. /**
  9. * Temando Order Data Initializer.
  10. *
  11. * @package Temando\Shipping\Model
  12. * @author Christoph Aßmann <christoph.assmann@netresearch.de>
  13. * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  14. * @link https://www.temando.com/
  15. */
  16. class OrderDataInitializer
  17. {
  18. /**
  19. * @var OrderInterfaceBuilder
  20. */
  21. private $orderBuilder;
  22. /**
  23. * OrderDataInitializer constructor.
  24. * @param OrderInterfaceBuilder $orderBuilder
  25. */
  26. public function __construct(OrderInterfaceBuilder $orderBuilder)
  27. {
  28. $this->orderBuilder = $orderBuilder;
  29. }
  30. /**
  31. * Create a Temando order for update purposes after the order was placed.
  32. *
  33. * The order is being built from the placed order and may include dynamic checkout fields,
  34. *
  35. * NOTE: Delivery locations will currently not be considered when updating an order.
  36. *
  37. * @param OrderInterface $order
  38. * @return \Temando\Shipping\Model\OrderInterface
  39. */
  40. public function getOrder(OrderInterface $order)
  41. {
  42. $this->orderBuilder->setOrder($order);
  43. /** @var \Temando\Shipping\Model\OrderInterface $order */
  44. $order = $this->orderBuilder->create();
  45. return $order;
  46. }
  47. }