User Manual - Advanced Subscription Products

The Advanced Subscription Products extension allows organizing the sale of product-purchase and membership subscriptions on a Magento 2 store. The Admin gets able to create subscription plans which vary in fee types (trial, initial, % of regular), installments, payment schedules, subscription extending options and more. The plans can then be assigned to the products and fine-tuned considering the peculiarities of a product. Most types of products are supported. The Admin manages the subscriptions purchased with the help of specially-designed grids, and keeps customers informed on any updates to their subscriptions with the help of configurable email notifications. The Customer gets able to top up the Cart both with subscriptions and one-off products. The subscriptions of the same shipping date though made within different orders are expected for receipt on that very, same, date. On top of that, the extension enables customers with some powerful subscription monitoring and editing options, which could be accessed and exercised at any time.     

Compatibility: Magento Open Source 2.3.X - 2.4.X, Magento Commerce 2.3.X - 2.4.X

 

 

 

Installing M2 Advanced Subscription Products

To employ Authorize.Net, Stripe, Braintree and/or Adyen payment methods with latest versions of the extension (starting 2.11.0), the following operations are expected:

  1. Install the official module of the gateway
  2. Install the patch for integration of the official gateway module to M2 Advanced Subscription Products *

* Patches are included into the installation package of the extension.

The above sequence is critical if you are planning to install the patches with the help of the Command Line. When Composer is used, following the above sequence of steps is not important.

 

Refrain from installing patches for those payment methods you are not using. That is when there is no official module of the gateway installed on the store.

 

Command Line Installation

  1. Backup your web directory and store database
  2. Download the Advanced Subscription Products installation package
  3. Upload the contents of the Advanced Subscription Products installation package to your store root directory
  4. In the SSH console of your server, navigate to your store root folder:
cd path_to_the_store_root_folder

run the following command:

php -f bin/magento module:enable Aheadworks_Sarp2

To enable GraphQL, proceed with the following command:

php -f bin/magento module:enable Aheadworks_Sarp2GraphQl

To enable Adyen, Authorize.net, Braintree or/and Stripe, install first the official modules of the payment gateways

and then proceed with the following commands to enable integration with M2 Advanced Subscription Products:

php -f bin/magento module:enable Aheadworks_Sarp2Adyen 
php -f bin/magento module:enable Aheadworks_Sarp2AuthorizeNet
php -f bin/magento module:enable Aheadworks_Sarp2Stripe
php -f bin/magento module:enable Aheadworks_Sarp2Braintree (for Magento 2.3.*)
php -f bin/magento module:enable Aheadworks_Sarp2BraintreeByPaypal (for Magento 2.4.*)

then:

php -f bin/magento setup:upgrade

after:

php -f bin/magento setup:static-content:deploy

     5. Flush store cache; log out from the backend and log in again

Make sure the installation is done from under the FTP administrator account. Otherwise, set 775 permissions to the store root directory after the extension is deployed.

If you are planning to use Authorize.Net and to update the present extension to version 2.11.0, the following steps are expected:

  1. Update M2 Advanced Subscription Products
  2. Install the official Authorize.net module
  3. Install the integration patch
php -f bin/magento module:enable Aheadworks_Sarp2AuthorizeNet

     4. Migrate the Authorize.net data, if any subscriptions has been previously bought with Authorize.net

php -f bin/magento aheadworks-sarp2:authorize-net:migrate

Composer Installation

  1. If you are installing an extension from Aheadworks for the first time, you need to add our composer repository to your Magento store:

Login to your ssh console and navigate to your store folder:

cd path_to_the_store_root_folder

Run the following command:

composer config repositories.aheadworks composer https://dist.aheadworks.com/

On successful execution of the command you will be able to use the composer to install the extensions.

To install the extension:

    2. Login to your ssh console and navigate to your store folder:

cd path_to_the_store_root_folder

    3. Run the following command to install the latest version of the extension:

composer require aheadworks/module-sarp2

if you need to install a specific version, run this command:

composer require aheadworks/module-sarp2:<version>

 

Specify the version of the extension in <version>

When prompted, enter Public Key (Username) and Private Key (Password):

Both Public Key (Username) and Private Key (Password) can be found in My Projects and Licenses in your personal account on our site:

 

Need to integrate M2 ASP to a payment method or GraphQL?

Make sure the official module of the payment gateway is installed and proceed with a corresponding command:

composer require aheadworks/module-sarp2-adyen 
composer require aheadworks/module-sarp2-authorizenet 
composer require aheadworks/module-sarp2-stripe 
composer require aheadworks/module-sarp2-braintree (for Magento 2.3.*) 
composer require aheadworks/module-sarp2-braintree-by-paypal (for Magento 2.4.*) 
composer require aheadworks/module-sarp2-graph-ql

    4. Enable the extension:/p>

php -f bin/magento module:enable Aheadworks_Sarp2

Need to enable a payment method or GraphQL?

Make sure the official module of the payment gateway is enabled and proceed with a corresponding command:

bin/magento module:enable Aheadworks_Sarp2Adyen 
bin/magento module:enable Aheadworks_Sarp2AuthorizeNet
bin/magento module:enable Aheadworks_Sarp2Stripe
bin/magento module:enable Aheadworks_Sarp2Braintree (for Magento 2.3.*)
bin/magento module:enable Aheadworks_Sarp2BraintreeByPaypal (for Magento 2.4.*)
bin/magento module:enable Aheadworks_Sarp2GraphQl

Next, register the extension:

bin/magento setup:upgrade

Recompile the Magento store if you are in the Production mode:

bin/magento setup:di:compile

To verify that the extension is enabled, run this command:

bin/magento module:status

Clean store cache, by running the following command:

bin/magento cache:clean

Log out and Log in the backend again.

To upgrade the extension:

     5. To update or upgrade an extension:

Download the updated extension file. Take note of the module-name and version. Export the contents to your Magento root.

If a composer package exists for the extension, run one of the following.

Update per module name:

composer update aheadworks/module-sarp2

Updater per version:

composer require aheadworks/module-sarp2:<version>

>When updating to version 2.11.0, if you are planning to keep on using Stripe, install the patch to integrate the official Stripe module with M2 Advanced Subscription Products:

composer require aheadworks/module-sarp2-stripe

Need Stripe when updating to V 2.11.0?

aheadworks/module-sarp2-stripe: 1.0.4 require stripe/module-payments:>=2.5.4

Need Stripe when updating to V 2.13.0?

aheadworks/module-sarp2-stripe: 1.0.4 require stripe/module-payments:>=2.5.4

Need Adyen when updating to V 2.13.0?

aheadworks/module-sarp2-adyen: 1.1.2 require adyen/module-payment:>=6.6.9

Need Authorize when updating to V 2.11.0?

When updating to version 2.11.0, if you are planning to keep on using Authorize.Net, install the patch to integrate the official Authorize.Net module with M2 Advanced Subscription Products:

composer require aheadworks/module-sarp2-authorizenet

Migrate the Authorize.net data, if any subscriptions has been previously bought with Authorize.net:

bin/magento aheadworks-sarp2:authorize-net:migrate

Run the following commands to upgrade store, deploy it, and clean the cache.

bin/magento setup:upgrade --keep-generated 
bin/magento setup:static-content:deploy
bin/magento cache:clean

 

 

 

 

