mollie / magento2-subscriptions Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 2-Clause "Simplified" License
License: BSD 2-Clause "Simplified" License
Describe the bug
A paid subscription is not seen in the mollie subscriptions page in magento2. It's shipped, completed etc.
Used versions
To Reproduce
Steps to reproduce the behavior:
Expected behavior
In the mollie subscriptions page you should also see the placed order.
Actual behavior
The placed order isn't added to the list.
Screenshots
Not needed i think?
We are using Magento 2.4.5-p4 and tested the Mollie subscription integration. Its working well for phsysical products. Its simple but effective.
But... we are facing an error when things go beyond physical products. When for example selling a digital product or a downloadable (digital) product that does not require any shipping method, the extension throws an exception error;
main.CRITICAL: Error: Call to a member function setQuote() on null in /vendor/mollie/magento2-subscriptions/Service/Mollie/GetShippingCostForOrderItem.php:100
That means that the extension requires any shipping method to go ahead.
Is this already a known bug? We would be happy if this module could also handle digital products.
Thanks.
Describe the bug
No records of a purchased Virtual subscription Product.
Used versions
To Reproduce
Create a Virtual subscription Product:
Order the Virtual subscription Product:
View active subscriptions in storefront:
Expected behavior
A record showing me any information about the purchased subscription.
Actual behavior
No records.
Additional context
Calling to 'https://api.mollie.com/v2/subscriptions' also results in no records.
When the Mollie subscription system calls the webhook to place the subscriptoin order in the webshop, the order is placed correctly and visible in the Magento backend.
We have configured Mollie payment module to create the invoice after payment authorization was successfull, but when the order is created during a subscription run, no invoice is created https://github.com/mollie/magento2-subscriptions/blob/main/Controller/Api/Webhook.php#L193
So we have a payment, but we do not have an automatic invoice created. Why don't you use the same logik as in the payment module? https://github.com/mollie/magento2/blob/2d5295974b0fa684e5be2354bb6e3c9f8b62445b/Model/Client/Orders/Processors/SuccessfulPayment.php#L125-L128
Currently, when multiple subscriptions with the same duration are ordered, the subscription module creates separate subscriptions for each item and sends individual emails for each subscription. This can result in customers receiving multiple emails, leading to confusion and inconvenience.
The ideal scenario would combining the subscriptions within a single order.
An easy improvement would be to merge the reminder emails for multiple subscriptions into a single email. For example, if a customer orders three subscriptions with the same duration in one transaction, they should receive only one email containing information about all three upcoming subscriptions.
At https://github.com/mollie/magento2-subscriptions/blob/main/Controller/Api/Webhook.php#L223 the cart is submitted and an order is created in Magento.
In our installation we encountered an internal DB deadlock because of a timeout.
This gave a status 500 error as a result, which Magento logged in var/report. The Mollie backend shows this error 500 on the transaction level.
The result is a payment on Mollie side, but no order creation on Magento side.
This is not the only error that can occur when doing the webhook call.
When an error occurs the request should be retried after some time and afterwards the merchant needs to be informed. No payment should happen.
Paging should respect the PageSize selected by the customer.
Currently only one page is shown with a maximum of 250 Items and paging is not possible.
This is related to #59
Caching the customer api response is not a good idea.
The above mentioned line will ensure, that the first customer fetched by the api will receive all reminder emails of all other customers on the same date.
I don't think that this is what you want.
Currently, the reminder email is sent after the payment is due. It should be sent before.
$prepaymentDate = (new \DateTimeImmutable())->add($interval);
https://github.com/mollie/magento2-subscriptions/blob/main/Cron/SendPrePaymentReminderEmailCron.php#L85
Additionally, the filters for the criteria were incorrect. Currently, you receive every subscription and not just the next one due.
$criteria->addFilter('last_reminder_date', $today, 'neq');
https://github.com/mollie/magento2-subscriptions/blob/main/Cron/SendPrePaymentReminderEmailCron.php#L90-L106
https://github.com/mollie/magento2-subscriptions/blob/main/Model/MollieSubscriptionsListing.php#L98
If the customer enters a value > 250 for subsciptions per page in the backend grid, the grid is broken and no longer usable.
This is due to the API limiting the number of items to 250.
You should force the customer to enter only valid values respecting your api limits.
[2023-06-27T09:35:34.969383+00:00] main.CRITICAL: Mollie\Api\Exceptions\ApiException: [2023-06-27T09:35:34+0000] Error executing API call (400: Bad Request): Limit should be smaller than or equal to 250. Field: limit. Documentation: https://docs.mollie.com/overview/handling-errors in /var/www/src/releases/309/src/vendor/mollie/mollie-api-php/src/Exceptions/ApiException.php:114
Stack trace:
#0 /var/www/src/releases/309/src/vendor/mollie/mollie-api-php/src/HttpAdapter/Guzzle6And7MollieHttpAdapter.php(175): Mollie\Api\Exceptions\ApiException::createFromResponse()
#1 /var/www/src/releases/309/src/vendor/mollie/mollie-api-php/src/HttpAdapter/Guzzle6And7MollieHttpAdapter.php(104): Mollie\Api\HttpAdapter\Guzzle6And7MollieHttpAdapter->parseResponseBody()
#2 /var/www/src/releases/309/src/vendor/mollie/mollie-api-php/src/MollieApiClient.php(673): Mollie\Api\HttpAdapter\Guzzle6And7MollieHttpAdapter->send()
#3 /var/www/src/releases/309/src/vendor/mollie/mollie-api-php/src/MollieApiClient.php(617): Mollie\Api\MollieApiClient->performHttpCallToFullUrl()
#4 /var/www/src/releases/309/src/vendor/mollie/mollie-api-php/src/Endpoints/SubscriptionEndpoint.php(201): Mollie\Api\MollieApiClient->performHttpCall()
#5 /var/www/src/releases/309/src/vendor/mollie/magento2-subscriptions/Model/MollieSubscriptionsListing.php(98): Mollie\Api\Endpoints\SubscriptionEndpoint->page()
#6 /var/www/src/releases/309/src/vendor/magento/framework/View/Element/UiComponent/Context.php(250): Mollie\Subscriptions\Model\MollieSubscriptionsListing->getDataSourceData()
...
If a customer has multiple subscriptions which are triggered on the same date, multiple orders are created.
So the customer might pay shipping fees multiple times, might not be effected by special discounts at that time or so on.
So placing separate orders on the same date is not applicable.
Display a static message when a customer has not purchased any subscription products yet.
Backend changes
None.
Code used to create the message above:
<div class="message info empty"><span><?= $block->escapeHtml(__('You have not purchased any subscription products yet.')) ?></span></div>
The webhook call during subscription run does not send any customer emails, even if the order is placed correctly https://github.com/mollie/magento2-subscriptions/blob/main/Controller/Api/Webhook.php#L173-L196
Describe the bug
The cart for a customer is only available on the customer_login event after the observer \Magento\Checkout\Observer\LoadCustomerQuoteObserver. Observers do not have an execution order so they can be fired in a different order. When Mollie\Subscriptions\Observer\CustomerLogin\PreventDuplicateSubscriptionProductsInCart is fired before the Magento observer the customer has no cart so a \Magento\Framework\Exception\NoSuchEntityException is thrown.
Used versions
To Reproduce
Steps to reproduce the behavior:
After you have purchased a subscription while logged in.
Expected behavior
A clear and concise description of what you expected to happen.
On log in if a duplicate subscription product is in the cart it should be removed.
Actual behavior
A clear and concise description of what actually happens.
A no such entity with customerId message is generated and the duplicate subscription product stays in the cart.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Describe the bug
Upon checkout I get to see no payment methods...
Used versions
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Get payment methods to continue.
Actual behavior
No payment methods
Screenshots
Not needed
Additional context
Fatal Error:
'Uncaught TypeError: Argument 1 passed to
Mollie\\Subscriptions\\Plugin\\Quote\\Api\\PaymentMethodManagementPlugin::Mollie\\Subscriptions\\Plugin\\Quote\\Api\\{closure}()
must implement interface
Magento\\Quote\\Api\\Data\\PaymentMethodInterface,
instance of
Magento\\Payment\\Model\\Method\\Adapter\\Interceptor
given in
.../Mollie/Subscriptions/Plugin/Quote/Api/PaymentMethodManagementPlugin.php:55
Stack trace:\n#0 [internal function]: Mollie\\Subscriptions\\Plugin\\Quote\\Api\\PaymentMethodManagementPlugin->Mollie\\Subscriptions\\Plugin\\Quote\\Api\\{closure}(Object(Magento\\Payment\\Model\\Method\\Adapter\\Interceptor))\n#1 /home/admin/domains/rebuildbodyplan.com/public_html/app/code/Mollie/Subscriptions/Plugin/Quote/Api/PaymentMethodManagementPlugin.php(57): array_filter(Array, Object(Closure))\n#2 /home/admin/domains/rebuildbodyplan.com/public_html/vendor/magento/framework/Interception/Interceptor.php(146): Mollie\\Subscriptions\\Plugin\\Quote\\Api\\PaymentMethodManagementPlugin->afterGetList' in '/home/admin/domains/rebuildbodyplan.com/public_html/app/code/Mollie/Subscriptions/Plugin/Quote/Api/PaymentMethodManagementPlugin.php' on line 55
Describe the bug
The technical attributes used on the product for the subscription are visible on the page by default.
Used versions
To Reproduce
Create a recurring product
Go to product page
Expected behavior
I don't see technical attributes for the subscription as a customer
Actual behavior
I see technical attributes for the subscription as a customer
When using the DomDocument method loadHtml() if you have a html elements like it produces a warning which means the observer fails to add the subscription options to the product page.
Issue identified in mollie/magento2-subscriptions/Observer/ViewBlockAbstractToHtmlAfter/ChangeAddToCartText.php
on lines 56 & 70 in version 1.3.1.
When a subscription order is created, default shipping and billing addresses are used.
See the following 2 points in the code
Describe the bug
Self-test, Check for latest versions and Debug Log are met with a never ending loading screen.
Used versions
To Reproduce
All are met with a never ending loading screen.
Expected behavior
A screen showing me any information/output.
Additional context
Running 'mollie:subscriptions:selftest' gives the following output:
Is there a technical reason why Grouped Products do not display subscription options of their simple products
Backend changes
None required.
Frontend changes
Display simple product subscription options on grouped product variants.
Describe the bug
We can not order a subscription product for existing customers after updating to Mollie Subscription module v.1.9.0. Also, the existing subscriptions are also not visible anymore in the existing customers account (see screenshot).
However this issue is not occurring for new customers. They can order without any issue.
The following error shows up after ordering in the magento 2 checkout (see screenshot as well).
[2023-03-13T08:28:42+0000] Error executing API call (404: Not Found): No customer exists with token cst_ffjntq2pLA.. Field: customerId. Documentation: https://docs.mollie.com/reference/v2/payments-api/create-payment
Used versions
Expected behavior
Existing and new curstomers are able to order a subscription product and view them in their account. The following screenshot is the My Account > My Subscription page showing the subscription product (for new customers).
Actual behavior
The following error occurs after ordering a subscription product in the checkout.
The following screenshot shows the My Account > My Subscription page (for an existing customers) without any subscriptions.
https://github.com/mollie/magento2-subscriptions/blob/main/Controller/Api/Webhook.php#L234
Products are added to the cart by their default quantity.
The Mollie documentation is talking about subscription metadata. You are storing the SKU there, but no quantity is used.
If a customer has multiple subscriptions which are triggered on the same date, multiple orders are created.
This
Hey There,
we found another bug within this extension.
We have two different store views for different languages.
When creating an order for storeview german the first order and also the first email templates from subscription module works as expected. But as soon as the tool creates new following up orders for a subscription product, it takes the default store view, in our case the english one. Our expected result here was that the orders will be still created at german storeview with german email templates.
Its not that big problem, but for the best user experience it should be fixed.
Hopeful that it comes in one of your next updates.
Thanks.
Describe the bug
Composer package is not availeble so a composer install is not working.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
That the mollie/magento2-subscriptions package is installed.
Actual behavior
The following error:
'Could not find a matching version of package mollie/magento2-subscriptions. Check the package spelling, your version constraint and that the package is available in a stability which matches your minimum-stability (stable).'
Additional context
Looks like the package is removed on Packagist
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.