Installation



You will require to install MageDelight Base Extension first. If it is not installed then please download it from https://www.magedelight.com/pub/extensions/magedelight-base.zip and unzip the package file into the root folder of your Magento 2 installation.



Before installing the extension, please make sure to Backup your web directory and store database


You will require to install MageDelight Base Extension first. If it is not installed then please download it from https://www.magedelight.com/pub/extensions/magedelight-base.zip and unzip the package file into the root folder of your Magento 2 installation.

Root Directory is - "app/code/magedelight/#YourExtensionName#"

  • Unzip the extension package file into the root folder of your Magento 2 installation.
  • Connect to SSH console of your server:
    • Navigate to the root folder of your Magento 2 setup
    • Run command as per below sequence,

      php bin/magento setup:upgrade

      php bin/magento setup:di:compile

      php bin/magento setup:static-content:deploy

      php bin/magento cache:clean

  • log out from the backend and log in again


If you are using Magento 2.3 or later then you do not need to activate license. Extension will be activated with silent activation mechanism and does not require activation keys to be entered manually.   


Pause, Cancel, and Edit Subscription Buttons would get disabled in such a scenario: If the customer has a daily recurring cycle of product and also if admin has set allowed To Update Profile Before in 'N' days then it will freeze subscription modifications by customers before defined days and will never satisfy the condition to show the buttons.

Backend Configuration (Admin side)


