Discount Code Importer
A package that helps with importing commercetools discount codes in JSON format to the commercetools platform. This package is built to be used in conjunction with sphere-node-cli
Configuration
The constructor accepts two arguments:
A required object containing the following values:
apiConfig(Object):AuthMiddlewareoptions for authentication on the commercetools platform. (Required. See here)accessToken(String): Access token to be used to authenticate requests to API. Requires scope of [manage_orders]batchSize(Number): Amount of codes not more than 500 to process concurrently (Optional. Default: 50)continueOnProblems(Boolean): Flag whether to continue processing if an error occurs (Optional. Default: false)
An optional logger object having four functions (
info,warn,errorandverbose)
Usage with sphere-node-cli
sphere-node-cliYou can use this package from the sphere-node-cli. In order for the cli to import discount codes, the file to import from must be a valid JSON and follow this structure:
[
{
"name": {
"en": "Sammuy",
"de": "Valerian"
},
"description": {
"en": "some new promo",
"de": "super Angebot"
},
"cartDiscounts": [
{
"typeId": "cart-discount",
"id": "some-cart-discount-id"
}
],
"cartPredicate": "lineItemTotal(1 = 1) > \"10.00 USD\"",
"isActive": true,
"maxApplications": 10,
"maxApplicationsPerCustomer": 2,
"code": "MyDiscountCode1"
},
{
"name": {
"en": "Sammuy",
"de": "Valerian"
},
"description": {
"en": "some new promo",
"de": "super Angebot"
},
"cartDiscounts": [
{
"typeId": "cart-discount",
"id": "some-cart-discount-id"
}
],
"cartPredicate": "lineItemTotal(1 = 1) > \"20.00 USD\"",
"isActive": false,
"maxApplications": 10,
"maxApplicationsPerCustomer": 2,
"code": "MyDiscountCode2"
},
{
"name": {
"en": "Sammuy",
"de": "Valerian"
},
"description": {
"en": "some new promo",
"de": "super Angebot"
},
"cartDiscounts": [
{
"typeId": "cart-discount",
"id": "some-cart-discount-id"
}
],
"cartPredicate": "lineItemTotal(1 = 1) > \"50.00 USD\"",
"isActive": false,
"maxApplications": 10,
"maxApplicationsPerCustomer": 2,
"code": "MyDiscountCode3"
},
...
]Then you can import this file using the cli:
Custom optional configuration can be passed in as described above using the -c flag
Direct Usage
If you would like to have more control, you can also use this module directly in Javascript. To do this, you need to install it:
Then you can use it to import discount codes:
On successful completion, a call to the .summaryReport() method returns a report in the following format:
Note: By default, if a discount code already exists, the module tries to build update actions for it, and if no update actions can be built, the code will be ignored
Last updated