GuestCartPickupLocationManagement.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Model\Delivery;
  6. use Magento\Framework\Exception\CouldNotSaveException;
  7. use Magento\Framework\Exception\NoSuchEntityException;
  8. use Magento\Quote\Model\GuestCart\GuestShippingAddressManagementInterface;
  9. use Temando\Shipping\Api\Data\Delivery\QuotePickupLocationInterface;
  10. use Temando\Shipping\Api\Delivery\GuestCartPickupLocationManagementInterface;
  11. use Temando\Shipping\Api\Checkout\GuestCartPickupLocationManagementInterface as CheckoutGuestCartPickupLocationManagement;
  12. /**
  13. * Manage Pickup Location Searches
  14. *
  15. * @deprecated since 1.5.1
  16. * @see \Temando\Shipping\Model\Checkout\Delivery\GuestCartPickupLocationManagement
  17. *
  18. * @package Temando\Shipping\Model
  19. * @author Sebastian Ertner <sebastian.ertner@netresearch.de>
  20. * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  21. * @link https://www.temando.com/
  22. */
  23. class GuestCartPickupLocationManagement implements GuestCartPickupLocationManagementInterface
  24. {
  25. /**
  26. * @var CheckoutGuestCartPickupLocationManagement
  27. */
  28. private $guestCartPickupLocationManagement;
  29. /**
  30. * @var GuestShippingAddressManagementInterface
  31. */
  32. private $addressManagement;
  33. /**
  34. * @var PickupLocationManagement
  35. */
  36. private $pickupLocationManagement;
  37. /**
  38. * GuestCartPickupLocationManagement constructor.
  39. *
  40. * @param CheckoutGuestCartPickupLocationManagement $guestCartPickupLocationManagement
  41. * @param GuestShippingAddressManagementInterface $addressManagement
  42. * @param PickupLocationManagement $pickupLocationManagement
  43. */
  44. public function __construct(
  45. CheckoutGuestCartPickupLocationManagement $guestCartPickupLocationManagement,
  46. GuestShippingAddressManagementInterface $addressManagement,
  47. PickupLocationManagement $pickupLocationManagement
  48. ) {
  49. $this->guestCartPickupLocationManagement = $guestCartPickupLocationManagement;
  50. $this->addressManagement = $addressManagement;
  51. $this->pickupLocationManagement = $pickupLocationManagement;
  52. }
  53. /**
  54. * @param string $cartId
  55. * @return QuotePickupLocationInterface[]
  56. * @throws NoSuchEntityException
  57. */
  58. public function getPickupLocations($cartId)
  59. {
  60. return $this->guestCartPickupLocationManagement->getPickupLocations($cartId);
  61. }
  62. /**
  63. * @param string $cartId
  64. * @param int $entityId
  65. * @return bool
  66. * @throws NoSuchEntityException
  67. * @throws CouldNotSaveException
  68. */
  69. public function selectPickupLocation($cartId, $entityId)
  70. {
  71. $shippingAddress = $this->addressManagement->get($cartId);
  72. return $this->pickupLocationManagement->selectPickupLocation($shippingAddress->getId(), $entityId);
  73. }
  74. }