Once you install and set up the extension license key (refer extension installation guide). You need to configure the extension and setting it up as per your business needs. Below are extension configuration options,

                                                                                                                                   

  • Enable Subscription: Option to disable/enable the subscribe now extension feature.
  • Allowed Customer Group For Subscription: Select the customer group to enable subscriptions for specific customer groups. You can select multiple customer groups.
  • Not Allowed Customer Group Message: Add label for specific customer groups which shows for Subscriptions products only.
  • Allow Guest & Not Allowed Customers to View Subscription: Option to disable/enable guest customers to view subscription products.
  • Auto-register guest when checkout with subscription product: Option to disable/enable to auto register guest customer on the checkout page.
  • Allow Guest to Add Product to Cart: Option to disable/enable guest customers to add products.
  • Manage Subscription Interval: The admin can create different subscription intervals. This would be the combination of interval type and number of intervals and set Interval label for each interval offset.
    • Interval type: Day, Week, Month, and Year.
    • Number of intervals: Numeric positive integer values.
    • Interval Label: Admin can give interval label with regional language i.e. Interval type could be = Month, Number of intervals = 1 label could be Every Month/Once in a month
  • Maximum Order Failed: It can hold numeric positive integer values. To define maximum payment failure allowed to customers. Hence, if the recurring order fails, the order won’t be placed but the subscription profile will be continued. On the next occurrence script will try to place an order for the customer, till the maximum payment failure is allowed. After maximum failed occurrence, the recurring profile will get suspended.
    If maximum payment failure is set to zero (0) or is empty,then there is no limit for suspension of subscription profile.

    Pause, Cancel, and Edit Subscription Button would get disabled in such a scenario: If the customer has a daily recurring cycle of product and admin has set allowed To Update Profile Before is set to 5 days then it will never satisfy the condition to show the buttons.

  • Dynamic Price: Option to enable/disable current product price.If set "Yes",current product price will be considered in recurring orders. 
  • Send Reminder Of Occurrence Before: The next occurrence reminder email will be sent before the number of days defined here. It should be greater than allowed to update the profile before value.
  • Send E-Wallet Topup Reminder Before: Define days to send e-wallet top-up reminder email
  • CRON JOB Frequency: Define CRON Frequency to generate orders for subscription profiles. Values could be daily, weekly, or monthly. Daily is the suggested option.
  • CRON JOB Start Time: Define CRON Start Time to generate orders for subscription profiles.

  •     Select Payment Gateway: You can select the payment gateway you like to use for your subscription also enable payments in the sales → payment method.


  • Select Auto Shipping Method:  If set yes, will take the lowest cost from the shipping method on subscription plans.
  • Select Shipping Method:  Select shipping methods allowed for orders with subscription products or subscription plans.
  • Free Shipping For Subscription:  If set yes, will free shipping for all recurring orders and ignore shipping cost for the shipping method selected.


  • Allowed Maximum Quantity To Subscribe Per Product: You can set a limit on subscribing quantity for per product or Leave a field blank/zero wuld be considered as unlimited
  • Allow customers to change subscription products (Available with Pro): If set to "Yes, customers will have the option to change their subscription product,also the dropdown will exclusively list only subscription products which are under placed order template.
  • Allow To Update Profile Before: You can set a limit on customers for updating their profile. It will freeze subscription modification by customers before defined days.
  • Allow to Skip Subscription: You can give controls to customers if customers can skip product subscriptions.
  • Allow To Pause Subscription: You can give controls to the customer if the customer can pause the product subscription
  • Allow To Cancel Subscription: You can give control to the customer if the customer can cancel the product subscription.
  • Allow To Update Billing Frequency: If set to yes, the user will update the billing cycle(s) from their subscription(s). The next occurrence cycle will be counted from the day of billing frequency is updated.
  • Auto Update Next Occurrence Date On Frequency Change: If the option "Yes" is selected, the subscription occurrence date will be updated to the current date and the billing frequency will be reset accordingly. If the option "No" is selected, the next occurrence date will remain unchanged until the next billing cycle.
  • Allow To Update Billing Address: You can give control to the customer if the customer can update their billing address or not.
  • Allow To Update Shipping Address: You can give control to the customer if the customer can update their shipping address or not.
  • Allow One-Time Product with Subscription Orders (Available with Pro): Option to disable/enable one-time products added with the subscription order. If set to yes then you must have an active subscription with a login account. ( Allows only non-subscription product )


  • Subscription Email Sender: Option to select the suitable department for sending emails to customers.
  • Send New Subscription Email? : Option to disable/enable new Subscription order details email sent to customers. 
  • New Subscription Template: Option to select the suitable templates for the new subscription.
  • Send New Subscription Email Copy To: A copy of every new subscription email will be sent to the addressees provided here.
  • Send Subscription Update Email? : Option to disable/enable Subscription order update emails sent to customers.
  • Subscription Profile Update Template: Option to select the suitable templates for updating the profile.
  • Send Subscription Update Email Copy To: A copy of every subscription update email will be sent to the addressees provided here.
  • Send Payment Failed Email? : Option to disable/enable payment failure emails sent to customers.
  • Payment Failed Template: Option to select the suitable templates for the failed payment.
  • Send Payment Failed Email Copy To: copy of every payment failed email will be sent to the addressees provided here.
  • Send Subscription Reminder Email? : Option to disable/enable Subscription reminder emails sent to customers.
  • Subscription Reminder Template: Option to select the suitable templates for the email reminder.
  • Subscription Reminder Email Copy To: copy of every subscription reminder email will be sent to the addressees provided here.
  • Send E-Wallet Topup Reminder? : Option to disable/enable E-Wallet Topup Reminder emails sent to customers.
  • Send Subscription Renew Email? : Option to disable/enable Subscription order renewal emails sent to customers.
  • Send Subscription Order Email?  : Option to disable/enable new Subscription orders emails sent to customers. If set yes, the Customer would receive the email of the particular subscription profile order.


  • For No Subscription: You can set the label for a single order with a maximum length of 25 characters.
  • For Subscription: You can set the label for a recurring order with a maximum length of 25 characters.
  • Subscription Product List Page Text: You can set the label for a recurring product on the list page.
  • Enable Summary block on cart page: Option to disable/enable the. summary block.
  • Header Summary Text: You can set the label for the header summary text.
  • Summary Text: You can set the content text for the summary block.
  • Allow One-Time Product with Subscription Order (Available with Pro): You can now add a label to the button of a one-time product on the cart page.


  • Enable Merge Order: Option to disable/enable the merge order setting.
  • Validate Qty: Option to disable/enable the validation of multiple product profiles into a single order.
  • Fail Order if Fail Addtocart: Option to disable/enable the fail order from the cart.


  • Default Chart: Select the chat type among the provided options to set as the default chart to be displayed on the dashboard.
  • Default Chart Period: Select default duration to show a chart of that duration on the dashboard.
  • Is Chart Multi Color: Select "Yes" if you want the chart to be displayed in multi-color. The default is selected as "No".


Subscription Templates


You will have full control over the subscription Template. You can manage the subscription template from Admin > Subscribe Now Pro > Subscription Templates

  • As shown in the above image you can find all subscripton template lists with all basic information. I.e. template name, product purchase option, status, etc.

New Subscription Template

  •  
  •  
  •  
  •  
  •  Frequency Defined By: You can select the repetition of the product which will be specified by the admin or customer from the drop-down list. But when frequency defined by is Admin,subscription cycle will conclude based on the max billing cycle specified. .
  •  
  •  
  • Subscription Information for Customers: You can choose a static block from the dropdown to display important details to customers.

 Subscription End By

  • By Date: Option to
  • By Cycles/Orders: Option to
  • Option to

 Billing Frequency

