diff --git a/Service/Mollie/GetSelectedOption.php b/Service/Mollie/GetSelectedOption.php index 2ef6b1f..111a5d2 100644 --- a/Service/Mollie/GetSelectedOption.php +++ b/Service/Mollie/GetSelectedOption.php @@ -6,6 +6,7 @@ use Magento\Catalog\Api\Data\ProductInterface; use Mollie\Subscriptions\DTO\ProductSubscriptionOption; +use Mollie\Subscriptions\DTO\ProductSubscriptionOptionFactory; class GetSelectedOption { @@ -13,15 +14,31 @@ class GetSelectedOption * @var ParseSubscriptionOptions */ private $parseSubscriptionOptions; + /** + * @var ProductSubscriptionOptionFactory + */ + private $productSubscriptionOptionFactory; public function __construct( - ParseSubscriptionOptions $parseSubscriptionOptions + ParseSubscriptionOptions $parseSubscriptionOptions, + ProductSubscriptionOptionFactory $productSubscriptionOptionFactory ) { $this->parseSubscriptionOptions = $parseSubscriptionOptions; + $this->productSubscriptionOptionFactory = $productSubscriptionOptionFactory; } public function execute(ProductInterface $product, string $optionId): ProductSubscriptionOption { + if ($optionId == 'onetimepurchase') { + return $this->productSubscriptionOptionFactory->create([ + 'identifier' => 'onetimepurchase', + 'title' => __('One Time Purchase'), + 'interval_amount' => '', + 'interval_type' => '', + 'repetition_type' => 'onetime', + ]); + } + $options = $this->parseSubscriptionOptions->execute($product); foreach ($options as $option) { if ($option->getIdentifier() === $optionId) {