Set up cron

If you have already configured cron jobs for your Magento installation then you can skip this step. Read the following instructions on setting cron job for your Magento store: Magento user guide.

In most cases, it is enough to run the following command in the SSH console of your server: 

crontab -e

And insert the following lines:  

*/3 * * * * php -c <ini-file-path> <your Magento install dir>/bin/magento cron:run 
*/3 * * * * php -c <ini-file-path> <your Magento install dir>/update/cron.php
*/3 * * * * php -c <ini-file-path> <your Magento install dir>/bin/magento setup:cron:run

Remember to confirm the Save request on exit.

 

 

Uninstalling M2 Advanced Subscription Products

Manual Removal

1. Disable the module and the integration patches (if any) by executing the following commands:

php bin/magento module:disable Aheadworks_Sarp2
php bin/magento module:disable Aheadworks_Sarp2Adyen
php bin/magento module:disable Aheadworks_Sarp2AuthorizeNet
php bin/magento module:disable Aheadworks_Sarp2Stripe
php bin/magento module:disable Aheadworks_Sarp2GraphQl
php bin/magento setup:upgrade

2. Remove the files of the extension and integration patches from the following folders:

app/code/Aheadworks/Sarp2
app/code/Aheadworks/Sarp2Adyen
app/code/Aheadworks/Sarp2AuthorizeNet
app/code/Aheadworks/Sarp2Stripe
app/code/Aheadworks/Sarp2GraphQL

Automatic Removal (via Composer)

1. Disable the extension and the integration patches by executing the following commands:

bin/magento module:uninstall Aheadworks_Sarp2
bin/magento module:uninstall Aheadworks_Sarp2Adyen
bin/magento module:uninstall Aheadworks_Sarp2AuthorizeNet
bin/magento module:uninstall Aheadworks_Sarp2Stripe
bin/magento module:uninstall Aheadworks_GraphQL

 

 

 

 

 

Introducing M2 Advanced Subscription Products

The Advanced Subscription Products module comes with a set of powerful features out of the box:

  • Editing options and quantity of products within the subscription: permanently or one-time-only;
  • On-the-fly editing, extending and renewing of active subscriptions from front-end; 
  • Combined shopping cart for single and recurring purchases;
  • Support of Advanced Pricing for subscriptions
  • Free shipping for subscriptions only
  • Support of various payment gateways and other payment options;
  • Cohesive processing of same-day subscription orders; 
  • Installments Mode for product custom options;
  • Separate scheduling of subscription trial and regular fees;
  • Simple, virtual, configurable, and downloadable products can be configured as subscriptions;
  • Email notifications on updates to subscription payments and subscription status;
  • Web API and GraphQL support;
  • Integration with Reward Points.

Extension Logic

With the help of the present module, the Admin can create and manage subscription plans, as well as monitor and cancel the existing subscriptions. Plans can be assigned to one or several products. Each product can have multiple subscription options (plans) assigned to thereof at the product configuration level. Subscriptions are added to each product individually or in bulk. Subscriptions created with the help of the Magento 2 Subscription & Recurring Payments module can be configured and managed with the present extension too. The cohesive processing of same-day orders combines subscription products of the same delivery dates under a single order and thereby cuts away unnecessary expenditures on delivery. Customers are free to update, edit, extend, renew and cancel purchased subscriptions from a single tab in My Account.  

What's New?

The latest versions of the extension (2.15.0) enable the following:

  • Free shipping for subscriptions only
  • Applying product Advanced Pricing to subscriptions
  • Plans grid receives two new columns: Membership Model and Offer to Continue Subscription
  • Default value can be set to Allow Customers to Cancel Subscriptions
  • Payment or shipping failure alerts for Admin
  • Adyen 3D Secure 2 is supported (v 2.13.0)
  • Bundle product types are supported
  • Add Products to Existing Subscription

Are there any known issues?

  1. Currently, checkout with multiple addresses is not supported.
  2. Downloadable products with $0 price and multiple custom options are known to work incorrectly. 
  3. Grouped product types are not supported.
  4. A bug in Magento 2.3.2 reveals itself in an error in response to an attempt to edit configurable products added to Cart (or ordered products). Editing products within a subscription is not be possible if your Magento store is of version 2.3.2.
  5. There have been reported cases when payment cards request the 3D Secure password, even for recurring payments made with Stripe. 
  6. Product Price on the Subscription Profile page is not displayed correctly, when the subscription is purchased against a Tier price.
  7. The Authorize.Net payment module version 1.0.1 has been removed from Magento 2.4. Presently follow the instructions on how to install the latest version of an official Authorize.Net payment module.
  8. After adding an item to the cart and creating an order the initial fee specified for a subscription may change slightly (within $ 0.1). Changes in the initial fee depend on the number of options in the bundle and the qty of products in these options.
  9. On the order page bundle’s child product price does not convert in the selected currency, but the total price of the bundle is displayed correctly.

 

 

 

 

M2 Subscription Products on Backend

Extension Settings

To configure the extension go to Stores → Configuration → AHEADWORKS EXTENSIONS → Subscription and Recurring Payments 2. The config page comes in five sections: General, Product Page, Engine, Email Settings and Subscription Editing.

General Settings

The 'General' section includes the following parameters:

  • Shipping Method For Subscription Orders - select the default shipping method for subscriptions: flat rate (fixed) or table rate (best way) (is used when the shipping method from the initial order cannot be applied);
  • Enable Extension Log - set to Yes if you need to log subscription updates, as well as the actions of the Customer and Admin;
  • Use Product Advanced Pricing – set to Yes to use product special, group and tier prices to calculate the prices of the subscriptions by default.

How logging is arranged?

If logging is enabled, all the information about subscription-related transactions (events) will be added to a text file on a server. This information does not contain any customer personal data. It is listed as entity ID's, including subscription and customer ID's, the number of payment attempts left for the related subscription, subscription status, etc.

The extension logs the following:

/var/log/aw_sarp2/engine.log

/var/log/aw_sarp2/payment.log

 

How Advanced Pricing options affect subscription prices?

When Use Product Advanced Pricing is set to Yes the following takes place:

  • Initial fee

The Initial Fee of a subscription remains unchanged, Advanced Pricing options do not affect initial fees.

If you are planning to make discounts on the total price of a subscription, including its Initial Fee, consider configuring a Cart Price rule.

  • Trial and Regular prices

When the Trial and/or Regular prices of a subscription are set as percent (%) of the original price, these % values are applied to the amounts of the Advanced Pricing options to calculate the Trial and Regular prices. Rounding is then applied to the resulting amounts, if set in the settings of the plan.

When a Regular Subscription price is set as a fixed amount, the lower of the two (fixed Regular subscription price and Advanced Pricing option) is used as the price of the subscription.

The fixed Trial subscription price is disregarded. It is up to the Merchant to set it to a reasonable amount, which can be higher or lower than the Advanced Pricing option.

Read more on Advanced pricing of products in the official Magento 2 user guide.

Engine Settings

The Engine section has the following parameters to set:

  • Merge same-day subscriptions - set to Yes to group subscriptions with the same delivery dates into single orders (so that customers can save on shipping);
  • Number of Attempts to Charge Failed Subscriptions - a selector for a whole numeric value (ranging 1-10) to indicate the number of reattempts to charge a subscription fee in case of failure (per day). 