Admin can create different subscription intervals. This would be the combination of interval type and number of intervals and set Interval label for each interval offset.

  • Interval type: Day, Week, Month, and Year.
  • Number of intervals: Numeric positive integer values.
  • Interval Label: Admin can give interval label with regional language i.e. Interval type could be = Month, Number of intervals = 1 label could be Every Month/Once in a month.
  • Discount Type: The option to select the discount type will be Percent/Fixed.
  • Discount Value: You can set the Numeric positive integer values which will be calculated based on the discount type.

 Discounts

 Trials

  • Enable Trials:

Customer Control

  •  
  •  
  •  
  •  
  •  

  •  
  •  Allow To Update Billing Frequency:  If set to yes, the user will update the billing cycle from their subscription. The next occurrence cycle will be counted from the day of billing frequency is updated.
  •  Allow To Update Next Order Date: If set to yes, the user will update the order date from their subscription(s). The next occurrence will be counted from the date when the order is updated.
  •  
  •  

Assign Product

  • As shown in the above image you can find all product lists with all basic information. I.e. ID, name, SKU, price, etc. You can select the check box for the product and save it to assign for the template. 
  • Note : To unassign products from the template,the action should be performed at the individual product level


Product Level Subscription


You can manage the subscription product from Catalog> Products > Subscriptions Now Pro

  • Enable Subscribe Now: Option to enable/disable the product for a subscription.
  •  

Manage Subscriptions

You will have full control over the product subscribers. You can manage the subscription template from Admin > Subscribe Now Pro > Subscriptions

  • As shown in the above image you can find all subscriber lists with all basic information. I.e. customer details, product name, Subscription status, etc.

Manage Bulk actions

You can choose single or Bulk records and do below actions,

  • Bulk cancellation
  • Skip next occurrence
  • Pause Subscription
  • Resume Subscription
  • Cancel Subscription and
  • Activate suspended Subscription



Manage Subscription Detail Page

  • You can view the product subscription details with all the required informations. You can view all details with subscribed products, payment details and subscription details. Also, you can manage shipping and billing addresses as well.

Edit Product Subscription Profile

  • You will have full control over managing subscription profiles for customers. You can also prevent your customers from editing and modifying subscriptions themselves self and instead, you can hold the power to manage profiles on behalf of your customer. You can cancel, pause, and skip subscriptions. You can edit profiles for customers too.

  • With the edit profile you can update the subscription product quantity, discount code, billing period, shipping/billing address, and Shipping method.


Dashboard

The dashboard will show,

  1. Subscriptions
  2. Orders
  3. Amount
    Admin can set the type of chart and select the duration for the chart to be generated.
  4. Subscription Statistics
    1. Lifetime subscriptions
    2. Active, paused, complete subscriptions
    3. Active Subscribers
    4. Active trial subscriptions
    5. Total subscription orders among all the orders
  5. Recent subscriptions
  6. Trending subscription products



Reports

Product wise subscriptions

This section will display comprehensive details of all subscription products 

Customer wise subscriptions

This section will display comprehensive details of all subscription customers

Subscription Cycle

This section will display comprehensive details of all subscription cycles

Past Revenue

This section will display comprehensive details of past revenue reports

Future Revenue

This section will display comprehensive details of future revenue reports

Products Inventory Predications for Future Orders

  • Advance report to get details of future orders to be placed. This report will help merchants manage inventory to fulfill orders on time.


Subscription order reports 

This section have below 3 sub-menus. It will show details of orders in date wise, Tomorrows orders and missed orders

Date wise orders 

Tomorrows orders 

Yesterday's missed orders

Subscription Product reports 

It will show details of products in date wise

Date wise Products  

Frontend Functionality


Product Listing Page

  • After setting up subscription options for a product, the customer can easily subscribe to it from the front-end interface. If a product is available for subscription, you can add text to notify the customer about the subscription option on the product listing page.

Product Details Page

There could be different options available for subscription based on the product configured at the backend. Below are some of the examples,

Customers can define the subscription period:

  • This product has both options: a subscription and a one-time purchase.
  • Subscription frequency is set for every month.
  • The subscription start date is the 04 of every month
  • Subscription is unlimited until customers cancel the subscription
  • It has an initial fee of 5 for the subscription product.
  • It also offers a trial period for 2-time delivery with a trial amount of 5.
  • It offers a 4 percent discount based on the subscription frequency.


Subscription End By Date with Initial Fee:

  • This product has both options: a subscription and a one-time purchase.
  • Subscription frequency is set for every day.
  • The subscription start date is 05 December.
  • The subscription end date will be 05 April which will be defined by customers.
  • It has an initial fee of 5 for the subscription product.
  • It offers a 10 percent discount based on the subscription frequency.


