User Manual - Advanced Subscription Products 3
- Installation, Uninstallation, License Keys, Upgrading, and Downgrading Guide
- Introduction to Advanced Subscription Products
- General Settings
- Creating/Editing Subscription Plans
- Subscriptions Management
- Subscriptions on Storefront
- Integrations
- Events for Marketing platforms
- Supported Payment Methods
- Stripe Payment Method
Installation, Uninstallation, License Keys, Upgrading, and Downgrading Guide
Installing M2 Advanced Subscription Products
NOTE: Please ensure that the Advanced Subscription Products module is installed before proceeding with the installation of add-ons. |
Refrain from installing packages for those payment methods you are not using. |
NOTE: If the store is using a firewall and not letting information from/to Advanced Subscription products, you need to add this IP: 64.23.153.101 to the IPs allowed by the firewall. |
Composer Installation
- 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:
- Login to your ssh console and navigate to your store folder:
cd path_to_the_store_root_folder |
- Run the following command to install the latest version of the extension:
composer require aheadworks/module-sarp3 |
if you need to install a specific version, run this command:
composer require aheadworks/module-sarp3:<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:
If you need to install a specific version, run this command (specify the version of the extension in <version>):
composer require aheadworks/module-sarp3:<version> |
Need to integrate M2 Advanced Subscription Products with a payment method or GraphQL?
Note: It is recommended to install only the payment method modules and compatibility modules that you’re going to use in your store.
General modules
Module Name | Official Module (Required!) | Description |
aheadworks/module-sarp3 |
core module, mandatory |
|
aheadworks/module-sarp2-graph-ql |
magento/module-graph-ql |
GraphQL support |
aheadworks/module-sarp2-reports |
Allows integration with Aheadworks Advanced Reports. |
|
aheadworks/module-sarp2-quick-view |
Allows clients to view subscription options in a pop up on category pages |
|
aheadworks/module-sarp2-customer-group |
Deprecated, allows moving customers to a certain group upon subscription purchase. |
Payment method modules
Note: Ensure the official module of the payment gateway you are using is installed.
Module Name |
Official Module (Required!) |
Description |
aheadworks/module-sarp2-aps |
magento/module-payment-services-paypal |
Adobe Payment Services support |
aheadworks/module-sarp2-stripe |
stripe/module-payments |
Stripe support |
aheadworks/module-sarp2-adyen |
adyen/module-payment |
Adyen support |
aheadworks/module-sarp2-paypal |
magento/module-paypal |
PayPal support |
aheadworks/module-sarp2-authorizenet |
authorizenet/magento-module-authorizenet |
Authorize.net support |
aheadworks/module-sarp2-authnetcim |
paradoxlabs/authnetcim |
Authorize.net support. Requires an additional module from Adobe Marketplace. |
aheadworks/module-sarp2-free-payment |
Free payment, enables admin to create a subscription with free trial for a client in the backend without specifying any payment details. Then the client should login and add their payment details until the trial period hasn't expired. |
|
aheadworks/module-sarp2-braintree |
gene/module-braintree |
Braintree support for Magento 2.3.X |
aheadworks/module-sarp2-braintree-by-paypal |
Suggests: paypal/module-braintree-core |
Braintree support for Magento 2.4.X |
aheadworks/module-sarp2-psigate |
meetanshi/magento-2-psigate-direct-payment |
PSIgate payment method support. Requires an additional module from Adobe Marketplace. |
aheadworks/module-sarp2-mollie |
|
Only credit card is supported |
- Enable the extension:
bin/magento module:enable Aheadworks_Sarp2 |
How to enable a specific payment method or GraphQL?
Note: Enable only the payment method modules for which you have installed the official payment gateway module and a compatibility add-on.
Proceed with a corresponding command (associated with the specific module you intend to use):
Module |
Command |
GraphQL |
bin/magento module:enable Aheadworks_Sarp2GraphQl |
Adyen |
bin/magento module:enable Aheadworks_Sarp2Adyen |
Stripe |
bin/magento module:enable Aheadworks_Sarp2Stripe |
Adobe Payment Services |
bin/magento module:enable Aheadworks_Sarp2Aps |
PayPal |
bin/magento module:enable Aheadworks_Sarp2Paypal |
AuthorizeNet |
bin/magento module:enable Aheadworks_Sarp2AuthorizeNet |
Authorize.net by ParadoxLabs |
bin/magento module:enable Aheadworks_Sarp2AuthNetCim |
Free Payment |
bin/magento module:enable Aheadworks_Sarp2FreePayment |
Braintree (for Magento 2.3.*) |
bin/magento module:enable Aheadworks_Sarp2Braintree |
Braintree (for Magento 2.4.*) |
bin/magento module:enable Aheadworks_Sarp2BraintreeByPaypal |
PSIgate |
bin/magento module:enable Aheadworks_Sarp2Psigate |
Mollie |
bin/magento module:enable Aheadworks_Sarp2Mollie |
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.
Want to use the Hyvä theme module? To install the Hyvä theme module, you need to install the module via composer using command:
|
To upgrade the extension:
- Update per module name:
composer update aheadworks/module-sarp3 |
- If needed, you can specify an exact version:
composer require aheadworks/module-sarp3:<version> |
Run the following commands to upgrade store, deploy it, and clean the cache.
bin/magento setup:upgrade --keep-generated |
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 |
Remember to confirm the Save request on exit.
Integrate License Keys
When the license for Advanced Subscription Products for Magento 2 is purchased and integrated into your project, four License Keys will be generated. One key is designated for production, while three are for testing environments. Each key allows you to connect one store with Advanced Subscription Products.
You can find these keys from My Account > My Projects and Licenses in the relevant project.
After installing Advanced Subscription Products, navigate to Stores > Configuration > Aheadworks Extensions > Advanced Subscription Products in your Magento Admin. In the Integration Details section, you'll find:
- License Key - insert the key from My Projects and Licenses.
Note: Utilize Test Keys for staging and the production key for the live environment. Test keys have limitations - only 10 subscriptions can be created and managed. |
- Magento Access Token - grants access to your Magento stores ( will be generated automatically)
- Bypass HTTP Authorization - set Yes for test keys. This bypasses HTTP Authorization commonly used in development mode/staging.
If set to Yes, two additional fields appear:
- HTTP Authorization Username - enter the HTTP Authorization username associated with the website.
- HTTP Authorization Password - enter the corresponding password.
Make sure to configure the settings correctly to avoid any issues. If HTTP Authorization is enabled on the store and Bypass HTTP Authorization isn't configured, the extension won't function correctly.
Please click the "Connect" button to connect your website with Advanced Subscription Products.
Remember to Disconnect your website each time during deployments.
Manage Keys During Deployments
If the key is already active on another store, inserting it on a new domain will trigger an error. When deploying from a stage server using test keys to production without clicking the disconnect button, an error will occur during setup:upgrade, resulting in a loss of connection and deletion of the public key stored in the database. A note will appear on all Magento pages, indicating the need to configure Subscription and Recurring Payments module.
What to do:
Change the key to another test or production key based on the data migration during deployment.
If you click Disconnect before deployment, then after deployment, click the Connect button to activate everything on the new server.
In short:
- When data has been duplicated after deployment, it's essential to insert a new key.
- During data migration, click Disconnect, and after deployment, click Connect.
Upgrade to M2 Advanced Subscription Products Version 3
Before initiating the upgrade process, ensure that your current Advanced Subscription Products Version 2 is at least 2.15.0 to avoid potential issues.
Please note that the upgrade is possible only through Composer. |
When upgrading to version 3, do not remove version 2.2x.x . You can upgrade to version 3 only from the current version of the Advanced Subscription Products extension.
To install the extension:
- Login to your ssh console and navigate to your store folder:
cd path_to_the_store_root_folder |
- Run the following command to install the latest version of the extension:
composer require aheadworks/module-sarp3 |
if you need to install a specific version, run this command:
composer require aheadworks/module-sarp3:<version> |
Next, register the extension:
bin/magento setup:upgrade |
Recompile the Magento store if you are in the Production mode:
bin/magento setup:di:compile |
Clean store cache, by running the following command:
bin/magento cache:clean |
Downgrade to Advanced Subscription Products Version 2
Note: Before downgrading, make sure to disconnect your License Keys to avoid any loss of data.
- Login to your ssh console and navigate to your store folder:
cd path_to_the_store_root_folder |
- Run the following command:
composer remove --no-update aheadworks/module-sarp3 |
Next, upgrade setup:
bin/magento setup:upgrade |
Recompile the Magento store if you are in the Production mode:
bin/magento setup:di:compile |
Clean store cache, by running the following command:
bin/magento cache:clean |
Uninstalling M2 Advanced Subscription Products
Please be very careful when uninstalling/disabling this module. This module uses a declarative DB scheme. Once the module is uninstalled the DB tables will be lost.
NOTE: Advanced Subscription Products for Magento 2 is a SaaS service, which means ALL subscriptions will stop processing once the module is uninstalled. |
- Disable the extension and the integration patches by executing the following commands:
bin/magento module:uninstall Aheadworks_Sarp2 |
Introduction to Advanced Subscription Products
General information
The Advanced Subscription Products is a Software as a Service (SaaS) solution that enables you to sell products through a subscription model on a Magento 2 store. Subscriptions are securely stored on our servers, ensuring optimal store performance.
Admins can easily create diverse subscription plans with Advanced Subscription Products, incorporating various fee types (trial, initial, % of regular), installments, payment schedules, subscription extension options, and more. These plans can be easily assigned to products, allowing customization according to each product's specific characteristics. The extension supports most types of products.
Admins can manage the subscriptions purchased with the help of specially-designed grids, and keep customers informed on any updates to their subscriptions with the help of configurable email notifications. Customers can add both subscriptions and one-off products to their cart. Subscriptions with the same shipping date, even from different orders, can be delivered together, saving on delivery costs. Additionally, customers can benefit from powerful subscription monitoring and editing options, accessible at any time.
Advanced Subscription Products comes with the following features:
-
- Editing options and quantity of products within the subscription: permanent or one-time-only editing;
- On-the-fly editing, extending and resuming 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, bundle, and downloadable products can be configured as subscriptions;
- Email notifications on updates to subscription payments and subscription status;
- Web API and GraphQL support;
- An option to apply the Lowest Possible Price for recurring orders.
Extension Logic
Initial setup:
- Configure general settings
- Create subscription plans
- Assign these plans to the products
Now, you're all set to start selling products as subscriptions.
Once set up and running, Advanced Subscription products create recurring orders on schedule, according to the Subscription plans. All subscriptions are securely stored on our servers, ensuring optimal performance without burdening your store's resources.
Each subscription is saved in the subscription profile.
A customer can have multiple subscriptions (subscription profiles).
Customers can manage their subscriptions in My Account > My Subscriptions on your site.
Not logged in customers receive a secure link to a special page where they can manage their subscriptions virtually to the same extent as registered customers.
Compatibility
Module Version | Magento Version |
As of version 3.0.0 | 2.4.4 - 2.4.6 |
The PHP version depends on your current Magento version. Please, refer to your Magento version release notes.
Advanced Subscription Products is Hyvä-compatible.
Integrations
- Reward Points
- Advanced Reports
- Company Accounts
- Add Free Product to Cart
- NMI Payment
- Web API
- GraphQL support
Known issues
- Currently, checkout with multiple addresses is not supported.
- Downloadable products with $0 price and multiple custom options are known to work incorrectly.
- 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 possible if your Magento store is of version 2.3.2.
- There have been reported cases when payment cards request the 3D Secure password, even for recurring payments made with Stripe.
- Product Price on the Subscription Profile page is not displayed correctly, when the subscription is purchased against a Tier price.
- After adding an item to the cart and creating an order, the initial fee price 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.
- 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.
- Products don't appear on the Category page with Bundle products. The issue is reproduced for a bundle product with the subscription type “Subscription only“. We recommend setting up products with the Subscription type “Optional” or disabling these products.
- Subscriptions made with the Mollie payment method are not merged due to Mollie's native behavior of sending a new payment token for each subscription.
General Settings
To configure the extension, go to Stores > Configuration > AHEADWORKS EXTENSIONS >Advanced Subscription Products. The configuration page comes in six sections:
Integration Details
In the Integration details section, you can activate our Magento 2 Subscription extension and connect it to your store - it’s an essential step for the extension to function.
More information in the Manage License Keys article.
General Settings
The General section includes the following parameters:
- Fallback Shipping Method - select the default shipping method for subscriptions: flat rate (fixed) or table rate (the best way). This shipping method will be used when the shipping method from the initial order cannot be applied. For example, if you have a setting to offer free shipping for the orders with total greater than $100: The initial order can contain more products and its total will be greater than $100, but a single recurring order can be less than $100. This is when the extension will use this backup shipping method.
- Enable Extension Log - set to Yes if you need to log subscription updates, as well as the actions of the Customer and Admin.
The logs are saved on the server in the text files and don’t contain any sensitive customer 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 paths of the log files are: - var/log/aw_sarp2/engine.log
- var/log/aw_sarp2/payment.log
- Use Product Advanced Pricing – set to Yes to use special, group and tier prices to calculate the prices of the subscriptions.
How Advanced Pricing options affect subscription prices?
When Use Product Advanced Pricing is set to Yes the following takes place:
- Initial Fee Price
The Initial Fee Price of a subscription remains unchanged, Advanced Pricing options do not affect initial fee prices.
If you are planning to make discounts on the total price of a subscription, including its Initial Fee Price, consider configuring a Cart Price rule.
- Trial Period and Regular prices
When the Trial Period and/or Regular prices of a subscription are set as percent (%) of the original price, these percent values are applied to the amounts of the Advanced Pricing options to calculate the Trial Period and Regular prices. Rounding is then applied to the resulting amounts, if set in the settings of the plan.
Formula
Trial Period Price = Advanced Pricing * Trial Percent
For example:
Advanced Pricing = $50
Trial Percent = 10%
Trial Price Calculation: $50 * 10% = $5
Formula
Regular Price = Advanced Pricing * Regular Percent
For example:
Advanced Pricing = $50
Regular Percent = 50%
Regular Price Calculation: $50 * 50% = $25
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.
For example:
Advanced Pricing = $50
Regular Price = $25
Regular Price ($25) < Advanced Pricing ($50)
Subscription Price will be $25.
The fixed Trial period 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.
Learn more about Advanced pricing of products in the official Magento 2 user guide.
- Apply Lowest Possible Price on Recurring Orders - enable this option to ensure that customers receive the best available price for their subscription products. When enabled, all Discounts, Cart Price Rules and Advanced Pricing active on the day of a new charge will be applied, ensuring the lowest price is used. Please note: the option Apply Lowest Possible Price on Recurring Orders is only for native Magento Cart Price Rules, Catalog Price Rules, Advanced Pricing.
Here's how recalculations occur when various options such as discounts, Advanced Pricing, and Apply Lowest Possible Price on Recurring Orders are available for an order during charge generation.
Example 1: Plan Discount Only Conditions: Joust Duffle Bag costs $100. Plan discount: 25% Calculation of Subscription Price: $100 - 25% = $75.99 (because Price Rounding is set up to XX.99). |
When Advanced Pricing is enabled from the backend, then the Subscription Plan discount is applied on top of the Advanced Pricing.
Example 2: Plan Discount + Advanced Pricing Conditions: Joust Duffle Bag costs $100. Advanced Price: $90 Plan discount: 25%. Calculation of Subscription Price: $90 - 25% = $67,99. |
Example 3: Plan Discount + Advanced Pricing + Apply Lowest Possible Price on Recurring Orders Conditions: Joust Duffle Bag costs $100. Advanced Price: $90 Plan discount: 25% Cart Price Rule discount: 50% Apply Lowest Possible Price on Recurring Orders: Enabled Calculation of Subscription Price: Cart Price Rule discount > Plan discount (50% over 25%), then the system chooses the best price. So the Subscription Price for the subsequent payment is $90 - 50% = $45 |
Note: An option to Apply Lowest Possible Price on Recurring Orders works for subsequent subscription payments that are made automatically according to the plan (except for the very first order - initial order).
For the initial order the discount set in the Cart Price Rule is applied on top of the plan price.
Example 4: Plan Discount + Cart Price Rule (for initial order and recurring orders) Conditions: Joust Duffle Bag costs $100. Plan discount: 25% Cart Price Rule discount: 50% Apply Lowest Possible Price on Recurring Orders: Enabled Calculation of Initial Order Price: $100 - 25% - 50%= 37.99$ Calculation of Recurring Order Price: Cart Price Rule discount > Plan discount (50% over 25%), then the system compares discounts and chooses the best price. $100 - 50% = $50 |
And vice versa, when Plan discount is greater than Cart Price Rule discount, then Cart Price Rule discount is ignored and Plan discount is applied to the product price.
- Disable Guest Checkout - If the option is set to No (by default), guest checkout will be available for subscription products. If it is set as Yes, a popup will come up on the screen and ask for registration or authorization. Pay attention that if the Magento option Allow Guest Checkout is set to No, guest checkout will be unavailable in both cases.
- Out of stock handling – the feature allows you to manage what happens when a product in a subscription order is out of stock:
- Suspend Subscription – if a product is out of stock, the entire subscription will be suspended until the product becomes available again.
- Skip out of stock products and recalculate totals – this option skips the out-of-stock item in the subscription order and recalculates the total based on the available products. The subscription continues without interruption for the rest of the products.
Scheduler
The Scheduler section has the following parameters to set:
- Merge Same-Day Subscription Orders - set to Yes to group subscriptions with the same delivery date and time (within a cron run) into single orders (so that customers can save on shipping);
How are the same-day subscriptions merged? The options are applied to subscriptions of shippable products with 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 a default shipping method for subscription orders (the option above). Merging subscriptions is only possible for registered users. The same payment method should be applied for subscriptions, and customers should have their credit card details saved in their account. Subscriptions made with the Mollie payment method won't be merged. |
- Number Of Attempts to Charge Failed Subscription - a dropdown to select the number of daily retries for charging a subscription fee in case of failure (numeric values 1-10).
- Payment Delay Handling - a dropout to set how to manage the dates of subsequent orders if there's a delay in payment for current order:
- Shift Following Orders (default) - when a payment is delayed, future orders are automatically rescheduled based on the new payment date (i.g. if a payment expected on Monday is processed on Wednesday, future orders will occur on Wednesdays).
- Mantain Schedule - despite a delayed payment, this option keeps future orders on the original schedule (i.g. if a payment due on Monday is processed on Wednesday, subsequent orders will still take place on Mondays as initially planned).
Product Page
The Product Page section contains the following settings:
- Subscription Plan Selector - decide between the two modes of Subscription Plan Selector as it will appear on the storefront page: Radiobutton or Dropdown;
Radiobutton
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). HTML is supported;
- Subscription Plan Display Style - 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)
Classic switcher
Advanced switcher
- Subscription is Selected by Default - When enabled, the default plan will be automatically selected upon opening the product page. If no default plan is set, the first plan will be selected 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”.
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}”.
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
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 to send email alerts for successful subscription billing, or Disable Magento 2 newsletter subscription success email notifications;
- 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;
- 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;
- Failure Alerts For Admin Template - the email templates for admin about billing failure;
- Subscription Created Email Template - the email template for admin about created subscriptions;
- Subscription Canceled by Admin Email - enable/disable email alerts about canceled subscription (by Admin);
- Subscription Canceled by Admin Template - the email template for canceled subscription alerts (by Admin);
- Subscription Canceled by Customer Email - enable/disable email alerts about canceled subscription (by Customer);
- Subscription Canceled by Customer Template - the email template for canceled subscription alerts (by Customer);
- Send “Upcoming Billing Reminder” Email in - the number of days before the next billing when the corresponding email reminder must be sent. Set to 0 to disable the notification. Notifications will not be sent for subscriptions with a billing cycle shorter than the specified number of days.
- Next Billing Email Reminder Template - the email template for next billing reminders;
- Send Secure Link to - automatically generate a secure link and send it to customers via email, allowing them to view subscription details without logging in. This feature can be enabled for all customers, only guests, or disabled altogether. Use the {secure link} variable to include the link. Note: If secure links are allowed to guest users only, a regular link to subscription is sent, and users should sign in to access it.
Notifications are sent in bulk on each cron launch. This includes notifications for subscriptions canceled by both the Admin and the Customer. |
Magento enables sending invoice emails to customers. Simply navigate to the required invoice in Sales > Invoices and click on Send Email.
Notifications for free trial subscriptionsVariables used: {customer name}, {product name}, {subscription ID}, {secure link}, {store details}, {total amount}. First notification that announces the customer subscribed successfully: Dear {customer name} You have successfully subscribed to {product name}. Your subscription ID is {subscription ID}. You can access your subscription by following this link {secure link}. If you need any assistance, please feel free to contact us at {store details}. Second email flow - in case subscription was created from backend with ‘Free Trial’:
Please note: in case the secure link is allowed for guest users only then we send regular link to subscriptions and users should be forced to sign in. |
Subscription Editing Settings
The 'Subscription Editing' section allows configuring the following parameters:
- Switch Subscription Plan - by choosing 'Yes' you will allow registered buyers to swap active subscription plans at any time they wish.
When switching to a new plan, any pending payments under the old plan are canceled. The first payment for the new plan is scheduled for the same date as the next payment under the old plan. Subsequent payments for the new plan will follow the new plan's payment schedule.
Example:
Plan 1:
Regular Payments = 5
Membership = Yes
Repeat - daily
Start date = May 1
Plan 2:
Trial Payments - 3
Regular Payments = 7
Membership = Yes
Repeat - weekly
The customer subscribed to Plan 1. After two payments, including the initial fee, three remain, with the next due on May 3rd. They switched to Plan 2. Upon switching, pending payments under Plan 1 are canceled, and the first payment under Plan 2 is scheduled for May 3rd, maintaining the same payment date. Trial payments are skipped.
Proration is not supported at the moment.
- Edit 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.
- Enable Next Payment Date Editing - by choosing 'Yes' you will allow registered buyers to edit the date of next payment related to an active subscription at any time they want.
- Enable Next Payment Date Editing for Services - set this option to "Yes" to allow registered shoppers to edit the date of the next payment date for subscription plans that are set to "Services" mode. When a client reschedules the payment date for a subscription to a later time, the 'Services' mode will remain active during this period.
- Earliest Available Payment Date (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).
- Enable Product Editing - choose 'Yes' to allow registered shoppers to edit the product options and/or the quantity within a subscription.
- Enable One-time Product Editing - set 'Yes' to enable registered users to edit product options and quantity within subscriptions, with the choice to apply changes permanently or to the next order only.
When "Enable Product Editing" is set to No the "Enable One-time Product Editing" setting is not available and hidden from the list of settings.
The options "Enable Product Editing" and "Enable One-time Product Editing" determine how products within a subscription can be edited: either permanently or for the next order only (one-time). Here's what each mode entails:
- When "Enable Product Editing" is enabled (set to Yes) and "Enable One-time Product Editing" is disabled (set to No), any changes made by customers to product options or quantity will be permanently accepted for all future orders within the subscription.
- If both configuration options are enabled (set to 'Yes'), customers will have the choice between both modes. They will encounter a popup upon completing updates to the subscription, where they can select either mode. Opting for the "For Next Order Only" mode in the popup means that any changes made to the product configuration or quantity within the subscription will only apply to the upcoming order. Subsequent orders will follow the settings of the previously delivered subscription.
If a customer makes multiple updates to a subscription in the One-Time mode between two subsequent orders (for example, Nth and N+1st), and each time selects the "For the next order only" option, they will receive the next order (N+1st) based on the most recent changes made. However, after receiving the N+1st order, all changes to the product options within the subscription will revert to their state as per the previously received order (Nth).
- Enable Subscription Cancellation – set to ‘Yes’ to allow customers to cancel/resume subscriptions by default. This value can be overridden for each subscription plan on the Plan page on Backend. When set to “No”, the Cancel/Resume buttons are not displayed on the My Subscriptions grid.
- Enable Adding To Nearest Subscription - set to 'Yes' to allow customers to add one-off and subscription products from the cart to the nearest subscription (to save on shipping). This displays an 'Add to Nearest Subscription' button on the cart page and mini-cart modal, allowing customers to easily include items in their upcoming subscription orders.
- Enable Adding To Subscription - set to 'Yes', this feature enables customers to add a new subscription to an existing one under certain conditions. These conditions include having a subscription that matches the selected plan on the product page. If the customer has multiple subscriptions with this plan, they will be prompted to choose the specific subscription to which the new product will be added.
- Enable Skipping Product in Next Payment - set to ‘Yes’ to allow customers to exclude a particular subscription product from their next subscription payment.
Quick View
In the ‘Quick View’ section, you have the option to enable product previews directly on the category page. The following fields are available for configuration:
- Enable Quick View on Category Pages - by setting Yes, a small eye icon is added next to subscription products. When customers click on it, they can instantly view product details in the popup window, select options, and add items to their cart without needing to visit the product page.
- Tooltip for Quick View Icon - define the message to display in a tooltip when users click or hover over the eye icon, providing guidance or additional information about the Quick View functionality (default is empty). HTML formatting is supported.
- Quick View Content - select the elements to be shown in the popup window upon activation:
- Image and price
- Image, price and short description
- Show all
Creating/Editing Subscription Plans
- Subscription Plans Grid
- Creating/Editing a Subscription Plan
- General Settings
- Storefront Description
- Trial Period Schedule
- Regular Period Schedule
- Additional Pricing Settings
- Automatic Subscription Renewal Reminder
- Examples of Subscription Plan Settings
- Adding Subscription Plans to Products
- Adding subscription plans to individual products
- Adding subscription plans to bundle products
- Adding subscription plans to simple bundle products
- Adding subscription plans to grouped products
- Adding subscription plans to products in bulk
- Configuring Free Shipping for Subscriptions
- How to configure free shipping for subscriptions
- Free shipping for products with optional subscriptions
- Using Coupons for Free Shipping
- Sample cases and scenarios for subscriptions and free shipping
- “For matching items only” explained
- Adding Free Product to Subscription
- Adding Discounts to Subscriptions
Subscription Plans Grid
Having configured the main settings of the extension, proceed to create subscription plans for products. Go to Sales → Advanced Subscription Products 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;
- Plan Name - the descriptive name of the subscription;
- Status - the status of the subscription (enabled/disabled);
- Initial Fee - the indicator of an initial fee price set for the subscription (yes/no);
- Trial Period - the indicator of a trial period set for the subscription (yes/no);
- Number of Regular 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;
- Services Mode– set Yes to automatically enable an extra cycle when the subscription comes to an end.
What is services mode?
Services differs from physical subscriptions by providing access to exclusive content, privileges, and community engagement rather than tangible products. Unlike standard subscriptions, services mode offers an automatic renewal cycle, saving buyers from the hassle of resubscribing when their membership expires.
- Subscription Renewal Enabled – Yes if the subscription can be extended.
With the 'Actions' box above the grid, you can manage your subscription plans one by one or in bulk.
Creating/Editing a Subscription Plan
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. When customers switch plans, the new settings apply automatically. |
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 seven sections: General, Storefront Description, Trial Period Schedule, Regular Period Schedule, Additional Pricing Settings, and Automatic Subscription Renewal Reminder.
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;
- 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;
- Enable Subscription Cancellation - set to ‘Yes’ to allow customers to cancel/resume the subscription plan. The Use value from Config Settings check-box enables the default value set in the Configuration. When customers are not allowed to cancel the subscription, the Cancel and Resume buttons are not displayed on the My Subscriptions grid.
Storefront Description
The section comes with the following parameters:
- Store View - the selector of a store-view;
- Plan name on storefront - 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.
If no name is specified for a store view, the default plan name configured in the General Settings will be used. |
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; Setting to No allows specifying a different period length. For example, you can configure your subscription plan with a 15-day trial period followed by monthly payments.
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; You can create infinite subscription plans by leaving this field empty or setting it to 0.
- Repeat Payments - the frequency of payments selector with options: Daily, Weekly, Monthly and Every (further configurable).
- Send “Upcoming Billing Reminder” Email in - 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);
- Services Mode - 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).
Additional Pricing Settings
The Additional Pricing Settings section allows the following:
- Set the Regular Payment Price (as a % of one-off product price). Can be overridden on the product level;
- Set the Trial Period Payment Price (as a % of one-off product price), if the trial period is enabled. Can be overridden on the product level;
- 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).
Automatic Subscription Renewal Reminder
The Automatic Subscription Renewal Reminder section shows the following options for subscription plan configuration:
- Enable Subscription Renewal Email - the Yes/No toggle to enable or disable the option to send email with the offer to extend the subscription (both on the front and backend);
- Days Before/After Subscription End - set the whole numeric value to determine when to send the renewal email to the customer. This can't exceed the length of the regular period. Use negative numbers to send the email before the subscription ends, zero for the day of the last billing, and positive numbers for days after the last billing.
- Renewal Email Template - a drop-box to select an email template for the notification (AW_Offer to Continue Subscription Template by default).
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}}
|
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);
Services Mode - 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 Period 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. 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 Options section. This is where you can configure subscription plan settings for the given product.
First, define the subscription model (use the Purchase Type box for this purpose):
- One-Time Purchase Only (No Subscription) - the product will be available only as a one-off purchase;
- One-Time Purchase or Subscription - 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? Admin is able to configure the subscriptions for complex (parent-) products only. It means that a block before Subscription Options will be available only for parent products, and it will be hidden for child products. 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:
- Default Plan - If there are multiple subscription plans available for a product, you can designate a default plan that will be automatically selected.
- 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 Price - The amount of the initial fee, if enabled in the Plan Settings. By default, 0.00. Set the initial fee price manually.
- Trial Period Price - 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.
Tick the Use plan settings checkbox for automatic (default) trial and regular fees calculation. Tick it away to alter the values of the fees.
- Regular Subscription Price - 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.
What price will be displayed on the product page? Regular subscription price 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
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.
What happens if a subscription product is edited or deleted? SKU and Name The product name and SKU are taken from the initial order. If the SKU or name is later changed in the product, it won’t be reflected in the subscription. The subscription will continue to function properly with the original name and SKU. However, if the customer edits the product within the subscription (e.g., quantities or variants), your edits to the product name and SKU will then apply. Price If the subscription price is changed, it will be applied only after the previously scheduled payment has been processed. Use case:
However, if the customer changes their shipping address or payment method between steps 1 and 2, the new price will take effect on the step 3. If the price of the product is changed: In this scenario, the scheduled payment will reflect the new price, but the customer won't see it until they make changes to their subscription, such as adjusting the next payment date or when the payment is processed. Out of Stock / Disabled / Deleted If the subscription includes one or several products, and at least one of them is Out of Stock / Disabled / Deleted status, then the subscription is canceled after several attempts to make a payment. Change a child product to another one in configurable or bundle When you change a child product within a configurable setup, the subscription will continue functioning, but the quantity will be deducted from the original product that was replaced. If you delete the original product, the subscription will fail during the next payment. But if product variants or quantities are edited within the subscription, the new product will be substituted, and its quantity will be utilized instead. When modifying bundle products in an active subscription, you can only adjust the item quantity and specify whether the changes apply permanently or just to the next order. The contents of the bundle itself cannot be changed. When editing a subscription (e.g., adjusting the plan, payment method), the product itself isn't replaced. The modification affects only the price. |
Adding subscription plans to bundle products
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, in the Subscription Options section, select the Purchase type: One-Time Purchase Only (No Subscription), One-Time Purchase or Subscription, Subscription Only.
Set up Use Product Advanced Pricing and add Subscription Plans.
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.
Adding subscription plans to simple bundle products
To create a Simple Bundle Product, follow Catalog → Products, and in the Add Product dropdown, click on Bundle Product.
Then, at the New Product page use yes\no toggle to Switch to Simple Bundle
The pop-up alert will appear. Click “continue” to confirm your action.
Note: After switching to Simple Bundle, If you have already had bundle options added, they will be deleted.
Scroll down to the Bundle Items section and add the required bundle items.
Set up Use Product Advanced Pricing and add Subscription Plans.
After that, scroll down to the Subscription Options section. In the option Purchase type you can choose preferred type of the purchase:
- One-Time purchase Only (No subscription required)
- One-Time purchase or Subscription
- Subsсription Only
Then, decide whether to use Product Advanced Pricing or Config Settings (Use yes/no toggle or check box) and add the most suitable Subscription Plans.
After all these steps have been completed, click on the Save button.
Adding subscription plans to grouped products
To create Grouped Products, navigate to Catalog → Products → Add Product → Grouped Product. Once created, open the grouped product and scroll down to the Subscription Options section.
Here, similar to simple products, specify the Purchase type: One-Time Purchase or Subscription, Subscription Only, or One-Time Purchase Only (No Subscription).
Next, set up Use Product Advanced Pricing and add Subscription Plans.
Note that for grouped product types, prices are taken from the plan settings. It's not possible to set a fixed price due to the nature of grouped products. Therefore, select relevant subscription plans or create new ones specifically for grouped products, where you'll specify the subscription price.
Note: Grouped products don’t have initial fee.
Once all these steps are completed, click on the Save button.
Customers can change how many of each item they want from a grouped product. Then, the system calculates the total for those items and applies the discount from the subscription plan.
Example: Groped product: Yoga Set (a Strap for $14, a Brick for $5, and a Roller for $19) Customer order: 2 Straps, 1 Brick, and 0 Rollers Subscription Plan: 20% from price for trial and 50% from price for regular payment (no rounding) Trial price calculation: (2 x $14 + $5) x 20% = $6.60 Regular price calculation: (2 x $14 + $5) x 50% = $16.50
|
When a customer adds a grouped product to the Cart, each item of the grouped product is displayed separately with the Subscription status.
After order confirmation, customers can check information about subscriptions in My Account → My Subscriptions. Here, they can view detailed subscription data and manage it accordingly.
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 Plans.
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. Additionally, with Advanced Subscription Products, you can use the "Subscription" condition to specify discounts related to subscription products in cart price rules.
- Free Shipping dropdown: No, For matching items only, For shipment with matching items.
Thereby, with M2 Advanced Subscription Products 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 are 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). |
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 extension 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 the 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):
- XXX in Cart/Subscription -> fixed rate = $0 in Cart and for all subsequent orders
- 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
- 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)
- 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):
- XXX in Cart/Subscription -> FedEx = $0 in Cart and for all subsequent orders
- 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
- 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)
- 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):
- XXX in Cart/Subscription -> FedEx = $0 in Cart and for all subsequent orders
- XXX subscription and XXX product in Cart -> FedEx = $0 in Cart -> After placing the order, FedEx = $0 for all subsequent orders by the subscription
- 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)
- 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)
Adding Free Product to Subscriptions
To learn how to configure the rules go to Add Free Product to Cart for Magento 2 user manual.
Dashboard
To customize the rules of the promotional campaigns and monitor their performance navigate to Marketing > Add Free Product to Cart > Rules.
This is where you will find some financial metrics related to the performance of the campaigns and the Scenarios grid.
To visualize how to Add Free Product to Subscription consider the following example of promo campaign:
The rule conditions on the backend:
Campaign: Offer the Affirm Water bottle or Sprite Foam Yoga Brick for just 1 USD to customers who intend to buy a Travel Set subscription.
Scenario: Buy X Get Y
Rule: Every time the customer adds a Travel Set subscription to the cart, the store will offer one of the promo items for just 1 USD (Affirm Water bottle or Sprite Foam Yoga Brick). These promo items should be offered via a popup, and not auto-added to the cart.
Application of the scenario by the customer from the storefront
On the Storefront we can see the Promo text displayed next to the price of the item related to the promo offer.
Once the promo item is added to the cart the promo product is offered to customer via popup.
Once the customer adds the promo product to cart, in the Cart Summary they will see the subtotal, the discounted price and the total order price.
Application of the scenario by the store admin from the backend
When the store admin adds a product that falls under the promo scenario to the subscription, the Add Promo Products button appears.
If the store admin decides to add a promotional item, a pop-up containing those items will appear.
Note: While applying the scenario from the backend, the "Add promotional product" button and popup with promo items will appear even if the admin has selected the auto-add product to cart option when configuring the rule. |
The selected promo item will be added to the subscription.
The spend X get Y and buy X get Y free scenarios follow the same flow. |
When applying the Coupon scenario, the general steps remain the same, but a special coupon code must be entered:
- by the customer at the checkout on the storefront;
- by the store admin on the backend.
Adding Discounts to Subscriptions
The extension also enables merchants to apply discounts to subscription products through Cart Price Rules.
To set this up go to Marketing > Promotions > Cart Price Rule. Here you can either select an existing rule or create a new one.
After configuring rule conditions, scroll down to the Actions section.
In the Apply to Subscriptions dropdown menu, select one of the following options:
- No –The rule applies only to one-time purchases;
- Subscriptions and One-Time Purchases – The rule applies to both subscription products and one-time purchases;
- Subscriptions Only –The rule applies exclusively to subscription products.
If you select anything other than No, additional options will appear:
- Apply to Subscription Orders Starting From – Define the first subscription order to receive the discount. For example, if set to "3," the discount will begin with the third subscription order;
- Apply to Every Nth Order – Set the interval for the discount. For instance, selecting "2" will apply the discount to every second subscription order;
- Number of Orders to Apply – Specify how many subscription orders will receive the discount. To apply the discount indefinitely, enter "0".
Once the discount is configured, click Save.
Subscriptions Management
- Monitoring & bulk-editing subscriptions
- Browsing & editing individual subscriptions
- Editing next order date
- Editing subscription plan (subscription page)
- Editing product quantity
- Manage subscription status in customer’s account
- Create free trial subscriptions from backend
- Cancel free trial subscription
- Retry failed transaction
- Apply Lowest Possible Price on Recurring Orders
- Customer group rules
- Placing a subscription order from backend
Monitoring & bulk-editing 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 → Advanced Subscription Products by Aheadworks → 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;
- 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 Date - the date of the next order;
- Next Order Grand Total - actual total for the next order;
- Products - the products assigned to the subscription;
- Reason – the reason for subscription cancellation/suspension;
- Last Updated by Customer – The date and time of the most recent update made by the customer;
- SKUs – The stock-keeping units of the products in 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 canceled. Instead, those subscriptions will be marked as made by guests. They can later be merged if the merging conditions (see Extension Settings section) 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. |
In the Columns filtering option, the store admin can customize the columns displayed in the subscription grid. When clicked, it opens a dropdown menu where you can select or deselect various columns to show or hide in the grid.
Click Cancel to discard the changes you’ve made. Click Reset to return to default column settings.
The Export option allows store admins to download filtered data from the subscription grid in either CSV or Excel XML format.
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.
Editing next order date
Merchant can Edit Next Order Date from the backend, for instance, when the Customer is going on holiday and will not be at home during shipment period. To change click on the Edit link right after the next order date.
After clicking the new page appears where you need to select the new next order date. Click on the Save button. Back button - returns to the Subscription Profile ID page without any changes. When the Merchant clicks on the Save button message appears “ Are you sure you want to save the changes?” OK - save changes. Cancel - back to the previous page.
Editing subscription plan (subscription page)
The Merchant can in a few clicks manage the Subscription Profiles and help Customers in their requests to edit profiles. Click on the Change link, a new page appeared.
On the new page, The Merchant can select the Subscription Plan using the dropdown menu. There are only plans in the dropdown that are connected to the main subscription product of the profile. After clicking on one of the buttons:
- Save button - saves changes and returns to the Subscription Profile ID page.
- Back button - returns to the Subscription Profile ID page without any changes.
Editing shipping address
The Merchant can change the addresses from the backend and manage the Subscription Profiles and help Customers in their requests to edit profiles. Click on the Edit button near the Shipping Addresses, new Page appears.
The Merchant can choose an address in the Dropdown menu. If the Merchant clicks on the enter link then the link is directed to the Customer’s Account Page / Addresses Tab.
Editing product quantity
You can change the product amount from the backend. Click on the Edit link on the product grid of the Subscription Profile.
On the new page you can configure Product and Quantity. From here apply changes: Permanently or For the next order only. Also here you can change product quantity. Do not forget to click Save.
Note: When modifying configurable products, the admin can adjust not only the product quantity but also parameters like size and color.
However, for bundle products in an active subscription, you can only modify the item quantity and choose whether the changes are permanent or apply to the next order. The bundle contents cannot be changed.
Manage subscription status in customer’s account
You can use a link to the customer's account in their subscription profile. After clicking on the link you will navigate to the customer's account.
Depending on the status of the subscription, a few actions are possible herein:
Active subscriptions can be canceled. 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 "Canceled", and the Cancel Subscription option will change to Resume Subscription.
Canceled subscriptions can be resumed. To renew a subscription, click on Resume 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 Resume action? For services mode, the action allows resuming subscriptions while the services mode is still active. When the services mode period is expired, the option to resume will not be displayed. For physical products, there is no time limit and the subscription with the Canceled status can be resumed 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).
Create free trial subscriptions from backend
Admins have the option to offer free trial subscription orders with a zero total, which can be a powerful tool for marketing purposes.
To set up a free subscription trial from the backend, admins can follow these steps:
- Configure the desired trial plan as usual.
- Assign the trial plan to products where it should be available.
- Proceed to generate an order using the standard workflow: select or create a new customer, choose a product, and configure it accordingly.
This allows admins to place orders on behalf of customers without requiring their payment details.
NOTE
The payment will be valid until the subscription is with zero total. Respectively if we set up a free trial for 6 months, orders will be with zero total for six months and all this time this payment will be valid.
If a customer wants to switch to it - it is not possible since the payment is not available for selection to customers.
Cancel free trial subscription
Admin can cancel free trial subscriptions in case no valid payment details are input, after the trial period and three attempts to charge them fail.
After creating a Free subscription trial for customers from the backend using Free Trial payment and when the trial period expires, so the system makes three attempts to charge the subscription and then automatically gets canceled. If the customer did not input his valid payment details in between the tries. Customers will get an email notification about subscription cancellation.
Retry Failed Transaction
The 'Retry Failed Transaction' functionality enables the admin to retry failed subscription payments from the backend. If the subscription status is Suspended due to the payment error (e.g. expired card) or due to the out of stock products, then the ‘Retry Failed Transaction' button appears on the subscription page in the admin panel.
Once the transaction is successful, the subscription status will be updated to Active, and all subsequent payments will be processed as usual. However, if the transaction fails, you can attempt to make the payment again.
Apply Lowest Possible Price on Recurring Orders
Option Apply Lowest Possible Price on Recurring Orders allows merchants to offer the lowest price that can currently be applied to the product.
The system only uses Discounts and Cart Price Rules that are valid at the moment of charge generation.
Please note: Apply Lowest Possible Price on Recurring Orders is only for native Magento Cart Price Rules, Catalog Price Rules, Advanced Pricing.
Example: Joust Duffle Bag costs 100 dollars. Plan discount is 25%, so Subscription Price is 75.99 dollars (because Price Rounding is set up to XX.99). |
When Advanced Pricing is enabled from the backend, then The Subscription Plan discount is applied on top of the Advanced Pricing.
Example: If Advanced Price (for ex. Special Price) is 90 dollars, then Subscription Price is 90$-25% = 67,99$. |
When Advanced Pricing is set to Yes and Apply Lowest Possible Price on Recurring Orders is set to Enable at the same time, then the Subscription Price for the recurring order will be calculated as follows:
Example: Special Price is 90$, Plan discount is 25%, Cart Price Rule discount is 50% Cart Price Rule discount > Plan discount (50% over 25%), then the system chooses the best price So the Subscription Price for the subsequent payment is 90$-50%=45$ |
In case the discount is set up with Cart Price Rules, then the system will choose the best price: either Product Price + Subscription Plan Discount or Product Price + Cart Price Rule Discount.
An option to Apply Lowest Possible Price on Recurring Orders works for subsequent subscription payments that are made automatically according to the plan (except for the very first order).
This means that the first order is considered initial. And the discount set in the Cart Price Rule is applied on top of the plan price.
Example of payment for the first order: Joust Duffle Bag costs 100 dollars. Plan discount is 25%, so Subscription Price is 75 dollars. Cart Price Rule discount is 50%, so the total Subscription Price for the first payment should be - 100$-25%-50%= 37.99$ |
Subscription Price for subsequent payments according to the plan will be calculated as follows:
Example: Joust Duffle Bag costs 100 dollars. Plan discount is 25%, Cart Price Rule discount is 50%. Cart Price Rule discount > Plan discount (50% over 25%), then the system compares discounts and chooses the best price. So Subscription Price for the subsequent payment is 100$-50%= 50$ |
Otherwise, when Plan discount is greater than Cart Price Rule discount, then Cart Price Rule discount is ignored and only Plan discount is applied to the product price.
Customer Group Rules
Customer Group Rules grid
This is where you may view, and edit the group rules as well as add new ones.
The Rules are allocated into a table with 6 columns: Rule ID, Rule Name, Status, Priority, SKU, and Product Name, which represent some most important details of rule settings. The table is easily customizable and searchable with the 'Columns', 'Default View', and 'Filters' active elements on the top right of the page.
You may enable, disable, or delete available Rules individually or in bulk. Tick the boxes next to the chosen segments on the left of the table, click the 'Actions' folding list, and opt for an operation.
To add a new segment click the 'Add New Rule' button on the top right of the page. These operations will take you to the Edit/New Rule page.
New Rule and Edit Rule Pages
The New Rule and Edit Rule pages look identical, the name suggests the operation you are to do with the Rule. This is where you may alter or add all the details of the segment and define groups for the rule.
The image below reflects some basic details you are suggested to provide for each rule. They are as follows:
- Enabled - enable or disable the rule here;
- Name - provide a name for the rule;
- Description - give details on the rule;
- Group - determines the specific customer segment affected by the rule;
- Product - specifies the item the rule applies to;
- Group to assign - define the group of customers to which the rule will be assigned
- Priority - the decimal numeric for sorting the overlaying rules.
Prior settings of the rule sorted, you may now proceed to the Subscription Conditions block of the rule.
Conditioning the rule
The Conditions block of the Edit/New Rule page allows customizing rules.
To add a condition, click the green "Cross" button and choose an attribute for conditioning. For further configuration proceed to the 'ALL', 'TRUE', 'IS' parameters to alter them in accordance with your rule.
To delete a condition click on the Delete (red cross) button.
Once the rule is set and saved, you will be able to check the customers who match the filter at the bottom of the page in a separate grid in the Affected Customers tab.
As soon as the rule is created and the toggle switch is enabled, the extension automatically moves Customers fit this rule to the appropriate Group.
Placing a Subscription Order from Backend
Admins have the ability to place a subscription order on behalf of a customer. To do so, navigate to Sales > Subscriptions > Create New Subscription. On the New Order page, select the desired products and a customer for the order. Finally, choose a valid payment method to complete and submit the order.
From this page, you can open the order which was created by Advanced Subscription Products for Magento 2. Under the section “Items Ordered” in the Product column, find a line: “Subscription Profile ID: XXXXXXXXX” right below the SKU. “Subscription Profile ID: XXXXXXXXX” - is a link to a corresponding Subscription Profile page.
Note: Refunds for subscription payments and refunds for non-subscription products are the same (they have the same workflow), and the subscription payment refund will not affect the subscription in any way (it will not be canceled and subsequent payments will continue to be created). |
Subscriptions on Storefront
- Subscriptions on Product Pages
- Quick view from the category page
- Subscriptions in Shopping Cart
- Guest Order Success Page
- Adding Products To Subscription
- Adding Products to Nearest Subscription
- Subscriptions in My Account
- Resume Subscription
- Extend Subscription
- Edit Subscription
- Skip Products From The Next Delivery (Period)
- Hide canceled subscriptions
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.
What will I see in the description of a subscription?
- There are two alternatives of expanding on Regular payments:
- 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} |
- 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:
- 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} |
- 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. |
Quick view from the category page
Quick View feature allows customers to view and subscribe to a product from the category page without having to navigate to the product page.
After clicking on the ‘Quick view’ icon, a pop-up will appear allowing you to view subscription plans, product reviews, add the product to the cart/wishlist/compare list, or add the subscription to an existing profile (if possible). Related and Up-Sells products will not be displayed.
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. |
Guest Order Success Page
Store Admin can update Order Success Page for guest customers. After the purchase, the Guest Customer on the Order Success Page will see the secure link to their Subscription Profile - “Your subscription profile is: 00000000X”.
Adding Products To Subscription
Adding Products To Subscription option allows customers to add a new subscription to their existing subscription plan, if it meets a number of conditions:
- Adding a subscription product to an existing subscription plan is only possible for registered users.
- The subscription must have the an Active status so that another subscription can be added to it.
- The option is applicable to physical subscriptions. If a subscription was originally purchased with a combination of physical and virtual products, it is possible to add another physical product to the subscription.
- Subscription and the subscription product being added must have the same plan and scope.
- If the subscription plan includes an initial fee, it will not be charged twice upon adding a new product to the profile. However, it will be summed up in the subscription profile.
- When adding a subscription product with a different currency (€) to a subscription that was originally made in another currency ($), the price of the new product will be converted to the currency of the subscription ($) accordingly.
After clicking on the 'Add to Subscription' button, a pop-up will appear containing all relevant active subscription profiles with limited subscription information:
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.
‘Add to Nearest Subscription’ button in the mini-cart:
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;
- Plan - the name of the subscription plan;
- Trial End 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;
For monthly subscriptions created on the 31st, the next payment date will be on the 31st or the next day in months with 30 days. For example, if the order was placed on October 31st, the next payment will occur on December 1st.
- Next Payment Amount - the fee to be paid within the next payment;
- Actions - the active link to apply action to the subscription (Edit, Resume, Extend).
Resume Subscription
To resume a subscription with the Canceled status, simply click on the "Resume" action link found in the Actions column.
To view canceled subscriptions, a Show canceled subscriptions box should be checked.
What is the expiration time for the Resume action? For services mode, the action allows resuming subscriptions while the service mode is still active. When it is expired, the option will not be displayed. For physical products, there is no time limit and the subscription with the Canceled status can be resumed at any time, even when the initially scheduled next payment date is already in the past. |
Customers are not able to resume subscriptions for which “Allow Customer to Cancel Subscription” is set to ‘No’ (It can be set up in the extension configurations under the "Subscription Editing" section). |
Extend Subscription
For expired subscriptions (when final billing has been applied to the subscription) the Extend active link will become 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 open. 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 the settings 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. 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 Canceled 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 From Subscription 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 Plan 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 'Save Changes' 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 the 'Back' button in the top right corner of the window.
To change the date of your next payment, click the Edit link next to the Next Payment Date.
You will get redirected to the Change Next Payment Date page. Type in the date in the 'dd/mm/yyyy' format or choose 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.
Additionally, if you want to skip the upcoming payment, simply click the Skip This Date button. This allows you to skip the next delivery in the subscription cycle. For example, in a monthly subscription, if your next payment date is October 1st, it will shift to November 1st.
After selecting the Skip This Date option, a popup will appear, confirming the new next payment date. Click Yes to confirm the change or No to cancel.
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 'Add 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 save the changes, click on the Use Selected 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.
If the payment attempt fails for any reason, customers can retry failed payments by logging to their account > My Subscriptions > Subscription’s edit page > Payment Details . Here they will find the “Retry” button, which allows them to instantly make another payment attempt.
When a customer has multiple subscriptions made with the same credit card, it's possible to edit payment information in bulk for all these subscriptions. This feature is currently available for Adyen, Mollie, and Stripe. It streamlines the process by allowing customers to make changes without having to edit each subscription individually.
When editing payment details, customers are presented with a pop-up allowing them to choose which subscriptions the changes apply to. They can opt to apply the edits to This subscription only or to All connected subscriptions (made with the same credit card, sharing the same token ID and payment method name).
Skip Products From The Next Delivery (Period)
The Skip Next Delivery option (for physical products) or Skip Next Period option (for virtual products) enables customers to exclude specific subscription products from their upcoming delivery or billing cycle. To skip a product, simply click the "Skip Next Delivery (or Skip Next Period)” button and confirm the action in the popup. Once skipped, the first/regular payments will be recalculated accordingly, and the button will change to "Include in Next Delivery".
- It is possible to skip either physical or virtual products;
- The Skip Next Delivery option won't appear if there are only one or two products in the profile, one of which is a one-off product;
- Customers can cancel the skip at any time before the next payment date by clicking the Include in Next Delivery button;
- Once a product is skipped, it cannot be edited.
Hide canceled subscriptions
Show canceled subscriptions option enables customers to hide canceled subscriptions from their subscription management page, displaying only active subscriptions. When the checkbox is selected, canceled subscriptions will appear in the grid; otherwise, only active subscriptions will be shown.
Integrations
- Reward Points for Magento 2
- Company Accounts for Magento 2
- Advanced Reports for Magento 2
- Simple Bundle Products for Magento 2
- NMI Payment for Magento 2
- Add Free Product to Cart for Magento 2
Reward Points for Magento 2
The extension is integrated with Magento 2 Reward Points, which enables customers to earn points from purchases containing subscriptions and to spend points towards orders with subscriptions.
It is advisable you update Reward Points to the version 1.6.1 to ensure explicit compatibility with Advanced Subscription Products. |
Company Accounts for Magento 2
The integration with Magento 2 Company Accounts (starting from version 1.8.0) gives the store Admin access to manage Roles and Permissions for subscriptions, as well as regulate actions carried out by child-accounts regarding items/subscriptions.
To access Roles and Permissions, navigate to My Account > Roles and Permissions tab.
The following fields are available:
- Role Name: Company Admin/User should provide a name for the role (required field).
- Order Limit per Role (visible only to the Company Admin): Allows the Company Admin/User to set thresholds for order subtotals. Users of this role require approval if the subtotal exceeds the set limit.
- Permissions for the Role: The Company Admin/User decides the access levels for the role: Company Information, Company Users, Company roles, Orders, Subscriptions, and History logs. Access levels can be set for viewing, adding, and editing purposes.
If a company user lacks access to the company's subscriptions, they can only view and edit their own subscriptions.
If a company user with active subscriptions is deactivated by a company admin, the admin or users with appropriate permissions can view and edit all subscriptions. However, subsequent payments will not process, and subscriptions will be marked as "Suspended." |
Company admins or users with sufficient permissions can only choose shipping addresses saved by the customer who originally purchased the subscription; adding their own or selecting another user's address is not possible. |
Store Admins and authorized users can monitor actions taken by child accounts on items/subscriptions via the History Log tab. Entries are sorted by the "Last Updated" column by default.
Logs are cleared during cron execution (frequency set in Configuration - Daily, Weekly, Monthly). If History Log is disabled, records are not cleared even if cron has been run.
When the History Log is enabled, new columns "Updated At" and "Updated By" are added to the My Subscriptions grid.
Advanced Reports for Magento 2
When the Advanced Subscription Products is in integration with Advanced Reports for Magento 2, it becomes possible to overview the statistics.
If you haven't installed the Advanced Reports module, please refrain from installing module-sarp2-reports package.
Note: Please, make sure you also install and enable module-sarp2-reports, which will provide the integration between Advanced Subscription Products and Advanced Reports modules. |
Dashboard: Analytics & Metrics
Dashboard reporting is a visual representation of your company's key performance indicators. It is an ability to have all valuable information and metrics concerning subscription business in one place. Merchants can quickly overview all subscription business statistics without opening too many tabs and getting deeper into each report.
From the backend go to Reports > Advanced Subscription Products by Aheadworks > Dashboard.
This page consists of charts and metric widgets. Admin can change each widget by clicking on the triangle at the top right corner of the widget.
The extension offers analytical reports to provide you with some meaningful information on the performance of the subscription business.
1. Initial vs Recurrent Sales Report
The Initial Vs Recurrent report shows the Initial and Recurrent Orders Sales dynamics.
This graph features data against such metrics as Initial Orders, Initial Qty,Initial Total, Initial Invoiced, Recurrent Orders, Recurrent Qty, Recurrent Total and Recurrent Invoiced.
For simple segmentation, the reports come with filtering options. Those include the store view and customer group filters.
The date range can be selected in the flexible calendar:
In the provided calendar, you can specify any date or date range either by clicking the required dates or by indicating the interval manually. Once the date has been selected, click Apply to refresh the report page.
Below the graph, you can see the reporting table providing metrics of Initial and Recurrent Orders.
2. Growth Rate Report
The Growth Rate Report shows an increase in the number of subscriptions compared to the initial period.
This report features data against such metrics as Subscriptions at the Beginning, Subscriptions at the End and Growth Rate.
Subscriptions at the End – total amount of all active subscriptions at the end of the period.
Subscriptions at the Beginning - total amount of all active subscriptions at the beginning of the period.
Growth Rate - the percentage change of new subscribers within a specific time period. If a quantity of subscriptions at the beginning equals “0“ (zero), then the growth rate will always be “0%“ (because “0” is in the denominator of the formula).
For simple segmentation, the reports come with filtering options. Those include the store view and customer group filters.
Below the graph, you can see the reporting table providing metrics of Subscriptions at the Beginning, Subscriptions at the End and Growth Rate.
Total data show arithmetic average result of selected period. Total data depends on a selected period in the calendar (it is not an arithmetic average result in column).
3. Churn Rate Report
The Churn Rate Report shows churn rate from the selected start date to the selected end date.
This report features data against such metrics as Subscriptions at the Beginning, Subscriptions at the End, Churn, Churn Rate.
Subscribers at the Beginning - the number of subscribers at the beginning of the selected period.
Subscribers at the End - the number of subscribers at the end of the selected period.
Churn - amount of canceled/expired subscriptions.
Churn Rate - the percentage of increased or decreased subscriptions.
The Total statistics below chart reflects data from the period selected in the calendar and these results don’t depend on data in the grid.
For simple segmentation, the reports come with filtering options. Those include the store view and customer group filters.
Below the chart, you can see the reporting table providing metrics of Subscriptions at the Beginning, Subscriptions at the End, Churn, Churn Rate.
Data in the grid reflects data from the selected period aggregated by week, month, quarter, year.
The last row in the grid shows statistics from totals and it doesn’t depend on previous rows.
4. Number of active subscribers Report
Number of Active Subscribers Report shows the number of customers who have active subscription profiles at a certain period.
This chart features data against such metrics as Active Subscriptions, Active Customers, Average Subscriptions Per Customer.
Average Subscriptions Per Customer - number of profiles divided per number of customers.
Active Subscriptions - subscriptions for which payments are currently being processed.
Active Customers - customers who have (at least) one active subscription.
For simple segmentation, the reports come with filtering options. Those include the store view and customer group filters.
Totals data shows the arithmetic average result of selected period.
Below the chart, you can see the reporting table providing metrics of Active Subscriptions, New Subscriptions, Active Customers, Average Subscriptions Per Customer.
5. Average Revenue Per Customer Report (ARPC)
The Average Revenue Per Customer Report shows the total revenue generated by all customers during a certain period divided by the total number of customers.
This graph features data against such metrics as Total Subscriptions Revenue and Subscribers (Contributing to that Revenue).
Below the graph, you can see the reporting table providing metrics of Total Subscriptions Revenue and Subscribers (Contributing to that Revenue).
6. LTV Report (Lifetime Value)
Lifetime Value Report shows the revenue you earn from a customer, subtracting out the money spent on serving them.
This graph features data against such metrics as Churn Rate, Average Revenue Per Customer and Lifetime Value.
Churn Rate - the percentage of increased or decreased subscriptions.
Average Revenue Per Customer - the average amount received from one user per subscription.
Lifetime Value - an average amount that shows how much money each user brings until their subscription ends.
For simple segmentation, the reports come with filtering options. Those include the store view and customer group filters.
Below the graph, you can see the reporting table providing metrics of Churn Rate, Average Revenue Per Customer and Lifetime Value.
7. Monthly Recurring Revenue Report (MRR)
Monthly Recurring Revenue Report shows how much revenue subscriptions generate during each month. You can see if the subscription business is growing in terms of revenue and roughly estimate future sales based on the graph.
This graph features data about Total Recurring Revenue.
Recurring Revenue - total revenue from all subscription orders (including both recurrent and initial) in the period minus initial fee.
For simple segmentation, the reports come with filtering options. Those include the store view and customer group filters.
Below the graph, you can see the reporting table providing metrics of Total Recurring Revenue and Total Initial Fee.
8. Monthly Recurring Revenue Growth Report (MRR)
Monthly Recurring Revenue Report gives insights into the revenue generated from your subscriber base each month. In comparison with MRR Report, MRR Growth Report provides more detailed information regarding the growth and decline in monthly recurring revenue over time.
The MRR uses accrual accounting method which recognizes revenue when it is earned rather than when it is received. MRR isn’t equal monthly revenue from subscriptions, it is a specific metric that may correlate with it.
The report includes the following metrics:
- Reactivation - the revenue received from subscriptions that were previously canceled or churned but were reactivated during the month.
- Expansion - the additional revenue generated from existing customers, such as upgrades to their subscription plan or an increase in the quantity of products purchased.
- New - the revenue brought in by new customers who subscribed for the first time ever during the month.
- Churn - the revenue lost due to cancellations by customers.
Note: If a customer is charged during the month and then cancels, their churn will be attributed to the following month.
- Contraction - total reduction in Monthly Recurring Revenue compared to the previous month. This occurs when a customer remains subscribed but pays less due to a plan downgrade, discount, or reduced quantity of items in their subscription.
- Net MRR - the overall revenue growth or decline, calculated using the formula: Net MRR = Total Growth and Existing - Total Loss.
For simple segmentation, the reports come with filtering options.
Below the graph, you'll find a comprehensive reporting table displaying all the metrics described above along with two additional ones:
- Total Loss - this metric represents the overall reduction in revenue resulting from churn and contraction events.
- Total Growth - this metric reflects the total revenue growth generated from new subscribers, expansion, and reactivation.
Simple Bundle Products for Magento 2
When the Advanced Subscription Products is integrated with Simple Bundle Product, it simplifies the creation of bundle products by minimizing the number of configuration options. With this extension, store admins can create and add bundles to subscriptions without additional customization. Customers can now select only the quantity of already configured bundles and add them to their cart without any prior customization.
To create a Simple Bundle Product, follow Catalog → Products, and in the Add Product dropdown, click on Bundle Product.
Then, at the New Product page use yes\no toggle to Switch to Simple Bundle
The pop-up alert will appear. Click “Сontinue” to confirm your action.
Note: After switching to Simple Bundle, If you have already had bundle options added, they will be deleted
Scroll down to the Bundle Items section and add the required bundle items.
Set up Use Product Advanced Pricing and add Subscription Plans:
To do that, scroll down to the Subscription Options section. In the option Purchase type you can choose preferred type of the purchase:
- One-Time purchase Only (No subscription required)
- One-Time purchase or Subscription
- Subsсription Only
Then, decide whether to use Product Advanced Pricing or Config Settings (Use yes/no toggle or check box) and add the most suitable Subscription Plans.
After all these steps have been completed, click on the Save button.
Simple Bundle Products on the Storefront
Simple Bundle Items are displayed as a list, where each item is linked to its respective detail page.
All the modifications have already been made by store admins on the backend, so all that is required from the customer is to decide on the quantity of the simple bundle and add the product to the cart.
NMI Payment for Magento 2
NMI payments for Magento 2 extension, integrated with Advanced Subscription Products, ensures secure, fast, and user-friendly payment experience with a variety of settings using NMI gateway.
To learn how to configure NMI Payments follow the NMI Payment for Magento 2 user manual.
Thanks to the NMI Payment integration, while creating a new subscription order for a customer, the store admin will have two additional options when selecting payment methods:
- Select a previously stored card, which will be labeled as Stored Cards (Aheadworks Nmi) or any custom name given in one of the settings mentioned above;
- Enter a new credit card, which will be labeled as Credit Card (Aheadworks Nmi).
If a subscription order is created for a new customer, only the Credit Card (Aheadworks NMI) option will appear since the new customer has not yet saved any cards.
NMI payment integration on the storefront
When the Magento 2 Vault is enabled by store admin, the Save for later checkbox will be available during the checkout process. This option allows customers to save their credit card data for further use.
The saved card will be displayed at the checkout.
In addition to the checkout process updates mentioned above, the integration now allows customers to switch their payment method to NMI Payment directly from the My Subscriptions page on the storefront.
To make this change, customers should navigate to the My Subscriptions page and select the subscription they want to update by clicking the active Edit link.
Next, they should scroll to the Payment Details section and select the Edit option.
On the Change Payment Details page, customers can choose the Credit Card (Aheadworks NMI) option, enter their card information, and then click the Back button to return to the subscription details page.
Add Free Product to Cart for Magento 2
When the Advanced Subscription Products is integrated with the Add Free Product to Cart extension, store admins can set rules that allow them to provide free products or special discounts alongside subscription purchases, as well as use the subscriptions themselves as promotional items. These products can be either added to cart automatically or displayed to the customers via pop-up.
To learn how to configure the extension go to Add Free Product to Cart for Magento 2 user manual.
To customize the rules of the promotional campaigns and monitor their performance navigate to Marketing > Add Free Product to Cart > Rules.
This is where you will find some financial metrics related to the performance of the campaigns and the Scenarios grid.
To visualize how the integration with the Add Free Product to Cart extension works consider the following example of promo campaign:
The rule conditions on the backend:
Campaign: Offer the Affirm Water bottle or Sprite Foam Yoga Brick for just 1 USD to customers who intend to buy a Travel Set subscription.
Scenario: Buy X Get Y
Rule: Every time the customer adds a Travel Set subscription to the cart, the store will offer one of the promo items for just 1 USD (Affirm Water bottle or Sprite Foam Yoga Brick). These promo items should be offered via a popup, and not auto-added to the cart.
Application of the scenario by the customer from the storefront
On the Storefront we can see the Promo text displayed next to the price of the item related to the promo offer.
Once the promo item is added to the cart the promo product is offered to customer via popup.
Once the customer adds the promo product to cart, in the Cart Summary they will see the subtotal, the discounted price and the total order price.
Application of the scenario by the store admin from the backend
When the store admin adds a product that falls under the promo scenario to the subscription, the Add Promo Products button appears.
If the store admin decides to add a promo item, a pop-up containing those items will appear.
Note: While applying the scenario from the backend, the "Add promotional product" button and popup with promo items will appear even if the admin has selected the auto-add product to cart option when configuring the rule. |
The selected promo item will be added to the subscription.
The spend X get Y and buy X get Y free scenarios follow the same flow. |
When applying the Coupon scenario, the general steps remain the same, but a special coupon code must be entered:
- by the customer at the checkout on the storefront;
- by the store admin on the backend.
Events for Marketing Platforms
This section describes events that can be used for sending emails. Currently, only Klaviyo is supported.
If you have specific integration needs, please don't hesitate to contact us.
Klaviyo Setup
Follow these steps to configure events:
- Purchase Klaviyo Extension:
- Buy the product from Adobe Commerce Marketplace.
- Access Keys:
- Go to My Profile > My Purchases, open “Access Keys,” and copy your credentials.
- Configure Store Credentials:
- Navigate to your store’s root directory (/var/www/html/).
- Open the auth.json file and enter the copied credentials in the “username” and “password” fields.
- Install Klaviyo Extension:
Run the following command in the console:
composer require klaviyo/magento2-extension |
Follow up by running all necessary setup commands to complete the installation.
5.Install Required Add-ons:
-
- Install the following add-ons on your store:
- module-sarp3-events
- module-sarp3-events-klaviyo
- Install the following add-ons on your store:
- Create Klaviyo Account:
- Sign up for a test account at Klaviyo.
- Retrieve API Keys:
- In your Klaviyo account, go to Settings > Account > API Keys:
- Copy the Public API Key.
- Generate and copy the Private API Key (note that you can view this only once).
- In your Klaviyo account, go to Settings > Account > API Keys:
- Configure Klaviyo in Store:
- In your store’s admin panel, navigate to Stores > Configuration > KLAVIYO > General.
- Enable Klaviyo and enter the copied API keys, then save the changes.
- Setup OAuth Integration:
- Go to Stores > Configuration > KLAVIYO > Setup OAuth.
- Enter a name in the Integration Name field and save the settings.
- Activate Integration:
- In your store’s admin panel, navigate to System > Extensions > Integrations.
- Click Activate.
Events
Event name |
Event code |
Property |
Subproperty |
Property type |
Reference |
|
Subscription Created |
subscription_created |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
Upcoming Billing |
subscription_upcoming_billing |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
next_billing_date |
string |
dd/mm/Y |
||||
Billing Successful |
subscription_billing_successful |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
Billing Failed |
subscription_billing_failed |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
Subscription Cancelled |
subscription_cancelled |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
link_to_reactivate |
string |
|||||
Subscription Reactivated |
subscription_reactivated |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
Subscription Paused |
subscription_paused |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
Subscription Rescheduled |
subscription_rescheduled |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
old_payment_date |
string |
yyyy-MM-dd HH:mm:ss |
||||
new_payment_date |
string |
yyyy-MM-dd HH:mm:ss |
||||
Subscription Ended |
subscription_ended |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
link_to_reactivate |
string |
|||||
Orders Merged |
subscription_orders_merged |
|||||
subscriptions |
array |
Array of "SubscriptionDetails" objects |
||||
subscription_product_names |
array |
|||||
Changed Plan |
subscription_changed_plan |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
changes |
object |
|||||
from |
object |
"Plan" object |
||||
to |
object |
"Plan" object |
||||
Changed Address |
subscription_changed_address |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
changes |
object |
|||||
from |
object |
"Address" object |
||||
to |
object |
"Address" object |
||||
Changed Payment Method |
subscription_changed_payment_method |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
changes |
object |
|||||
from |
string |
|||||
to |
string |
|||||
Changed Products |
subscription_changed_products |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
changes |
object |
|||||
from |
object |
"Product" object |
||||
to |
object |
"Product" object |
||||
is_permanently |
bool |
|||||
Item Removed |
subscription_item_removed |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
item |
object |
"Product" object |
||||
Item Added to Nearest Delivery |
subscription_item_added_to_nearest_delivery |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
items |
array |
Array of "Product" objects |
||||
Item Added to Subscription Profile |
subscription_item_added_to_subscription_profile |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
items |
array |
Array of "Product" objects |
||||
Item Skipped |
subscription_item_skipped |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
item |
object |
"Product" object |
||||
Item Skipped: Undo |
subscription_item_skipped_undo |
|||||
subscription_details |
object |
"SubscriptionDetails" object |
||||
item |
object |
"Product" object |
Event object |
Property |
Subproperty |
Property type |
Reference |
SubscriptionDetails |
object |
|||
plan |
object |
"Plan" object |
||
products |
array |
Array of "Product" objects |
||
secure_link |
string |
Secure link to subscription profile |
||
addreses |
object |
|||
shipping |
object |
"Address" object |
||
billing |
object |
"Address" object |
||
Plan |
object |
|||
name |
string |
|||
is_initial_fee_enabled |
bool |
|||
is_trial_period_enabled |
bool |
|||
regular_repeat |
string |
|||
trial_repeat |
string|null |
|||
regular_repeat_in_days |
int |
|||
trial_repeat_in_days |
int|null |
|||
subscription_start_date |
string |
yyyy-MM-dd HH:mm:ss |
||
initial_fee |
float|null |
|||
number_of_regular_payments |
int |
|||
number_of_trial_payments |
int|null |
|||
number_of_trial_payments |
int|null |
|||
regular_payment_amount |
float |
|||
trial_payment_amount |
float|null |
|||
is_service |
bool |
|||
currency |
string |
|||
Product |
object |
|||
ProductId |
int|string |
|||
ProductName |
string |
|||
SKU |
string |
|||
Quantity |
float |
|||
ProductOptions |
array |
Array of "ProductOption" objects |
||
ProductOption |
||||
label |
string |
|||
value |
string|int |
|||
Address |
object |
|||
first_name |
string |
|||
last_name |
string |
|||
middle_name |
string|null |
|||
country |
string |
|||
city |
string |
|||
region |
string |
|||
street |
string |
|||
postcode |
string |
|||
telephone |
string |
|||
UserProperties |
object |
|||
|
string |
|||
active_subscriber |
bool |
Has customer at least one active subscription |
||
active_subscriptions |
array |
Array of active subscriptions product names |
||
inactive_subscriptions |
array |
Array of inactive subscriptions product names |
||
active_plans |
array |
Array of active subscriptions plan names |
||
inactive_plans |
array |
Array of inactive subscriptions plan names |
Supported Payment Methods
- Cash on Delivery
- Stripe
- Bambora APAC by Aheadworks
- NMI by Aheadworks
- Adyen
- Adyen Google Pay and Adyen Apple Pay
- Braintree
- Authorize.net from ParadoxLabs
- Free Payment
- Adobe Payment Services
- Mollie
- PayPal Payflow Pro and PayPal Payments Pro
- PSI Gate
In addition to credit card (Braintree) payment, the extension also supports the following methods: Adyen Google and Apple Pay, Adyen credit card payments, NMI by Aheadworks, Cash on Delivery, Stripe credit card payments, Bambora APAC by Aheadworks, PayPal via Braintree, Authorize.net from ParadoxLabs, Adobe Payment Services, PayPal Payments Pro and PayPal Payflow Pro, PSI Gate, Mollie.
NOTE: Free trials are not available for those payment methods whose gates do not allow zero payments for usual Magento orders (Stripe, PayPal via Braintree and NMI). |
NOTE: If the payment attempt fails for any reason, customers can retry failed payments by logging to their account > My Subscriptions > Subscription’s edit page > Payment Details . Here they will find the “Retry” button, which allows them to instantly make another payment attempt. |
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 Stripe, install the official module of the gateway, enable the integration add-on and connect Stripe with Advanced Subscription Products. Follow this detailed instruction.
3D Secure is supported for Stripe in M2 Advanced Subscription Products.
There have been reported cases when payment cards request a 3D Secure password, even for recurring payments. |
3. 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).
4. 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).
5. To employ Adyen, install the official module of the gateway and enable the integration patch.
Adyen 3D Secure 2 is supported. |
6. To employ Adyen Google Pay and Adyen Apple Pay, install the official module of the gateway and the integration patch.
Adyen implementation Open Adyen backend and follow Developers > API URLs > Additional data settings. For correct work of the Advanced Subscription Products, the following checkboxes must be ticked: Card field:
Payment field:
|
7. To employ Braintree, do one of the following:
- For Magento 2.3.* install Gene module and enable the corresponding integration patch.
- For Magento 2.4.* enable the corresponding integration patch 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.
8. Authorize.net from ParadoxLabs
NOTE: We support Authorize.net only from the ParadoxLabs vendor. To integrate with ParadoxLabs, you need to install a separate module module-sarp2-authnetcim.
9. Free Payment provides free payment processing functionality for Advanced Subscription Products. Admin can create subscription orders with zero total as a free trial.
During the Free Payment method, the store Admin creates a subscription without adding sensitive payment information. Next, the Admin sends a link to the customer, allowing them to insert their card details and activate the subscription. This approach ensures compliance with PSI regulations.
To employ Free Payment, the following operations are expected:
- Install Advanced Subscription Products official module
- Install the add-on for integration with M2 Advanced Subscription Products *
* Add-ons are included into the installation package of the extension.
10. Advanced Subscription Products is integrated with Adobe Payment Services. To install Adobe Payment Services, you need to:
- Get the module from Magento Marketplace;
- Install the module via composer using command:
composer require magento/payment-services
- Please, make sure you also install and enable module-sarp2-aps, which will provide the integration between Advanced Subscription Products and Adobe Payment Services.
Learn more about Adobe Payment Services.
11. To employ Mollie, install the official module and connect it to your Magento 2 environment.
12. Advanced Subscription Products is integrated with PayPal Payflow Pro and PayPal Payments Pro.
- To enable this functionality, you need to install the module via composer using command:
composer require aheadworks/module-sarp2-paypal
- Logged-in customers, guests and administrators all have the ability to purchase a subscription using either PayPal Payments Pro or PayPal Payflow Pro.
- Only Credit Card is supported (when the payment is selected, it will be required to enter credit card details on the checkout directly).
13. PSI Gate payment method
The integration between the Advanced Subscription Products module and the third-party payment module PSI Gate streamlines subscription management and payments for your convenience. Follow these steps to ensure a smooth integration:
- Install and activate the PSIGate (version 1.0.2) payment module compatible with your platform.
- Configure PSIGate settings, ensuring compatibility and security measures.
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.
If you would like to integrate another custom payment method, it can be done via additional customization if that payment supports tokenization. So if you are interested in custom development, our team will help since we provide additional Customization service: https://www.aheadworks.com/magento-services/custom-development/ |
Stripe Payment Method
Advanced Subscription Products is integrated with the Stripe payment method.
Stripe is a secure and flexible payment gateway that allows businesses to accept payments online, offering benefits such as easy setup, support for multiple payment methods, and robust security features. |
To enable the integration, you'll need to connect the extension with Stripe. This is an easy way to enable Stripe to handle payments for your subscriptions, as it doesn't require special technical setup from your end; all technical aspects are already integrated into the extension. However, before you begin, a few steps should be taken.
Please note that even if you've previously set up Stripe for your store or used the Stripe add-on in Advanced Subscription Products Version 2, you'll still need to connect your Stripe account for Version 3 to enable the creation of new subscriptions. In this case, ensure that you connect to the Stripe account already set for your store.
To enable Stripe for Advanced Subscription Products, follow these steps:
- Install the official Stripe module and create a Stripe account if you haven't already.
- Install the add-on for Magento by running the composer command:
composer require aheadworks/module-sarp2-stripe
|
Then enable Stripe with the following command:
bin/magento module:enable Aheadworks_Sarp2Stripe
|
Next, register the extension:
bin/magento setup:upgrade
|
Recompile the Magento store if you are in Production mode:
bin/magento setup:di:compile
|
Verify that the extension is enabled:
bin/magento module:status
|
Clean the store cache:
bin/magento cache:clean
|
Log out and log in to the backend again.
- Connect your Stripe account with Advanced Subscription Products.
For it, in the Magento Admin panel, go to Stores > Configuration > Aheadworks Extensions > Advanced Subscription Products.
When you've finished all the steps above and connected your license keys, you'll see a new section called Payment Methods. Click on Stripe to proceed.
Select the Mode from the dropdown (Test mode for testing or Live mode for production), then click the Connect with Stripe button.
You will be redirected to your Stripe account to complete the onboarding process. Once done, return to the extension configuration.
You’ll find that the Connect button has been replaced with an information field indicating that the store is connected to Stripe. Don’t forget to Save Configurations.
- Finally, configure your specific settings for Stripe payment method in Stores > Configuration > Sales > Payment Methods.
FAQ
-
Where can I configure the Stripe payment method for my website?
You can configure the Stripe payment method in Stores > Configuration > Sales > Payment Methods > Stripe. Beforehand, ensure you've installed the Stripe add-on and connected Advanced Subscription Products with Stripe.
-
Do I need to follow the steps described above if I previously used Version 2 and everything was configured there?
Yes, you still need to connect Advanced Subscription Products to Stripe. Skipping this step will result in old subscriptions created with Stripe continuing to work, but new subscriptions will not be generated when the Stripe method is chosen.
-
If I already have a Stripe account, should I create a new one or use the old one?
If you've already set up a Stripe account on your website, for Advanced Subscription Products Version 3, you should continue using this existing account to ensure everything functions properly.
-
How can I get support with setting up Stripe for Advanced Subscription Products?
Contact us if you have any further questions or need help.
Already used our product?
We would appreciate your feedback. Please, leave a review.