How same-day subscriptions are merged?

The options are applied to subscriptions of shippable products which the same shipping addresses. In case of different shipping methods, the one set as "Shipping Method For Subscription Orders" will be used. Make sure to set up default shipping method for subscription orders (the option above).

Product Page

The Product Page section contains the following settings:

  • Show Subscription Plan Selector As - decide between the two modes of Subscription Plan Selector as it will appear on the storefront page: Radiobutton or Dropdown;  
  • Subscribe and Save Text - suggest a title for the hint to appear between the one-off purchase option and the list of subscription options (empty by default, not displayed when empty);
  • Tooltip for Subscribe and Save - suggest a description of the hint to appear in a bubble when clicking or tapping on the question mark icon next to the hint (empty by default);
  • Subscription Plan Description on Product Page - the Classic/Advanced switcher to define the format of the Regular and Trial Payments passage in the subscription details block on the following pages:

    • Product Page
    • Cart Page
    • Order Success Page
    • Order Page (backend/frontend)
    • Subscription Page (frontend)
    • Order Email notification (native Magento)

The Subscribe and Save Text and Tooltip for Subscribe and Save text-fields support HTML.

 

If there are lot of options of subscriptions for a product, the list of thereof may take a lot of space on the product page. For convenience reasons opt for the Dropdown mode in the Show Subscription Plan Selector As. The Radiobutton mode is used by default. 

 

What will I see in the alternative format of the details of a subscription?

1. Details of repeated trial payments are displayed in the following way: “{Trial payment price} / Day”, “/ Week”, “/ Month”.

Example

Original Format

Alternative Format

Trial payments (Weekly)      20 $ starting from {date}

Trial payments      20$ / Week starting {from date}

2. If the number of payments is given, then the format is the following: “{Trial payment price} / {Repeat Trial Payments} for (Number of Trial Payments) {Repeat Trial Payments} starting from {date}”.

Example

Original Format

Alternative Format

Trial payments (Weekly)      2 x 20 $ starting from {date}

Trial payments      20$ / Week for 2 weeks starting from {date}

3. If the value of Number of Payments is 1, the format is the following: “{Trial payment price} / {Repeat Trial Payments} for 1 {Repeat Trial Payments}

4. If the value of Repeat Trial Payments is “Every Xth {period}”, the format is the following: “{Trial payment price} / {Repeat Trial Payments} for {Number of Trial Payments } * {Repeat Trial Payments (numeric part of the value)} {period}”.

Example

Original Format

Alternative Format

Trial payments (Every 5th day)      2 x 20 $ starting from {date}

Trial payments      20$ / Every 5th day for 10 days starting {from date}

Same format is true for the details on regular payments.

Read more on the variable used herein in the Creating/Editing Subscription Plans Chapter.

Email Settings

The 'Email Settings' section contains the following parameters:

  • Email Sender - the name of the default email sender;
  • Successful Billing Email - enable/disable email alerts about successful subscription billing;
  • Billing Successful Email Template - the email template for successful subscription billing alerts;
  • Failed Billing Email - enable/disable email alerts about failed subscription billing;
  • Billing Failed Email Template - the email template for failed subscription billing alerts;
  • Subscription Cancelled by Admin Email - enable/disable email alerts about canceled subscription (by Admin);
  • Subscription Cancelled by Admin Template - the email template for canceled subscription alerts (by Admin);
  • Subscription Cancelled by Customer Email - enable/disable email alerts about canceled subscription (by Customer);
  • Subscription Cancelled by Customer Template - the email template for canceled subscription alerts (by Customer);
  • Send BCC to admin - the email addresses of the admins to receive blind copies of the emails on subscription billing failure (use commas to separate addresses, leave empty to disable the feature);
  • Send Failure Alert To Admin -  the email addresses of the admin to receive notifications on the order cancellation because of failed shipping or payment;
  • Send Reminder About Next Billing, Days - the number of days before the next billing when the corresponding email reminder must be sent;
  • Next Billing Email Reminder Template - the email template for next billing reminders.

 

Notifications are sent in bulk on each cron launch. Notifications on canceled subscriptions are also sent on cron launch. It does not matter who canceled the subscription, the Admin or the Customer - the notification thereof will follow on cron launch.

 

How invoice emails are sent?

In order to send invoice emails to customers, view the required invoice in Sales  Invoices and click on Send Email.

Subscription Editing Settings

The 'Subscription Editing' section allows configuring the following parameters:

  • Switch to Another Plan - by choosing 'Yes' you will allow registered buyers to swap active subscription plans at any time they wish;
  • Change Shipping Address - by choosing 'Yes' you will allow registered buyers to change their shipping address linked to an active subscription at any time they wish;
  • Allow Editing Next Payment Date - by choosing 'Yes' you will allow registered buyers to edit the date of next payment related to an active subscription at any time they wish;
  • Earliest Next Payment Dates, Days - type in the number of days towards earliest next payment within a subscription (Set to 1 to allow choosing "tomorrow", and then on likewise);
  • Allow Next Payment Date Editing for Membership - choose 'Yes' to allow registered shoppers to edit the date of the next payment within their Membership subscriptions;
  • Allow editing product options and quantity - choose 'Yes' to allow registered shoppers to edit the options and/or the quantity of the products within a subscription;
  • Allow one-time editing of product options and quantity - choose 'Yes' to enable registered shoppers with the One-Time mode of editing the options and/or the quantity of the products within a subscription;
  • Allow Customer To Cancel Subscriptionset to ‘Yes’ to allow customers to cancel/renew subscriptions by default. The value set herein can be overridden for each subscription plan on the Plan page on Backend. When customers are not allowed to cancel subscriptions, the Cancel/Renew buttons are not displayed on the My Subscriptions grid;
  • Allow Adding Products To Nearest Subscription - set to 'Yes' to allow customers to add products from the cart to the nearest subscription.

The Allow Editing and Allow One-Time Editing options define the mode of editing of products within a subscription: Permanently or For Next Order Only (one-time), the functionality of which is disclosed as follows:

  • When "Allow editing product options and quantity" is set to Yes and "Allow one-time editing of product options and quantity" is set to No, the changes customers make to the options of a product or to its quantity will be accepted permanently for all subsequent orders within the subscription.
  • When both configuration options are set to 'Yes', both modes are available to the Customer. The choice of one is embodied via a popup, which is shown to the Customer on completion of the updates to the subscription. When the 'For Next Order Only' mode is selected in the popup, all changes to the configuration of the product and/or its quantity within the subscription will be applied to the upcoming subscription order only, all subsequent orders of the subscription will be processed against the settings of the previously delivered subscription.

What will happen in case of multiple updates to a subscription made in the One-Time mode during the period between the subscription orders?

If the Customer makes changes to a subscription multiple times within the period between the two subsequent orders (for example, Nth and N+1st) and each time opts for the "One time only" alternative, he or she will receive the next order (N+1st) as per the most recent changes made, and then all changes to the options of the products within the subscription will be rolled back to their state as per the previously received order (Nth).

 

When "Allow editing product options and quantity" is set to No the "Allow one-time editing of product options and quantity" setting is not available and hidden from the list of settings. 

Subscription Plans Grid

Having configured the main settings of the extension, proceed to create subscription plans for products. Go to Sales → SARP 2 by AheadWorks → Plans.

