2020-08-25 01:50:39 -07:00
import {
INodeProperties ,
} from 'n8n-workflow' ;
export const couponOperations = [
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
} ,
} ,
options : [
{
name : 'Create' ,
value : 'create' ,
description : 'Create a coupon.' ,
} ,
{
name : 'Get All' ,
value : 'getAll' ,
description : 'Get all coupons.' ,
} ,
{
name : 'Update' ,
value : 'update' ,
description : 'Update a coupon.' ,
} ,
] ,
default : 'create' ,
description : 'The operation to perform.' ,
} ,
] as INodeProperties [ ] ;
export const couponFields = [
2020-08-25 01:51:16 -07:00
/* -------------------------------------------------------------------------- */
/* coupon:create */
/* -------------------------------------------------------------------------- */
2020-08-25 01:50:39 -07:00
{
displayName : 'Coupon Type' ,
name : 'couponType' ,
type : 'options' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
` create `
] ,
jsonParameters : [
false
]
} ,
} ,
default : 'checkout' ,
description : 'Either product (valid for specified products or subscription plans) or checkout (valid for any checkout).' ,
options : [
{
name : 'Checkout' ,
value : 'checkout'
} ,
{
name : 'Product' ,
value : 'product'
} ,
]
} ,
{
displayName : 'Product IDs' ,
name : 'productIds' ,
type : 'multiOptions' ,
typeOptions : {
loadOptionsMethod : 'getProducts' ,
} ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
` create `
] ,
couponType : [
'product' ,
] ,
jsonParameters : [
false
]
} ,
} ,
default : '' ,
description : 'Comma-separated list of product IDs. Required if coupon_type is product.' ,
required : true ,
} ,
{
displayName : 'Discount Type' ,
name : 'discountType' ,
type : 'options' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
` create `
] ,
jsonParameters : [
false
]
} ,
} ,
default : 'flat' ,
description : 'Either flat or percentage.' ,
options : [
{
name : 'Flat' ,
value : 'flat'
} ,
{
name : 'Percentage' ,
value : 'percentage'
} ,
]
} ,
{
displayName : 'Discount Amount Currency' ,
name : 'discountAmount' ,
type : 'number' ,
default : '' ,
description : 'Discount amount in currency.' ,
typeOptions : {
minValue : 1
} ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
` create `
] ,
discountType : [
'flat' ,
] ,
jsonParameters : [
false
]
} ,
} ,
} ,
{
displayName : 'Discount Amount %' ,
name : 'discountAmount' ,
type : 'number' ,
default : '' ,
description : 'Discount amount in percentage.' ,
typeOptions : {
minValue : 1 ,
maxValue : 100
} ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
` create `
] ,
discountType : [
'percentage' ,
] ,
jsonParameters : [
false
]
} ,
} ,
} ,
{
displayName : 'Currency' ,
name : 'currency' ,
type : 'options' ,
default : 'EUR' ,
description : 'The currency must match the balance currency specified in your account.' ,
options : [
{
name : 'ARS' ,
value : 'ARS'
} ,
{
name : 'AUD' ,
value : 'AUD'
} ,
{
name : 'BRL' ,
value : 'BRL'
} ,
{
name : 'CAD' ,
value : 'CAD'
} ,
2020-08-25 01:51:16 -07:00
{
name : 'CHF' ,
value : 'CHF'
} ,
2020-08-25 01:50:39 -07:00
{
name : 'CNY' ,
value : 'CNY'
} ,
{
name : 'CZK' ,
value : 'CZK'
} ,
{
name : 'DKK' ,
value : 'DKK'
} ,
{
name : 'EUR' ,
value : 'EUR'
} ,
2020-08-25 01:51:16 -07:00
{
name : 'GBP' ,
value : 'GBP'
} ,
2020-08-25 01:50:39 -07:00
{
name : 'HKD' ,
value : 'HKD'
} ,
{
name : 'HUF' ,
value : 'HUF'
} ,
{
name : 'INR' ,
value : 'INR'
} ,
{
name : 'JPY' ,
value : 'JPY'
} ,
2020-08-25 01:51:16 -07:00
{
name : 'KRW' ,
value : 'KRW'
} ,
2020-08-25 01:50:39 -07:00
{
name : 'MXN' ,
value : 'MXN'
} ,
{
2020-08-25 01:51:16 -07:00
name : 'NOK' ,
value : 'NOK'
2020-08-25 01:50:39 -07:00
} ,
{
name : 'NZD' ,
value : 'NZD'
} ,
{
name : 'PLN' ,
value : 'PLN'
} ,
{
name : 'RUB' ,
value : 'RUB'
} ,
{
name : 'SEK' ,
value : 'SEK'
} ,
{
2020-08-25 01:51:16 -07:00
name : 'SGD' ,
value : 'SGD'
2020-08-25 01:50:39 -07:00
} ,
{
name : 'THB' ,
value : 'THB'
} ,
{
2020-08-25 01:51:16 -07:00
name : 'TWD' ,
value : 'TWD'
2020-08-25 01:50:39 -07:00
} ,
{
name : 'USD' ,
value : 'USD'
} ,
2020-08-25 01:51:16 -07:00
{
name : 'ZAR' ,
value : 'ZAR'
} ,
2020-08-25 01:50:39 -07:00
] ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
` create `
] ,
discountType : [
'flat' ,
] ,
jsonParameters : [
false
]
} ,
} ,
} ,
{
displayName : 'JSON Parameters' ,
name : 'jsonParameters' ,
type : 'boolean' ,
default : false ,
description : '' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
} ,
{
displayName : ' Additional Fields' ,
name : 'additionalFieldsJson' ,
type : 'json' ,
typeOptions : {
alwaysOpenEditWindow : true ,
} ,
default : '' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
'create' ,
] ,
jsonParameters : [
true ,
] ,
} ,
} ,
description : ` Attributes in JSON form. ` ,
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
'create' ,
] ,
jsonParameters : [
false
]
} ,
} ,
default : { } ,
options : [
{
displayName : 'Allowed Uses' ,
name : 'allowedUses' ,
type : 'number' ,
default : 1 ,
description : 'Number of times a coupon can be used in a checkout. This will be set to 999,999 by default, if not specified.' ,
} ,
{
displayName : 'Coupon Code' ,
name : 'couponCode' ,
type : 'string' ,
default : '' ,
description : 'Will be randomly generated if not specified.' ,
} ,
{
displayName : 'Coupon Prefix' ,
name : 'couponPrefix' ,
type : 'string' ,
default : '' ,
description : 'Prefix for generated codes. Not valid if coupon_code is specified.' ,
} ,
2020-08-25 01:51:16 -07:00
{
displayName : 'Description' ,
name : 'description' ,
type : 'string' ,
default : '' ,
description : 'Description of the coupon. This will be displayed in the Seller Dashboard.' ,
} ,
2020-08-25 01:50:39 -07:00
{
displayName : 'Expires' ,
name : 'expires' ,
type : 'dateTime' ,
default : '' ,
description : 'The coupon will expire on the date at 00:00:00 UTC.' ,
} ,
{
displayName : 'Group' ,
name : 'group' ,
type : 'string' ,
typeOptions : {
minValue : 1 ,
maxValue : 50
} ,
default : '' ,
description : 'The name of the coupon group this coupon should be assigned to.' ,
} ,
{
displayName : 'Number of Coupons' ,
name : 'numberOfCoupons' ,
type : 'number' ,
default : 1 ,
description : 'Number of coupons to generate. Not valid if coupon_code is specified.' ,
} ,
{
2020-08-25 01:51:16 -07:00
displayName : 'Recurring' ,
name : 'recurring' ,
type : 'boolean' ,
default : false ,
description : 'If the coupon is used on subscription products, this indicates whether the discount should apply to recurring payments after the initial purchase.' ,
2020-08-25 01:50:39 -07:00
} ,
] ,
} ,
2020-08-25 01:51:16 -07:00
/* -------------------------------------------------------------------------- */
/* coupon:getAll */
/* -------------------------------------------------------------------------- */
2020-08-25 01:50:39 -07:00
{
displayName : 'Product ID' ,
name : 'productId' ,
type : 'string' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
` getAll `
]
} ,
} ,
default : '' ,
required : true ,
description : 'The specific product/subscription ID.' ,
} ,
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
displayOptions : {
show : {
operation : [
'getAll' ,
] ,
resource : [
'coupon' ,
] ,
} ,
} ,
default : false ,
description : 'If all results should be returned or only up to a given limit.' ,
} ,
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
displayOptions : {
show : {
operation : [
'getAll' ,
] ,
resource : [
'coupon' ,
] ,
returnAll : [
false ,
] ,
} ,
} ,
typeOptions : {
minValue : 1 ,
maxValue : 500 ,
} ,
default : 100 ,
description : 'How many results to return.' ,
} ,
2020-08-25 01:51:16 -07:00
/* -------------------------------------------------------------------------- */
/* coupon:update */
/* -------------------------------------------------------------------------- */
2020-08-25 01:50:39 -07:00
{
displayName : 'Update by' ,
name : 'updateBy' ,
type : 'options' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
` update `
] ,
jsonParameters : [
false ,
] ,
} ,
} ,
default : 'couponCode' ,
description : 'Either flat or percentage.' ,
options : [
{
name : 'Coupon Code' ,
value : 'couponCode'
} ,
{
name : 'Group' ,
value : 'group'
} ,
]
} ,
{
displayName : 'Coupon Code' ,
name : 'couponCode' ,
type : 'string' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
'update'
] ,
updateBy : [
'couponCode'
] ,
jsonParameters : [
false ,
] ,
} ,
} ,
default : '' ,
description : 'Identify the coupon to update' ,
} ,
{
displayName : 'Group' ,
name : 'group' ,
type : 'string' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
'update'
] ,
updateBy : [
'group'
] ,
jsonParameters : [
false ,
] ,
} ,
} ,
default : '' ,
description : 'The name of the group of coupons you want to update.' ,
} ,
{
displayName : 'JSON Parameters' ,
name : 'jsonParameters' ,
type : 'boolean' ,
default : false ,
description : '' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
'update' ,
] ,
} ,
} ,
} ,
{
2020-08-25 01:51:16 -07:00
displayName : 'Additional Fields' ,
2020-08-25 01:50:39 -07:00
name : 'additionalFieldsJson' ,
type : 'json' ,
typeOptions : {
alwaysOpenEditWindow : true ,
} ,
default : '' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
'update' ,
] ,
jsonParameters : [
true ,
] ,
} ,
} ,
description : ` Attributes in JSON form. ` ,
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
resource : [
'coupon' ,
] ,
operation : [
'update' ,
] ,
jsonParameters : [
false
]
} ,
} ,
default : { } ,
options : [
{
displayName : 'Allowed Uses' ,
name : 'allowedUses' ,
type : 'number' ,
default : 1 ,
description : 'Number of times a coupon can be used in a checkout. This will be set to 999,999 by default, if not specified.' ,
} ,
{
displayName : 'Discount' ,
name : 'discount' ,
type : 'fixedCollection' ,
default : 'discountProperties' ,
options : [
{
displayName : 'Discount Properties' ,
name : 'discountProperties' ,
values : [
{
displayName : 'Currency' ,
name : 'currency' ,
type : 'options' ,
default : 'EUR' ,
description : 'The currency must match the balance currency specified in your account.' ,
displayOptions : {
show : {
discountType : [
'flat' ,
] ,
} ,
} ,
options : [
{
name : 'ARS' ,
value : 'ARS'
} ,
{
name : 'AUD' ,
value : 'AUD'
} ,
{
name : 'BRL' ,
value : 'BRL'
} ,
{
name : 'CAD' ,
value : 'CAD'
} ,
2020-08-25 01:51:16 -07:00
{
name : 'CHF' ,
value : 'CHF'
} ,
2020-08-25 01:50:39 -07:00
{
name : 'CNY' ,
value : 'CNY'
} ,
{
name : 'CZK' ,
value : 'CZK'
} ,
{
name : 'DKK' ,
value : 'DKK'
} ,
{
name : 'EUR' ,
value : 'EUR'
} ,
2020-08-25 01:51:16 -07:00
{
name : 'GBP' ,
value : 'GBP'
} ,
2020-08-25 01:50:39 -07:00
{
name : 'HKD' ,
value : 'HKD'
} ,
{
name : 'HUF' ,
value : 'HUF'
} ,
{
name : 'INR' ,
value : 'INR'
} ,
{
name : 'JPY' ,
value : 'JPY'
} ,
2020-08-25 01:51:16 -07:00
{
name : 'KRW' ,
value : 'KRW'
} ,
2020-08-25 01:50:39 -07:00
{
name : 'MXN' ,
value : 'MXN'
} ,
{
2020-08-25 01:51:16 -07:00
name : 'NOK' ,
value : 'NOK'
2020-08-25 01:50:39 -07:00
} ,
{
name : 'NZD' ,
value : 'NZD'
} ,
{
name : 'PLN' ,
value : 'PLN'
} ,
{
name : 'RUB' ,
value : 'RUB'
} ,
{
name : 'SEK' ,
value : 'SEK'
} ,
{
2020-08-25 01:51:16 -07:00
name : 'SGD' ,
value : 'SGD'
2020-08-25 01:50:39 -07:00
} ,
{
name : 'THB' ,
value : 'THB'
} ,
{
2020-08-25 01:51:16 -07:00
name : 'TWD' ,
value : 'TWD'
2020-08-25 01:50:39 -07:00
} ,
{
name : 'USD' ,
value : 'USD'
} ,
{
2020-08-25 01:51:16 -07:00
name : 'ZAR' ,
value : 'ZAR'
2020-08-25 01:50:39 -07:00
} ,
2020-08-25 01:51:16 -07:00
] ,
2020-08-25 01:50:39 -07:00
} ,
{
displayName : 'Discount Amount Currency' ,
name : 'discountAmount' ,
type : 'number' ,
default : '' ,
description : 'Discount amount.' ,
displayOptions : {
show : {
discountType : [
'flat' ,
] ,
} ,
} ,
typeOptions : {
minValue : 0
} ,
} ,
{
displayName : 'Discount Amount Percentage' ,
name : 'discountAmount' ,
type : 'number' ,
default : '' ,
description : 'Discount amount.' ,
displayOptions : {
show : {
discountType : [
'percentage' ,
] ,
} ,
} ,
typeOptions : {
minValue : 0 ,
maxValue : 100
} ,
} ,
2020-08-25 01:51:16 -07:00
{
displayName : 'Discount Type' ,
name : 'discountType' ,
type : 'options' ,
default : 'flat' ,
description : 'Either flat or percentage.' ,
options : [
{
name : 'Flat' ,
value : 'flat'
} ,
{
name : 'Percentage' ,
value : 'percentage'
} ,
]
} ,
2020-08-25 01:50:39 -07:00
] ,
} ,
] ,
} ,
{
displayName : 'Expires' ,
name : 'expires' ,
type : 'dateTime' ,
default : '' ,
description : 'The coupon will expire on the date at 00:00:00 UTC.' ,
} ,
{
displayName : 'New Coupon Code' ,
name : 'newCouponCode' ,
type : 'string' ,
default : '' ,
description : 'New code to rename the coupon to.' ,
} ,
{
displayName : 'New Group Name' ,
name : 'newGroup' ,
type : 'string' ,
typeOptions : {
minValue : 1 ,
maxValue : 50
} ,
default : '' ,
description : 'New group name to move coupon to.' ,
} ,
{
displayName : 'Product IDs' ,
name : 'productIds' ,
type : 'string' ,
default : '' ,
description : 'Comma-separated list of products e.g. 499531,1234,123546. If blank then remove associated products.' ,
} ,
{
displayName : 'Recurring' ,
name : 'recurring' ,
type : 'boolean' ,
default : false ,
description : 'If the coupon is used on subscription products, this indicates whether the discount should apply to recurring payments after the initial purchase.' ,
} ,
] ,
} ,
] as INodeProperties [ ] ;