Welcome to the Intershop Recurring Order Extension, an extension that provides the Recurring Order Service and corresponding REST APIs for your Intershop Commerce Management installation.
This release note provides important insight into product version details, dependencies, and comprehensive setup and configuration instructions to optimize your integration process.
This delivery and the accompanying documentation are valid for the following combinations of software versions:
ICM | PWA | Recurring Order Extension |
---|---|---|
12.1.0+ | 5.3+ | 1.0.0+ |
The PWA uses the REST API provided by the Recurring Order Extension to retrieve recurring order lists, details etc.
The table below provides information about the cartridges included in the package:
Cartridge | Description | Required |
---|---|---|
app_sf_rest_recurringorder | Contains the definition of the new major version of the Recurring Order Extension REST API 2.x.x to be used by the PWA to retrieve information and manage recurring orders. The cartridge is automatically added to the app-specific cartridge list of the application type:
| |
bc_recurringorder | Includes all basic functionality and business logic of the Recurring Order Service, and additional handlers, etc. |
|
bc_recurringorder_test | Integration Tests for the cartridge bc_recurringorder, currently only query tests. | |
sld_ch_consumer_plugin_recurringorder | Contains pipelines, templates, etc. to provide a “feature flag” in the ICM back office to enable/disable the recurring order feature per channel. |
|
recurringorders_rest_test | Comprehensive REST tests based on Groovy for end-to-end testing of the recurring order feature. | |
test_recurringorders_init | Contains initialization steps for the REST Tests. |
The image is available in the respective Docker repository: intershophub/icm-as-customization-recurringorders.
The Recurring Order Extension can be used for the following application types:
Application Type | Application Type ID | Description |
---|---|---|
Progressive Web App |
| B2C/B2B via REST |
The recurring order feature is a storefront feature that allows users to repeatedly place orders based on a type of order template and a fixed schedule. It is available for B2C as well as for B2B customers and can be enabled/disabled per channel, see section Configuration.
There is is a new major version of the Recurring Order REST API provided by the Recurring Order Extension. To use it, the accept header should contain: application/vnd.intershop.recurringorder.v2+json
, see Reference - Recurring Order Extension REST API 2.0.0.
The previous version of the existing Recurring Order REST API that comes with the standard ICM will be removed with the next major release.
If the recurring order feature is enabled, the shopping cart will have a One-time purchase and Recurring order option.
When Recurring order is selected, additional fields where you can set the recurrence will be displayed.
Recur every: Mandatory recurrence interval. How often should orders be triggered?
Start from: Mandatory start date, which can be today (default) or a future date.
Until: Optional end date, which is any date after the start date.
Until after: Optional number of orders after which the recurring order will automatically end.
After selecting Recurring order, the subsequent steps up to the checkout must be carried out as usual.
The list of payment methods is usually limited, as the orders are created without user interaction. For example, it is not possible to log in to the payment service provider.
In the case of a B2B order with the approval service activated, all recurring orders must be approved by default. For a B2C customer, the recurring order is created immediately after clicking the Submit recurring order button.
B2C customers and B2B users can view the list of available recurring orders by clicking Purchases | Recurring orders.
In addition, the B2B account administrator can see the list of their recurring orders as well as the list of recurring orders of the client (organization).
Clicking on the recurring order document number will take you to the recurring order details page. In addition to the usual information about the buyer, addresses, line items, shipping method, etc., the top part contains special information about the recurring order. For example, you can see when the last order was created, when the next order is scheduled, and how many orders have been created in total.
Recurring orders can be paused at any time, as often and as long as required without giving reasons. To do this, the entries can be deactivated both in the list and in the detail view using the slider. If a recurring order is inactive, no orders are generated.
Following the general pattern, a single recurring order can be deleted from the list view by clicking on the trash can icon.
The Recurring Order Extension customization image is available from Intershop's public repository.
Add customization to helm values:
Declare the customization image
Add feature cartridge ft_recurringorders to the cartridge list (See Concept - Customization - Deployment - ICM 11+)
icm-as: customizations: recurringorders: repository: intershophub/icm-as-customization-recurringorders:1.0.0 ... environment: CARTRIDGE_LIST: "ft_icm_as ft_recurringorders"
To prepare the start of ICM with the Recurring Order extension, make sure that all required services, the MSSQL database, and the web server are started.
Modify the compose file to specify which cartridges the ICM should load. This is done by setting the CARTRIDGE_LIST
environment variable on the application server:
services: customize-recurringorders: image: intershophub/icm-as-customization-recurringorders:<TAG> volumes: - customizations:/customizations ... appserver: depends_on: - customize-recurringorders ... environment: # ... more environment variables ... # Example cartridge list. Please adapt to your requirements. CARTRIDGE_LIST: "ft_icm_as ft_recurringorders" ...
When the application server is started, the feature is available without any DB preparation steps.
To add the customization image to your project, you must add it to your customization dependencies.
Therefore, follow these steps:
Register the customization image in your main build.gradle.kts:
val icmDockerRegistry = "docker.tools.intershop.com/icm/intershophub" // specified in gradle.properties val recurringOrdersVersion: String by project intershop { projectConfig { modules { // ... other modules ... register("recurringorders") { dependency.set("com.intershop.recurringorders:recurringorders:${recurringOrdersVersion}") image.set("${icmDockerRegistry}/icm-as-customization-recurringorders:${recurringOrdersVersion}") testImage.set("${icmDockerRegistry}/icm-as-customization-recurringorders:${recurringOrdersVersion}") } } } } subprojects { // ... other settings ... plugins.withType<JavaPlugin> { dependencies { // ... other dependencies ... cartridge(platform("com.intershop.recurringorders:recurringorders_versions:${recurringOrdersVersion}")) implementation(platform("com.intershop.recurringorders:recurringorders_versions:${recurringOrdersVersion}")) } } }
Add dependencies to your project's feature definition (e.g., ft_myproject/build.gradle.kts):
dependencies { // base on ICM AS cartridgeRuntime ("com.intershop.icm:ft_icm_as") // ... more dependencies ... // Recurring Order Extension cartridgeRuntime ("com.intershop.recurringorders:ft_recurringorders") }
To include the recurring order feature, add your project's feature definition cartridge to your development configuration within your main build.gradle.kts. If you need additional feature cartridges for local development, you can add them here as well:
intershop_docker { // ... other configuration ... developmentConfig { appserverAsContainer = true cartridgeList.set(setOf("ft_myproject")) // alternative scenario using a feature cartridge where Recurring Order isn't included as a runtime dependency: // cartridgeList.set(setOf("ft_recurringorders", "ft_my_other_feature_cartridge_dev")) testCartridgeList.set(setOf("ft_mytest")) } }
Define recurringOrdersVersion
in your gradle.properties:
... recurringOrdersVersion = 1.0.0 ...
Start your application server in development mode:
Use Gradle to manage the server instance by using the command gradlew startAS
,
Run gradlew tasks
to see available tasks or check for further options.
For details on customization, see:
The Recurring Orders Extension adds a Recurring Orders preference section to the Intershop Commerce Management back office where you can enable/disable the feature for the channel.
If the feature flag is switched off and recurring orders already exist, the UI will hide all related sections and no more orders will be created. Affected customers will not be notified.
The Recurring Order Extension automatically creates a job Recurring Order Schedule Service in the domain root and application system that is responsible for creating orders for each recurring order.
You can find it in the SMC Scheduling view.
The schedule (run time) of the service defines when the recurring orders are triggered. In this example, every day in the morning at 09.00 AM. Since recurring order schedule dates are stored without time information (only date), all orders that are due or overdue on that date will be generated.
After the job has been successfully executed, the total number of orders created can be viewed in the job’s Attributes tab.
Initial implementation for ICM 12.1.0