The plans are aggregated into the Subscription Plans grid. Subscriptions data is presented in the following columns:

  • ID - the identification number of the subscription;
  • Name - the descriptive name of the subscription;
  • Status - the status of the subscription (enabled/disabled);
  • Initial Fee - the indicator of an initial fee set for the subscription (yes/no);
  • Trial Period - the indicator of a trial period set for the subscription (yes/no);
  • Total Number of Payments - the number of payments which will happen within the subscription;
  • Number of Trial Payments - the number of trial payments which will happen within the subscription;
  • Membership ModelYes if the model of subscription is Membership, No otherwise;
  • Offer to continue subscription – Yes if the subscription can be extended, No otherwise.

With the 'Actions' box above the grid, you can manage your subscription plans one by one or in bulk.

Creating/Editing Subscription Plans

To edit a plan, click on the name thereof in the Subscription Plans grid.

Will plan editing affect existing subscriptions?

Plan editing will not affect existing subscriptions. Changes, made to a subscription plan, will be applied only to subscriptions purchased after plan editing, with the exception: Email settings of the plan will be applied to existing subscriptions as well. That is, all active subscriptions will always request data for emailing from the corresponding subscription plan.

To create a new plan, click on the Add Plan button at the top right of the page.

The New Plan page will come in six sections: General, Regular Period Schedule, Trial Period Schedule, Additional Pricing Settings, Continue Subscription Settings and Storefront Description.

General Settings

The 'General' section allows setting the following parameters:

  • Enabled - set to Yes to enable the subscription plan;
  • Name - suggest the name of the plan;
  • Sort order - the whole numeric value to tell the relative order in which the subscription will feature on the list of subscriptions in the store (0 - top position).
  • Enable Initial Fee - set to Yes to enable an initial fee for the plan;  
  • Enable Trial Period - set to Yes to enable a trial fee for the plan;
  • Allow Customer to cancel Subscription - set to ‘Yes’ to allow customers to cancel/renew the subscription plan. Tick the “Use value from Config Settings” check-box to use the default value of Allow Customer to Cancel Subscription as set in the Configuration.  When customers are not allowed to cancel the subscription, the Cancel/Renew buttons are not displayed on the My Subscriptions grid.

Scheduling Settings

The 'Schedule' section allows defining the number of payments and payment frequency both for regular and trial periods. 

Regular Period Schedule

The block allows configuring the following parameters:

  • Number of Payments - the whole numeric value to tell the number of payments within the subscription period;
  • Repeat Payments - the frequency of payments selector with options: Daily, Weekly, Monthly and Every (further configurable);
  • Send Reminder About Next Billing (in days) - the number of days before the next billing when the corresponding email reminder is to be sent (untick the "Use value from Config Settings" to indicate a custom value);
  • Membership Model - the Yes/No toggle to enable or disable an extra cycle when the subscription comes to an end (Compare: when a product-purchase subscription expires buyers have to resubscribe should they wish to continue the subscription).

You can create infinite subscription plans by leaving the 'Number Of Payments' field empty.

Trial Period Schedule

The section (see above) allows configuring the following parameters:

  • Number of Trial Payments - the whole numeric value to tell the number of payments within the subscription period;
  • Length is the same as for regular payments - the Yes/No toggle to unfold/fold up the Trial Period Scheduling options;
  • Repeat Payments - the frequency of payments selector with options: Daily, Weekly, Monthly and Every (further configurable);
  • Send Reminder About Next Billing (in days) - the number of days before the next billing when the corresponding email reminder is to be sent (untick the "Use value from Config Settings" to indicate a custom value);

Additional Pricing Settings and Storefront Description 