Subscription End By Cycle with Trial:

  • This product has both options: a subscription and a one-time purchase.
  • Subscription frequency is set for every year.
  • The subscription start date is 05 December.
  • The subscription end cycle will be 04 orders which is defined by customers if the admin allows him/her from configuration.
  • It also offers a trial period for 2-time delivery with a trial amount of 5.

Pay using Wallet

  • eWallet can be used as a payment method. Buyer can load money into their eWallet and the amount will be deducted from their wallet balance. If the buyer doesn’t have an equal amount of balance as the order total then, the buyer’s available balance will be deducted and the remaining amount will be collected from a credit/debit card.

Pay using other payments 

You can use any offline/online payment methods also.


My Account > Subscriptions

  • You can manage your subscriptions by accessing the Subscription Profiles section in My Account. From there, you can search, sort, view, skip, pause, and cancel your subscriptions.




  • After clicking the view button, you will be able to see a summary of your subscription, including the product, payment, shipping method, addresses, past orders, and change logs. You can also skip, pause, cancel, or modify your subscription.

Rename Profile

You can rename the profile 


Modification for Subscription

  • You can modify the subscription frequency and next order date 

Change Product 

  • You can change the products using change product section and also quantity 


Add New Billing and Shipping Address

  •  You can update your billing and shipping addresses for product pickup and drop-off by adding a new address to the contact information form under Addresses.

Allow one time Product 


  • A new feature is added to the cart where you can add a non subscription product to the next subscription order. It will be a "one-time product"  that will be delivered with the next subscription.


  • You can manage all the functions for subscriptions mentioned above. One time product is added and it will be delivered with the next occurrence of your subscription.


  • After clicking the view button, you will be able to see the new product added and the subscription product.


  • You can modify one-time product through following actions such as increase, decrease or removal


API



Please use SWAGGER to get detailed information of parameters. Your URL looks like, i.e. rest/v1/subscriptions

List Subscriptions

/subscriptions

Get Subscription Details

/subscription/{subscriptionId}

Create Subscriptions

/subscription/create

Sample Data

{
"productSubscribers": {
"profile_id": "API_1",
"customer_id": "2",
"product_id": "1",
"subscriber_name": "John Doe",
"subscriber_email": "sample@magedelight.com",
"store_id": "1",
"payment_method_code": "cashondelivery",
"subscription_start_date": "2019-05-10",
"billing_period_label": "Daily",
"billing_period": "1",
"billing_frequency": "2",
"period_max_cycles": "5",
"billing_amount": "50",
"trial_period_label": null,
"trial_period_unit": null,
"trial_period_frequency": 0,
"trial_period_max_cycles": 0,
"trial_billing_amount": null,
"currency_code": "USD",
"shipping_amount": "2",
"tax_amount": "2",
"initial_amount": "2",
"discount_amount": "12",
"order_item_info": {
"options": {
"_1": "subscription"
},
"subscription_start_date": "2019-05-10",
"qty": "1"
},
"additional_info": {
"product_sku": "24-MB01",
"shipping_title": "Flat Rate - Fixed"
},
"subscription_status": "1",
"next_occurrence_date": "2019-05-12",
"last_bill_date": "2019-05-10",
"payment_token": "",
"base_currency_code": "USD",
"base_billing_amount": "39",
"base_trial_billing_amount": "3",
"base_shipping_amount": "2",
"base_tax_amount": "1",
"base_initial_amount": "2",
"base_discount_amount": "12",
"billing_address_id": "1",
"shipping_address_id": "1",
"is_trial": "0",
"shipping_method_code": "flatrate_flatrate",
"product_name": "joust",
"payment_title": "Cash on delivery"
}
}

Create Subscription from Order

/subscription/create-by-order/{orderId}

Skip Subscription

/subscription/skip

Pause Subscription

/subscription/pause

Resume Subscription

/subscription/resume

Cancel Subscription

/subscription/cancel

Update Subscription

/subscription/update

Sample Data

{
"subscriptionId": 101,
"modifiedby": 0,
"subscription": {
"qty": "1",
"subscription_start_date": "2019-12-25",
"md_savecard": "paymentToken",
"md_billing_address": "1",
"md_shipping_address": "1"
}
}

Product Details Page

You will get subscription details from Magento's default product API /products/{sku} get subscription data from "custom_attributes" node.

While posting data, you have to pass below subscription parameters from product details page,

  • Subscription Product Type: options[_1] with value "nosubscription" or "subscription"
  • billing_period
  • subscription_start_date

Demo


Click here to visit frontend.

Click here to visit backend admin panel.

FAQs


Click here to visit FAQs.

Support


Click here to raise a support ticket using your MageDelight account.

Additional Services


Click here to get the customized solution for this extension.



Thank you for choosing MageDelight!



  • No labels