AutoFulfillProcessor.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Webservice\Processor\OrderOperation;
  6. use Magento\Framework\Exception\LocalizedException;
  7. use Magento\Sales\Api\Data\OrderInterface as SalesOrderInterface;
  8. use Temando\Shipping\Model\Order\AutoProcessing\AutoFulfillInterface;
  9. use Temando\Shipping\Model\OrderInterface;
  10. use Temando\Shipping\Webservice\Response\Type\OrderResponseType;
  11. /**
  12. * Temando Auto Fulfillment Processor.
  13. *
  14. * Create shipments on order placement.
  15. *
  16. * @package Temando\Shipping\Webservice
  17. * @author Christoph Aßmann <christoph.assmann@netresearch.de>
  18. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  19. * @link http://www.temando.com/
  20. */
  21. class AutoFulfillProcessor implements SaveProcessorInterface
  22. {
  23. /**
  24. * @var AutoFulfillInterface
  25. */
  26. private $autoFulfill;
  27. /**
  28. * AutoFulfillProcessor constructor.
  29. * @param AutoFulfillInterface $autoFulfill
  30. */
  31. public function __construct(AutoFulfillInterface $autoFulfill)
  32. {
  33. $this->autoFulfill = $autoFulfill;
  34. }
  35. /**
  36. * @param SalesOrderInterface $salesOrder
  37. * @param OrderInterface $requestType
  38. * @param OrderResponseType $responseType
  39. * @return void
  40. * @throws LocalizedException
  41. */
  42. public function postProcess(
  43. SalesOrderInterface $salesOrder,
  44. OrderInterface $requestType,
  45. OrderResponseType $responseType
  46. ) {
  47. // create shipments for created order
  48. $this->autoFulfill->createShipments($salesOrder, $responseType);
  49. }
  50. }