The Additional Pricing Settings section allows the following:

  • Set the regular payment price (as a % of the product price);
  • Set the trial payment price (as a % of the product price), if the trial period is enabled;
  • Define the price rounding logic (up to XX.99, XX.90, or X9.00, down to XX.99, XX.90, or X9.00, or don't round).

Continue Subscription Settings 

The Continue Subscription Settings section shows the following options for subscription plan configuration:

  • Offer to continue subscription - the Yes/No toggle to enable or disable the option to extend the subscription (both on the front and backend);
  • When to send (in days) - the whole numeric value to indicate the number of days when a notification on subscription extending option is to be sent to a customer;
  • What to send - a drop-box to select an email template for the notification (AW_Offer to Continue Subscription Template by default)

'When to send' values:

Negative number will send the email in X days before the last billing.

Zero will send the email on the day of the last billing.

Positive number will send the email in X Days after the last billing. Warning! The value here can not be bigger than the length of the regular period.

 

How purchased subscriptions react to any alterations herein? 

The settings in this section, when altered, will apply both to new and existing subscriptions.

 

The default "Offer to Continue Subscriptions Template" contains an active link which takes a customer to the My Account area on the storefront and performs the Extend Subscription operation. The link remains active only for the length of the billing cycle as per the expired subscription. The link is inserted into the email by the following variable: {var extendLink}. The variable can be added manually to any subscription-related email.

Email template, an example of code with the 'extendLink' variable inserted:

{{depend extendLink}} 
Your subscription ends soon.
<a href="{{var extendLink}}" target="_blank">Click here to extend it.</a>
{{/depend}}

Storefront Description

The section comes with the following parameters:

  • Store View - the selector of a store-view;
  • Title - the text-box to contain the title of the subscription plan as per the store view.

To add a store view and suggest a plan title for it, click the Add button below the Store View selector. 

Should no title be indicated for a store view, the Plan Title will be used as configured in the General Settings.

Examples of Subscription Plan Settings

Free 10-day Trial

I want to sell subscription tickets to yoga classes, and supply each subscription with a 10-day free trial, so that customers could come and try the classes to make sure they are very good and worth paying for. Customers will have to enter their card when purchasing the subscription with a free trial. An initial fee on registration of a customer for the class is to be set (paid once for a subscription). When purchasing the subscription customers will be charged only the initial fee. When the free 10-day trial elapses, customers will be charged the first payment within the subscription. That will be the date to start the regular payments period. No charge will follow, if customers cancel the subscription within the trial period (first 10 days). 

Enabled Initial fee - yes;

Enable Trial Period - yes;

Number of payments - 12 (annual subscription);

Regular Payment / Repeat payments - Every 1st month (monthly payment);

Membership Model - no (to collect an initial fee with next purchase of the subscription);

Number of Trial Payments - 1;

Trial Payment / Repeat payments - Every 10th day;

Regular Payment Price (% of product price) - 80;

Trial Payment Price (% of product price) - 0;

Adding Subscription Plans to Products

There are two ways to add a subscription plan to a product:

  • individually;
  • as part of a mass action.

Note, that more than one subscription can be added to a product.

Downloadable products with a $0 price and multiple custom options are known to work incorrectly.

Bundle and Grouped product types are not supported.

These issues are going to be fixed in one of the upcoming releases.

Adding subscription plans to individual products

Go to Catalog → Products and open a product page. Scroll down to the 'Subscription Configuration' section. This is where you can configure subscription plan settings for the given product.

First, define the subscription model (use the 'Subscription' box for this purpose):

  • No - the product will be available only as a one-off purchase;
  • Optional - the product will be available both as a subscription and one-off purchase;
  • Subscription only - the product will be available only as a subscription.

Is there difference in assigning subscriptions to child and parent products?

Subscription Only makes sense either for simple products, which are not part of the complex ones or for parent-products only. Should Subscription Only be chosen for a child product, the product options Configurable, Bundle and Grouped will become unavailable for the latter. (as dictated by the native Magento 2 mechanism of work with required options).

It is recommended, the Admin configures subscriptions for complex (parent-) products only. For child products, it is advised to reassign only the price of a subscription plan, if need be.

Next, decide if the Advanced Pricing options set for the product are to be used to calculate the subscription fees and prices. Use the Use Product Advanced Pricing toggle to do so. Tick the “Use Config Settings” check-box to use the default value of the given parameter.

To finalize the plan, tweak the following options of the subscription:

  • Website - If you run several websites, you can configure plan parameters for each. Use the 'Website' box to select a website.
  • Plan - Choose a subscription plan from the 'Plan' box. You can use same plan for many products.
  • Initial fee - The amount of the initial fee, if enabled in the Plan Settings. By default, 0.00. Set the initial fee manually. 
  • Trial - The amount of the product fee during the trial period, if enabled in the Plan Settings. By default, the fee is calculated from the trial fee values as set in the Plan Settings.  
  • Regular - The amount of the regular subscription fee as a % of the product price (see Plan Settings). By default, the regular fee is calculated from the regular fee values as set in the Plan Settings.

Tick the Use plan settings checkbox for automatic (default) trial and regular fees calculation. Tick it away to alter the values of the fees.

 

What price will be displayed on the product page?

Regular subscription fee will be displayed on the product page (and in widgets) instead of the product price.

There could be assigned more than one subscription plan to a product. The product page will feature the regular fee of the plan with the highest sort order.

Installments Mode - The mode of subscription fee calculation when the price of a custom option (if any is added to the product) is split between regular subscription payments.

Example of Installments Mode use
The product has the following parameters:

  • regular subscription fee: $1
  • Custom option price: $12
  • Number of payments: 12 (monthly)

Installments mode switched off:

each payment is: $1 (regular fee) + $12 (custom option) = $13 every month, $156 in total for 12 months.

Installments mode switched on:

each payment is: $1 (regular fee) + $12 (custom option) / 12 (number of regular payments) = $2 every month, $24 in total for 12 months.

Click Save in the top right of the page to apply the configuration.

Adding subscription plans to products in bulk

Go to Catalog → Products, choose products to which you would like to add subscriptions, click the 'Actions' box and select 'Update attributes'. 

This will take you to the 'Update Attributes' page. Scroll down to the subscription editing fields.

Assign a subscription type and set other parameters in the same fashion as for individual products (see above). Click the 'Save' button in the top right corner to save changes. You will be redirected to the 'Products' page. 

Configuring Free Shipping for Subscriptions

How to configure free shipping for subscriptions

Free Shipping for Subscriptions is implemented with the help of Cart Price Rules. Do that on the New Cart Rule page in the Actions section (Marketing → Cart Price Rules → Edit / New Rule → Action).

The section brings forward the following configuration options:

  • Condition block: native Magento 2 options of Product Attributes and Cart Item Attributes, as well as the condition of subscription existence. The latter is the enhancement brought forward by the given module.
  • Free Shipping dropdown: No, For matching items only, For shipment with matching items.

Thereby, with M2 ASP (starting version 2.12.0) installed on the store, a Cart Price rule can have two tiers of conditions:

  • the native Magento 2 cart price condition, which specifies when the rules is to be applied, and
  • the free shipping condition, which specifies which cart items are to be shipped free of shipping charge

Every time the cart price condition enables the Cart Price Rule, the free shipping condition will work both for the initial subscription order and all the recurrent subscription orders. Once the cart price condition is not performed, the free shipping condition is dropped and is not performed too. This can happen, for example, when the Customer edits the details of the purchased subscription, which happen to be the values of the cart price condition of the Cart Price Rule which was implemented on purchase of the subscription.

Free shipping can be set both for products with optional and permanent subscriptions. For products with permanent subscriptions, Cart Price rules are applied to the subscriptions only. For products with optional subscriptions, consider that a product can be bought both/either as a one-off purchase and on subscription terms.

Free shipping for products with optional subscriptions

For products with optional subscriptions, mind the following alternative configurations of the Cart Price rule:

Configuration A

Condition

Free Shipping Result

If ALL of these conditions are TRUE:

SKU is <…Product SKU…>
For matching items only Shipping is free for the product, whether it was acquired as a one-off purchase or on subscription terms (on first subscription orders AND all recurrent orders).

 

Configuration B

Condition

Free Shipping Result

If ALL of these conditions are TRUE:

Subscription is Yes

SKU is <…Product SKU…>
For matching items only One-off purchases do not support free shipping. Subscription orders are shipped free (on first subscription orders AND all recurrent orders).

 

 

How to use coupons and other discounts in SARP?

The present version of the extension (2.15.0) applies discounts and discount codes to FIRST ORDERS ONLY. It means that if the Customer places an order which has a subscription product the rule works only for the first subscription order.

Using Coupons for Free Shipping

Consider the following logic of using coupons when setting up free shipping in a Cart Price rule:

  • Coupon = No Coupon -> the rule works for all subsequent orders
  • Coupon = Specific Coupon -> the rule works for first order only

Thereby, if you want to provide customers with coupons for free shipping, remember, that the rule works only for first subscription order. To configure coupons, go to Marketing → Cart Price Rules →  Edit / New Rule → Rule Information.

Can orders with multiple subscriptions have free shipping?

It is the logic of the present extension that multiple subscriptions can be purchased alongside one-off products in the same order. Free shipping then applies not to the whole order, but to the respective subscription as specified in the applicable Cart Price Rule. Other Cart Price rules or discount coupons can also be applied to the given heterogeneous order. Their application will not interfere with the application of the respective free shipping, unless there has been set up a coupon which discards the application of subsequent rules (see Discard Subsequent Rules in Marketing → Cart Price Rules → Edit / New Rule → Actions).

 

Can coupons and other discounts be applied to free shipping subscriptions?

The present version of the extension (2.15.0) applies discounts and discount codes to FIRST ORDERS ONLY. It means that if the Customer places an order which has a subscription product applicable for free shipping, and applies a discount coupon to that same order, free shipping will be implemented for first and all subsequent orders, whereas the discount will work only for first order.

 

For configurable products the generic parent SKU is to be specified (Not Child or Parent only).

 

Sample cases and scenarios for subscriptions and free shipping

Case A

Subscription Product_1 (with free shipping) and Subscription Product_2 (without free shipping) in one subscription plan:

  • delete Subscription Product_1 →  no free shipping
  • delete Subscription Product_2 → free shipping

Case B

No.

Cart Price condition Free Shipping condition Subscription Plan Result
1 Subtotal < $10

Subscription = Yes

Free Shipping = For matching items (only)

free trial and regular price > $10 Trial shipment(s) - free, regular shipments – to be paid for
2 Subtotal > $10

Subscription = Yes

Free Shipping = For matching items (only)

free trial and regular price > $10 Trial shipment(s) – to be paid for, regular shipments - free
3 Shipping Address =  New York

Subscription = Yes

Free Shipping = For matching items (only)

Address is edited (new State = Alabama) New recurring order is created with non-free shipping

“For matching items only”, explained

The following examples explain the difference between the two settings for the Free Shipping drop-box (Marketing →  Cart Price Rules → Edit / New Rule →  Action) when subscriptions are considered for free shipping.

GIVEN: There are 2 subscription products with the XXX and YYY SKUs

Edit / New Rule → Action:

If ALL of these conditions are TRUE :

SKU is XXX

Subscription is Yes

1) Free Shipping = "For matching items only" and the shipping method has a fixed price (for example, fixed rate = 5$ for 1 item):

  1. XXX in Cart/Subscription -> fixed rate = $0 in Cart and for all subsequent orders
  2. XXX subscription and XXX product in Cart -> fixed rate = $5 in Cart -> After placing the order, fixed rate = $0 for all subsequent orders by the subscription
  3. XXX and YYY in Cart -> fixed rate = $5 -> Place the order:

