Coder Social home page Coder Social logo

magento2-subscriptions's People

Contributors

breakerh avatar evgelit avatar marvin-magmodules avatar michielgerritsen avatar molliesys avatar zsoltmollie avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

magento2-subscriptions's Issues

paid subscription not seen in mollie subscriptions page in magento2

Describe the bug
A paid subscription is not seen in the mollie subscriptions page in magento2. It's shipped, completed etc.

Used versions

  • Magento Version number(eg 2.3.5): Magento 2.3.5
  • Open source/Enterprise/B2b: Open Source
  • Mollie version number (Check configuration): v1.0.0

To Reproduce
Steps to reproduce the behavior:

  1. place order with subscription
  2. Pay order
  3. Ship/complete order

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?

[FEATURE] Virtual & download product Support

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.

No records of a purchased Virtual subscription Product

Describe the bug
No records of a purchased Virtual subscription Product.

Used versions

  • Magento Version number(eg 2.3.5): 2.4.5-p1
  • Open source/Enterprise/B2b: Open source
  • Mollie version number (Check configuration): 1.6.1

To Reproduce

Create a Virtual subscription Product:

  1. Go to your Magento admin portal and sign in.
  2. Go to 'Catalog' > 'Products' and create a new Virtual Product.
  3. Fill in the essential details, such as product name, SKUs, and price.
  4. Enable 'is this a subscription product' and configure a subscription.
  5. When complete, click on the Save menu and select 'Save & Close'.

Order the Virtual subscription Product:

  1. Go to your Magento storefront and sign in as a customer.
  2. Navigate to the previously created Virtual subscription Product.
  3. Add the product to your cart, then pay and complete the order.

View active subscriptions in storefront:

  1. After completing the order, go to 'My Account' > 'My Subscriptions'.

Expected behavior
A record showing me any information about the purchased subscription.

Actual behavior
No records.

Additional context

  • I fetched the latest payment status.
  • I used iDeal with the Payments API.

Calling to 'https://api.mollie.com/v2/subscriptions' also results in no records.

[BUG] No invoice after subscription order is placed

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

[FEATURE] Reduce Emails (Multiple Subscriptions)

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.

No error handling on subscription order submission

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.

Reminder email timing and filter criteria

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

Backend Grid Mollie Subscriptions Item Limit - Values > 250 items per page break the grid

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()
...

[FEATURE] Multiple Subscriptions are created as separate orders

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.

$this->addProduct($molliePayment, $cart, $subscription->metadata->quantity ?? 1);

Display a static message when a customer has not purchased any subscription products yet.

Describe the new feature

Display a static message when a customer has not purchased any subscription products yet.

Describe the solution to be implemented

Backend changes
None.

Frontend changes
image

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>

Mollie\Subscriptions\Observer\CustomerLogin\PreventDuplicateSubscriptionProductsInCart relies on observer execution order

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

  • Magento Version number(eg 2.3.5): 2.4.5-p1
  • Open source/Enterprise/B2b: Open Source
  • Mollie version number (Check configuration): 1.6.0

To Reproduce
Steps to reproduce the behavior:
After you have purchased a subscription while logged in.

  1. Add a subscription product to your basket
  2. Log into your account
  3. You may see a no such entity with customerId = ... exception

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.

Uncaught TypeError implement PaymentMethodInterface wrong instance given in PaymentMethodManagementPlugin.php

Describe the bug
Upon checkout I get to see no payment methods...

Used versions

  • Magento Version 2.3.5:
  • Open source:
  • 1.0.1:

To Reproduce
Steps to reproduce the behavior:

  1. Add subscription to cart
  2. Register
  3. Go to checkout
  4. Fill in details
  5. No payment methods appear and we have an error in report/api/*

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

Technical attributes are visible on product pages by default

Describe the bug
The technical attributes used on the product for the subscription are visible on the page by default.

Used versions

  • Magento Version number(eg 2.3.5): 2.4.5-p1
  • Open source/Enterprise/B2b: OpenSource
  • Mollie version number (Check configuration): Recurring 1.4.0

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

Screenshots
Screenshot 2022-10-14 at 13 38 22

Shipping and billing address from initial order are not used

When a subscription order is created, default shipping and billing addresses are used.
See the following 2 points in the code

$shippingAddress = $this->formatAddress($this->addressRepository->getById($customer->getDefaultShipping()));

$cart->setBillingAddress($this->formatAddress($this->addressRepository->getById($customer->getDefaultBilling())));

When the customer uses multiple addresses, this might produce wrong results.
Because the customer can only configure a subscription when doing a fresh checkout, you should always use the addresses from the initial order.

Self-test, Check for latest versions and Debug Log are met with a never ending loading screen.

Describe the bug
Self-test, Check for latest versions and Debug Log are met with a never ending loading screen.

Used versions

  • Magento Version number(eg 2.3.5): 2.4.5-p1
  • Open source/Enterprise/B2b: Open source
  • Mollie version number (Check configuration): 1.6.0

To Reproduce

  1. Install and enable Mollie Payments.
  2. Install and enable Mollie Subscriptions.
  3. Go to your Magento® admin portal and sign in.
  4. Go to ‘Stores’ > ‘Configuration’ > ‘Mollie’ > ‘Subscriptions’.
  5. Click on 'Run Self-test' / 'Check for latest versions' / 'Check last 100 debug log records' / 'Check last 100 error log records'.

All are met with a never ending loading screen.

Expected behavior
A screen showing me any information/output.

Actual behavior
image
image
image
image

Additional context
Running 'mollie:subscriptions:selftest' gives the following output:
image

[FEATURE] Subscriptions for Grouped Product Variants

Describe the new feature

Is there a technical reason why Grouped Products do not display subscription options of their simple products

Describe the solution to be implemented

Backend changes
None required.

Frontend changes
Display simple product subscription options on grouped product variants.

[BUG] Subscription product does not show up after updating Mollie Subscription module to v.1.9.0 for existing customers

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

  • Magento v.: 2.4.3-p1
  • Open source v.: 2.10.12.1
  • Mollie v.: v2.20.0
  • Mollie Subscription module v.: v1.9.0

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).

Expected behavior

Actual behavior
The following error occurs after ordering a subscription product in the checkout.

Screenshot 2023-03-13 at 09 58 51 (3)

The following screenshot shows the My Account > My Subscription page (for an existing customers) without any subscriptions.

Actual behavior

[BUG] subscription follow up orders will only be created in default store view

Hey There,

we found another bug within this extension.

We have two different store views for different languages.

  1. English (EN) standard view
  2. German (DE)

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.

Add package on Packagist

Describe the bug
Composer package is not availeble so a composer install is not working.

To Reproduce
Steps to reproduce the behavior:

  1. Run 'composer require mollie/magento2-subscriptions'
  2. See error

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.