-> If XXX and YYY in one Subscription -> fixed rate = $5 for all subsequent orders

-> If XXX and YYY in one Subscription -> If delete YYY product, fixed rate = $0 for all subsequent orders

-> If XXX and YYY in one Subscription -> If delete XXX product, fixed rate = $5 (no free shipping) for all subsequent orders

-> If XXX and YYY in different Subscriptions -> Subscription with XXX product (fixed rate = $0 for all subsequent orders) and Subscription with YYY product(fixed rate = $5 for all subsequent orders)

4. Subscription with XXX product (fixed rate = $0) and Subscription with YYY product(fixed rate = $5) -> Merged order with XXX and YYY subscriptions (fixed rate = $5 in the order)

2) Free Shipping = "For matching items only" and the shipping method has a dynamic price (for example, Fedex):

  1. XXX in Cart/Subscription -> FedEx = $0 in Cart and for all subsequent orders
  2. XXX subscription and XXX product in Cart -> FedEx = "NOT free" in Cart -> After placing the order, FedEx = $0 for all subsequent orders by the subscription
  3. XXX and YYY in Cart -> FedEx = -> Place the order:

-> If XXX and YYY in one Subscription -> FedEx = "NOT free" for all subsequent orders

-> If XXX and YYY in one Subscription -> If delete YYY product, FedEx = $0 for all subsequent orders

-> If XXX and YYY in one Subscription -> If delete XXX product, FedEx = "NOT free" for all subsequent orders

-> If XXX and YYY in different Subscriptions -> Subscription with XXX product (FedEx = $0 for all subsequent orders) and Subscription with YYY product(FedEx = "NOT free" for all subsequent orders)

4. Subscription with XXX product (FedEx = $0) and Subscription with YYY product(FedEx = "NOT free") -> Merged order with XXX and YYY subscriptions (FedEx = "NOT free" in the order)

3) Free Shipping = "For shipment with matching items" and the shipping method has a dynamic price (for example, Fedex):

  1. XXX in Cart/Subscription -> FedEx = $0 in Cart and for all subsequent orders
  2. XXX subscription and XXX product in Cart -> FedEx = $0 in Cart -> After placing the order, FedEx = $0 for all subsequent orders by the subscription
  3. XXX and YYY in Cart -> FedEx = $0 -> Place the order:

-> If XXX and YYY in one Subscription -> FedEx = $0 for all subsequent orders

-> If XXX and YYY in one Subscription -> If delete YYY product, FedEx = $0 for all subsequent orders

-> If XXX and YYY in one Subscription -> If delete XXX product, FedEx = "NOT free" (no free shipping) for all subsequent orders

-> If XXX and YYY in different Subscriptions -> Subscription with XXX product (FedEx = $0 for all subsequent orders) and Subscription with YYY product(FedEx = "NOT free" for all subsequent orders)

4. Subscription with XXX product (FedEx = $0) and Subscription with YYY product(FedEx = "NOT free") -> Merged order with XXX and YYY subscriptions (FedEx = "NOT free" shipping in the order)

 

Managing Subscriptions

Once the plans have been assigned to the product, it becomes available for purchase as a subscription. To monitor all active subscribers, go to Sales → SARP 2 by AheadWorks → Subscriptions.

Monitoring & bulk-editing subscriptions

 

The 'Subscription' grid contains the data about all the subscribers as arranged into the following columns:

  • ID - an ID of a subscription;
  • Subscription Profile ID - an ID of a subscription profile;
  • Customer - the name of a subscriber;
  • Email - subscriber's email address;
  • Group - the group the subscriber is assigned to;
  • Subscription Plan - the plan purchased by the subscriber;
  • Status - the current subscription status (active, suspended, or canceled);
  • Store view - the store view to show the subscription;
  • Created At - the date and time of subscription creation;
  • Start Date - the date when the subscriber started the subscription;
  • Last Order - the ID of the latest order;
  • Last Order Date - the date of the latest order.
  • Last Order Grand Total - actual total for the most recent order (May also contain fees for non-subscription items and/or items from other subscriptions when charged together with the chosen one);
  • Next Order Grand Total - actual total for the next order;
  • Products - the products assigned to the subscription.

From the 'Actions' box above the grid, you can change the status of the selected subscription(s).

How to manage subscriptions left after customers' deleting their accounts?

In case a customer deletes their account, his/her active subscriptions will not be suspended or cancelled. Instead, those subscriptions will be marked as made by guests. They can later be merged if the merging conditions (see Extension Settings) are fulfilled. This is the only case when guest orders can be merged.

How not to miss a thing when editing subscriptions?

If you edit a subscription order and do not want the old subscription to create new orders, please make sure to cancel it manually since, out of the box, both subscriptions will continue working together.

Browsing and editing individual subscriptions

To view the details of a subscription, click on the correspondent subscription profile ID (each id in the grid is an active link to the related subscription profile page).

This is where you can browse the following:

  • Next order details;
  • Subscription status;
  • Subscription plan information;
  • Products assigned to the subscription;
  • Buyer's address, shipment and payment methods;
  • Order details to contain the subscription.

Depending on the status of the subscription a few actions are possible herein:

Active subscriptions can be cancelled. To do so, click on Cancel Subscription in the top right of the page. The page will be reloaded, the subscription will receive the status "Cancelled", and the Cancel Subscription option will change to Renew Subscription.

Cancelled subscriptions can be renewed. To renew a subscription, click on Renew Subscription in the top right of the page. The page will get reloaded, the subscriptions will receive the status "Active".

Expired subscriptions can be extended. To extend a subscription, click on the Extend Subscription in the top right of the page. The page will get reloaded, the subscription will receive the status "Active".   

What is the expiration time for the Renew action?

For memberships, the action allows renewing subscriptions while the membership is still active. When the membership is expired, the option to renew will not be displayed.

For physical products, there is no time limit and the subscription with the Canceled status can be renewed at any time, even when the initially scheduled next payment date is already in the past.

 

What is the expiration time for the Extend action?

The Extend Subscription button is displayed only for the length of the billing cycle. E.g. for a monthly subscription, the Extend action is available during a month after the final billing. 

On successful extending of a subscription the following arrangements will take place:

  • there will be added as many billing cycles as configured within the subscription plan;
  • the subscription will continue on the same schedule as before (if regular payments happened every Monday, then after extending the subscription they will take place every Monday too, disregarding on what day the subscription was extended);
  • the price of each new billing cycle will be Regular (no initial fees, no trials).

 

 

 

 

M2 Subscription Products on Storefront

Subscriptions on Product Pages

All product-related subscription plans are listed above the Add to Cart button. On clicking on a plan, there will unfold some detailed information to describe the subscription.

Click on the link below to learn more about the subscription details† you can see with regard to the selected subscription plan.

What will I see in the description of a subscription?

  • There are two alternatives of expanding on Regular payments:
  1. If the number of regular payments is 1 (or 2 if the initial fee is enabled), the billing cycle is not mentioned at all.

Example:

Regular Offer

50 $ {price of regular payments}

 

starting from 1 June, 2020 {date}

2. If the number of regular payments is 0 or more than 1 (or 2 if the initial fee is enabled).

Example:

Regular Payments (Weekly) ({billing cycle})

3 {number of regular payments>1} х 50 $ {price of regular payments}

 

starting from 1 June, 2020 {date}

 

The {date} value is calculated in the following way: today’s date + trial period length. If the initial fee is enabled, the date is calculated: today’s date + trial period length + the length of one billing cycle (one regular payment).

Please note, that under certain conditions the word “payments” can be substituted with “offer” .

“Starting from” is located below the price and is colored in grey.

  • There are two ways of expanding on Trial Period:
  1. If the number of trial payments is 1 (or 2 if the initial fee is enabled), billing cycle is not mentioned:

Example:

Trial Offer

50 $ {price of trial payments or FREE}

 

starting from 1 June, 2020 {date}

2. If the number of regular payments is 0 or more than 1 (or 2 if initial fee is enabled):

Example:

Trial Payments (Weekly) ({billing cycle})

3 {number of trial payments>1} х 50 $ {price of trial payments}

 

starting from 1 June, 2020 {date}

 

The {date} value herein is today’s date. If the initial fee is enabled, the {date} value is calculated: today’s date + the length of one billing cycle (one trial payment).

Please note, that under certain conditions the word “payments” can be substituted with “offer” .

“Starting from” is located below the price and is colored in grey.

In addition to the above, Subscription Ends can also be expanded on in two ways:

  • if the number of regular payments is set in the Subscription Plan, the {date} value is displayed. In this case, it is calculated in the following way: start date + trial period + regular period.
  • if Subscription Plan is infinite, “Cancel Anytime” is displayed

Refer to Chapter "Extension Settings" → "General Settings" to learn more on the alternative format of the Regular/Trial Payments passage.

If a 'Subscription' option was previously set to Optional, the product, which is assigned to thereof, will also be available in the one-off purchase variant.

If you need to display on the storefront the status of a subscription (for example, when customers are viewing the product they are currently subscribed to), insert the following line into the code of the relevant front page:

$this->profileManagementInterface->isCustomerSubscribedOnProduct($customerId, $productId)

This command returns TRUE or FALSE values, which indicate relevantly if the customer is or is not subscribed to the product. 

By virtue of the mixed cart functionality, customers can add any combinations of one-off purchases and subscriptions to their shopping cart.

Note that subscriptions with the same delivery date will be combined into a single order, should such settings be configured in the Extension Settings. In this case, the price of delivery will be calculated as for one subscription.

Subscriptions in Shopping Cart

If a cart contains a subscription product, only those payment methods, which are supported by the extension, will be available. More on supported methods of payment.

Currently, checkout with multiple addresses is not supported. When there is a subscription product in the cart, the option Checkout With Multiple Addresses will be hidden.

Adding Products to Nearest Subscription

If the Store Admin enables the Adding Products to Nearest Subscription option from the backend, then customers can add more regular products and subscription products to existing subscriptions in the shopping cart. In this case, the Customer can see how much he should pay the next payment period: the usual subscription payment + the cost of the goods added to the cart.

 

After adding the product, customers can check information about subscriptions in the My Subscriptions tab. Regular products will be removed from the profile after it is paid and delivered.

Subscriptions in My Account

Customers can view all purchased subscriptions in the 'My Subscriptions' tab in their accounts. The My Subscriptions grid features the following columns

  • Profile ID - the identification number of the subscription purchase;
  • Status - the status of the subscription (Active, Cancelled, Expired, Finished)
  • Products - the products assigned to the subscription;
  • Subscription Plan - the name of the subscription plan;
  • Trial Plan Due Date - the date of the end of the trial period (if any); 
  • Last Payment Date - the date of the previous payment;
  • Next Payment Date - the date of the next payment;
  • Next Payment Amount - the fee to be paid within the next payment; 
  • Actions - the active link to apply action to the subscription (Edit, Renew, Extend).

Renew Subscription

For subscriptions, with the Cancelled status only, there is a "Renew" action available. To renew a subscription, click Renew active link in the Actions column.

What is the expiration time for the Renew action?

For memberships, the action allows renewing subscriptions while the membership is still active. When the membership is expired, the option to renew will not be displayed.

For physical products, there is no time limit and the subscription with the Canceled status can be renewed at any time, even when the initially scheduled next payment date is already in the past.

 

Customers are not able to renew subscriptions for which “Allow Customer to Cancel Subscription” is set to ‘No’ (see Creating/Editing Subscription Plans or Extension Settings).

 

Extend Subscription

For expired subscriptions (when final billing has been applied to the subscription) the Extend active link will get available next to the Edit link in the Actions column. To extend the subscription, click the link and confirm your action with the relevant option within the confirmation popup. A success message will follow.

 

When and how long will the Extend link be available?

The Extend link will be active only for the length of the billing cycle.

E.g. for a monthly subscription, this feature should be available for a month after the final billing.

This limitation is for those, who can find an email on subscription expiration long after the subscription is over, and who will then try to extend the subscription. In this case an error will be displayed: "We are sorry, this subscription can not be extended anymore. Please purchase a new one."

On successful extending of a subscription the following arrangements will take place:

  • there will be added as many billing cycles as configured on the Backend for the given subscription;
  • the subscription will continue on the same schedule as before (if regular payments happened every Monday, then after extending the subscription they will take place every Monday too, disregarding on what day the subscription was extended);
  • the price of each new billing cycle will be Regular (no initial fees, no trials).

It is also possible to extend a subscription via the link in a corresponding notification email.

On approaching the expiration period, in due time as set in the Subscription Plan Settings, an email is sent to the customer to notify of subscription expiration. The email contains a "Thank you" note on the use of the subscription, an offer to extend the subscription, and a link to perform the action. Clicking on the link will take the customer to the My Account/My Subscriptions area and will invoke one of the scenarios of subscription extending as described above in this chapter. 

Edit Subscription

Active subscriptions can be edited. To edit a subscription, click on the Edit active link in the Actions column. The subscription profile page will get opened. The following information can be found on the page:

  • The products within the subscription
  • Subscription plan
  • The dates when the subscription was created and is to expire
  • The dates of first and next payments
  • First payment fee
  • Payment format and fees/installments
  • Shipping address
  • other payment details (including payment method) 

Same details can be found both on the front- and back-end, where appropriate: Order Success page, Order, Invoice, Product page and Subscription Profile page.

The subscription profile page provides for editing of some of the above controls of the subscription. This can be done by clicking on the 'Edit' active link next to the chosen control element.

The Admin can switch off editing of subscription controls. Do that in thesettings of the extension. The Edit active link will then not be displayed next to the control element. Updating of the control element of the subscription will then not be possible. 

To cancel the subscription, click on the Cancel Subscription active link above the details of the subscription. A confirmation popup will emerge for you to confirm the action. You will have to choose 'Yes' or 'No' for your final decision. When 'Yes' is clicked on the page will be reloaded, and the subscription will receive the Cancelled status. 

Customers are not able to cancel subscriptions for which “Allow Customer to Cancel Subscription” is set to ‘No’ (see Creating/Editing Subscription Plans or Extension Settings).

To remove a product from the subscription, click the Remove active link next to the chosen product. 

To edit the options and/or quantity of the product, click on the corresponding Edit active link. You will be redirected to the Product page, where necessary changes can be made in a known way. Once done click on the Update Subscription button to apply the changes. The extension will check if the newly-arranged configuration is available in the requested quantity. In case of a negative result, a notification on thereof will appear on the Product Page. You will have to reconsider the configuration of the product options and/or its quantity and click on the Update Subscription button again.

Example of product editing within a subscription

In the example below complementary items were added to the product, and the quantity was changed from 1 to 5.

In case of a positive result, two scenarios are possible depending on the settings in the Subscription Editing section of the configuration of the extension:

  • The changes are applied and you are redirected to the Subscription Profile page, where a respective success message is shown. The changes will be applied to all subsequent orders of the subscription.
  • A popup emerges asking "How would you like to apply the changes?" and suggesting two alternatives for choice: "Permanently" or "For the next order only".  When "Permanently" is chosen the updates will be applied to all subsequent orders of the subscription (the above scenario). When "For the next order only" is chosen the updates will be applied only to the upcoming order of the subscription, afterwards the options of the product and/or its quantity will be rolled back to those of the previous delivered order of the subscription.

To change the subscription plan, click on the corresponding Edit active link. You will get redirected to the Change Subscription page. Choose one of the plan alternatives given on the page. You can choose only one alternative at a time and check its details, which get updated automatically below the list of the alternatives.

If the option fits you click the blue 'Save Subscription' button at the bottom to save your decision.

If you are not content with the given alternatives and do not wish to swap the subscription plan, click on the grey 'Back' bottom in the top right corner of the window.  

To change the date of your next payment, click on the corresponding Edit active link. You will get redirected to the Change Next Payment Date page. Type in the date in the 'mm/dd/yyyy' format or chose the desired one with help of the grey calendar icon to the right of the date field. Click the 'Save' button at the bottom to save your changes, or 'Back' to cancel and return to the Subscription Profile page.

To change the shipping address,  click on the corresponding Edit active link. You will get redirected to the Change Shipping Address page. Select a shipping method from the 'Please Select New Address' folding list. Alternatively, you may assign a new shipping address by clicking the '+New Address' button at the bottom. It will take you to the Address Book page where you will be able to enter all the necessary details and save them. On completing the new address, you will be automatically redirected back to the 'Change Shipping Address' page, where the newly entered address will appear in the 'Please Select New Address' folding list. To get back to the 'Subscription Profile' page click 'Back' in the top right. To save the changes, click on the Save Address button. You will then be redirected to the 'Subscription Profile' page.

To change the payment, click on the corresponding Edit active link. You will get redirected to the Change Payment Details page. Select a payment method from the list, type in the details (if any), and click Save Payment to confirm the changes. You will get redirected to the Subscription Profile page. Use the Back button in case you do not want to make changes to the method of payment. Click on the Back button will apply no changes and will take you to the Subscription Profile page.

 

 

 

Bundle Products Support

To create a Bundle Product follow Catalog → Products at the Add Product dropdown click on Bundle Product.

Configure a bundle product as a simple product.

Then, Sarp2: Subscription Configuration must be specified. 

Select the type of subscription: no, optional, subscription only.

Set up Use product advanced pricing and add Subscription options.

 

After all these steps have been completed click on the Save button.

After order confirmation, Customers can check information about subscriptions in My Account → My Subscriptions. Here Customers can see subscriptions' detailed data and manage it.

 

Supported Payment Methods

In addition to credit card (Braintree) payment, the extension also supports the following methods: Adyen Google and Apple Pay (starting version 2.11.0)Adyen credit card payments (starting version 2.10.0), NMI by Aheadworks (starting version 2.6.0)Cash on Delivery (starting version 2.5.0), Authorize.net credit card payments (starting version 2.5.0), Stripe credit card payments (starting version 2.4.0), Bambora APAC by Aheadworks (starting version 2.3.0.), PayPal via Braintree.

Please follow the official Magento 2 guide to learn more on how to enable payment methods in the store.

1. Enable the Cash on Delivery method for customers to pay for the subscription with cash on receipt of the product.

When the Cash On Delivery method is used, the Successful Billing email notifications are not sent.

2. To employ Authorize.Net, install the official module of the gateway and enable the integration patch. The latter is included in the installation package of M2 Advanced Subscription Products  (v 2.11.0). This will enable credit card processing, work with recurring payments, and updating information on payments (sampler). 

Earlier versions of the present extension do not require the integration patch. Moreover, the Deprecated Authorize payment method is still supported by Magento 2, and requires no separate module for installation.

How to install the latest version of an official Authorize.Net payment module.

 

When using Authorize.net make sure that each customer profile can include up to 10 payment profiles and up to 100 shipping profiles (this is an official restriction by Authorize.net).

3. To employ Stripe, install the official module of the gateway and enable the integration patch. The latter is included in the installation package of M2 Advanced Subscription Products (v 2.11.0). 

For earlier versions of the present module, no integration patch is required. 

For M2 ASP versions lower than 2.11.0

When installing the official Stripe module via Composer, run the following command:

composer require stripe/stripe-php:^7
3D Secure is supported for Stripe in version 2.11.0 of M2 Advanced Subscription Products.

There have been reported cases when payment cards request a 3D Secure password, even for recurring payments. 

4. Bambora APAC by Aheadworks payment is available via a stand-alone extension or as a bundled option at check-out on purchase the present extension (extra fees apply).

5. NMI by Aheadworks payment is available via a stand-alone extension or as a bundled option at check-out when purchasing the present extension (extra fees apply).

6. To employ Adyen, install the official module of the gateway and enable the integration patch. The latter is included in the installation package of M2 Advanced Subscription Products (v 2.11.0). The sampler is included.

Adyen 3D Secure 2 is supported (v 2.13.0)

7. To employ Adyen Google Pay and Adyen Apple Pay, install the official module of the gateway and the integration patch. The latter is included in the installation package of M2 Advanced Subscription Products (v 2.11.0). 

8. To employ Braintree, do one of the following:

  • For Magento 2.3.* install Gene module and enable the corresponding integration patch. The latter is included in the installation package of M2 Advanced Subscription Products (v 2.11.1). 
  • For Magento 2.4.* enable the corresponding integration patch (included in the installation package of M2 Advanced Subscription Products v 2.11.1) and make use of the in-built PayPal Braintree module. 

Do not install patches for payment methods you are not using. That is when there is no official module of the gateway installed on the store.

 

If Cart contains a subscription product, only those payment methods, which are supported by the extension, will be available.

To configure the methods of payment, refer to Stores → Settings → Configuration → Sales → Payment Methods. The official Magento 2 guide will be of help here.

 

Product Page

Report incorrect information

Still Have Questions?

Our customer care team is here for you!

Contact Us