Implementing commonly used discounts
Leverage commonly used discount opportunities to engage customers, reduce churn, and increase LTV.
This article provides several common use cases demonstrating how to create different discounts with various rules.
Platform
- Shopify Checkout Integration
- Recharge Checkout on Shopify
- BigCommerce Integration
- Recharge Checkout on BigCommerce
New customer discounts
New customer discounts can incentivize a customer to sign up. The following example shows how you can create a 20% off discount for first-time customers who place an order in your store.
Create a one-time 20% off discount for new customers only:
curl --location --request POST 'https://api.rechargeapps.com/discounts' \
--header 'X-Recharge-Access-Token: {your token} \
--header 'Content-Type: application/json' \
--data-raw '{
"code": "FEBNEWCUSTOMER22",
"value": 20,
"discount_type": "percentage",
"channel_settings": {
"api": {
"can_apply": true
},
"checkout_page": {
"can_apply": true
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": true
}
},
"applies_to_product_type": "ONETIME",
"duration": "usage_limit",
"duration_usage_limit": 1,
"status": "enabled",
"usage_limit": 1,
"first_time_customer_restriction": "customer_must_not_exist_in_recharge",
"starts_at": "2022-02-08",
"ends_at": "2023-12-31",
"applies_to_id": 7535871328502,
"applies_to_resource": "shopify_product"
}'
import requests
import json
url = "https://api.rechargeapps.com/discounts"
payload = json.dumps({
"code": "FEBNEWCUSTOMER22",
"value": 20,
"discount_type": "percentage",
"channel_settings": {
"api": {
"can_apply": True
},
"checkout_page": {
"can_apply": True
},
"customer_portal": {
"can_apply": True
},
"merchant_portal": {
"can_apply": True
}
},
"applies_to_product_type": "ONETIME",
"duration": "usage_limit",
"duration_usage_limit": 1,
"status": "enabled",
"usage_limit": 1,
"first_time_customer_restriction": "customer_must_not_exist_in_recharge",
"starts_at": "2022-02-08",
"ends_at": "2023-12-31",
"applies_to_id": 7535871328502,
"applies_to_resource": "shopify_product"
})
headers = {
'X-Recharge-Access-Token': {your token},
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://api.rechargeapps.com/discounts")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Recharge-Access-Token"] = "{your_access_token}"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"code": "FEBNEW2022",
"value": 20,
"discount_type": "percentage",
"channel_settings": {
"api": {
"can_apply": true
},
"checkout_page": {
"can_apply": true
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": true
}
},
"applies_to_product_type": "ONETIME",
"duration": "usage_limit",
"duration_usage_limit": 1,
"status": "enabled",
"usage_limit": 1,
"first_time_customer_restriction": "customer_must_not_exist_in_recharge",
"starts_at": "2022-02-15",
"ends_at": "2023-12-31",
"applies_to_id": 753871328502,
"applies_to_resource": "shopify_product"
})
response = https.request(request)
puts response.read_body
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.rechargeapps.com/discounts');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'X-Recharge-Access-Token' => '{your_access_token}',
'Content-Type' => 'application/json',
));
$request->setBody('{\n "code": "FEBNEW2022",\n "value": 20,\n "discount_type": "percentage",\n "channel_settings": {\n "api": {\n "can_apply": true\n },\n "checkout_page": {\n "can_apply": true\n },\n "customer_portal": {\n "can_apply": true\n },\n "merchant_portal": {\n "can_apply": true\n }\n },\n "applies_to_product_type": "ONETIME",\n "duration": "usage_limit",\n "duration_usage_limit": 1,\n "status": "enabled",\n "usage_limit": 1,\n "first_time_customer_restriction": "customer_must_not_exist_in_recharge",\n "starts_at": "2022-02-15",\n "ends_at": "2023-12-31",\n "applies_to_id": 753871328502,\n "applies_to_resource": "shopify_product"\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
API Version 2021-11 examples in the next tabs
curl --location --request POST 'https://api.rechargeapps.com/discounts' \
--header 'X-Recharge-Access-Token: {your_access_token}\
--header 'Content-Type: application/json' \
--data-raw '{
"applies_to": {
"purchase_item_type": "ONETIME"
},
"channel_settings": {
"api": {
"can_apply": true
},
"checkout_page": {
"can_apply": true
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": true
}
},
"code": "FEB20NEWCUSTOMER",
"status": "enabled",
"usage_limits": {
"first_time_customer_restriction": true,
"one_application_per_customer": false
},
"value": "20",
"value_type": "percentage"
}'
import requests
import json
url = "https://api.rechargeapps.com/discounts"
payload = json.dumps({
"applies_to": {
"purchase_item_type": "ONETIME"
},
"channel_settings": {
"api": {
"can_apply": True
},
"checkout_page": {
"can_apply": True
},
"customer_portal": {
"can_apply": True
},
"merchant_portal": {
"can_apply": True
}
},
"code": "FEB22NEWCUSTOMER20",
"status": "enabled",
"usage_limits": {
"first_time_customer_restriction": True,
"one_application_per_customer": False
},
"value": "20",
"value_type": "percentage"
})
headers = {
'X-Recharge-Access-Token': {your_access_token},
'Content-Type': 'application/json',
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://api.rechargeapps.com/discounts")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Recharge-Access-Token"] = "sk_test_1x1_fd5d4c5ad5201a107434b4d2d967e0539e872beb0d70179af3f5ce0ec0078927"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"applies_to": {
"purchase_item_type": "ONETIME"
},
"channel_settings": {
"api": {
"can_apply": true
},
"checkout_page": {
"can_apply": true
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": true
}
},
"code": "FEB22NEWCUSTOMERDISCOOUNT",
"status": "enabled",
"usage_limits": {
"first_time_customer_restriction": true,
"one_application_per_customer": false
},
"value": "20",
"value_type": "percentage"
})
response = https.request(request)
puts response.read_body
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.rechargeapps.com/discounts');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'X-Recharge-Access-Token' => {your_access_token},
'Content-Type' => 'application/json',
));
$request->setBody('{\n "applies_to": {\n "purchase_item_type": "ONETIME"\n },\n "channel_settings": {\n "api": {\n "can_apply": true\n },\n "checkout_page": {\n "can_apply": true\n },\n "customer_portal": {\n "can_apply": true\n },\n "merchant_portal": {\n "can_apply": true\n }\n },\n "code": "FEB22NEWCUSTOMERDISCOOUNT",\n "status": "enabled",\n "usage_limits": {\n "first_time_customer_restriction": true,\n "one_application_per_customer": false\n },\n "value": "20",\n "value_type": "percentage"\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
Parameters explained
2021-01 | 2021-11 |
---|---|
|
|
Redemption limits and applications
Redemption limits are useful to create discounts whose value is spread across time. This increases customer lifetime and gives a user the opportunity to create a new habit for the product.
The following example shows how you can create a discount that has a limit of 3 redemptions for $10 each, with a maximum number of discount applications in the entire store set to 100.
Note:
This feature will be coming soon to Recharge API version 2021-11. The following example illustrates this feature for Recharge API version 2021-01.
3 redemptions for $10 limited to 100 applications:
curl --location --request POST 'https://api.rechargeapps.com/discounts' \
--header 'X-Recharge-Access-Token: {your_access_token} \
--header 'Content-Type: application/json' \
--data-raw '{
"code": "FEB22REDEMPTIONDISCOUNT",
"value": "10",
"discount_type": "fixed_amount",
"channel_settings": {
"api": {
"can_apply": false
},
"checkout_page": {
"can_apply": true
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": false
}
},
"applies_to_product_type": "ALL",
"duration": "usage_limit",
"duration_usage_limit": "3",
"status": "enabled",
"usage_limit": "100",
"starts_at": "2022-02-10",
"ends_at": "2023-12-31",
"applies_to_id": "7535871328502",
"applies_to_resource": "shopify_product"
import requests
import json
url = "https://api.rechargeapps.com/discounts"
payload = json.dumps({
"code": "FEB22REDEMPTIONDISCOUNT",
"value": "10",
"discount_type": "fixed_amount",
"channel_settings": {
"api": {
"can_apply": False
},
"checkout_page": {
"can_apply": True
},
"customer_portal": {
"can_apply": True
},
"merchant_portal": {
"can_apply": False
}
},
"applies_to_product_type": "ALL",
"duration": "usage_limit",
"duration_usage_limit": "3",
"status": "enabled",
"usage_limit": "100",
"starts_at": "2022-02-10",
"ends_at": "2023-12-31",
"applies_to_id": "7535871328502",
"applies_to_resource": "shopify_product"
})
headers = {
'X-Recharge-Access-Token': {your_access+token},
'Content-Type': 'application/json',
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://api.rechargeapps.com/discounts")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Recharge-Access-Token"] = "{your_access_token}"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"code": "FEBTRIPLEDISCOUNT2022",
"value": 10,
"discount_type": "fixed_amount",
"channel_settings": {
"api": {
"can_apply": true
},
"checkout_page": {
"can_apply": true
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": true
}
},
"applies_to_product_type": "ALL",
"duration": "usage_limit",
"duration_usage_limit": 3,
"status": "enabled",
"usage_limit": 100,
"starts_at": "2022-02-15",
"ends_at": "2023-12-31",
"applies_to_id": 753871328502,
"applies_to_resource": "shopify_product"
})
response = https.request(request)
puts response.read_body
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.rechargeapps.com/discounts');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'X-Recharge-Access-Token' => '{your_access_token}',
'Content-Type' => 'application/json',
));
$request->setBody('{\n "code": "FEBTRIPLEDISCOUNT2022",\n "value": 10,\n "discount_type": "fixed_amount",\n "channel_settings": {\n "api": {\n "can_apply": true\n },\n "checkout_page": {\n "can_apply": true\n },\n "customer_portal": {\n "can_apply": true\n },\n "merchant_portal": {\n "can_apply": true\n }\n },\n "applies_to_product_type": "ALL",\n "duration": "usage_limit",\n "duration_usage_limit": 3,\n "status": "enabled",\n "usage_limit": 100,\n "starts_at": "2022-02-15",\n "ends_at": "2023-12-31",\n "applies_to_id": 753871328502,\n "applies_to_resource": "shopify_product"\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
Free shipping for one customer with end date
Offering free shipping to a customer can be a way for you to potentially prevent the customer from abandoning their cart because of shipping costs.
curl --location --request POST 'https://api.rechargeapps.com/discounts' \
--header 'X-Recharge-Access-Token: {your token} \
--header 'Content-Type: application/json' \
--data-raw '{
"code": "FREESHIPPINGFEB22",
"value": 100,
"discount_type": "percentage",
"channel_settings": {
"api": {
"can_apply": true
},
"checkout_page": {
"can_apply": true
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": true
}
},
"applies_to_product_type": "ONETIME",
"duration": "usage_limit",
"duration_usage_limit": 1,
"status": "enabled",
"usage_limit": 1,
"starts_at": "2022-02-08",
"ends_at": "2023-12-31"
}'
import requests
import json
url = "https://api.rechargeapps.com/discounts"
payload = json.dumps({
"code": "FREESHIPPINGFEB22",
"value": 100,
"discount_type": "percentage",
"channel_settings": {
"api": {
"can_apply": True
},
"checkout_page": {
"can_apply": True
},
"customer_portal": {
"can_apply": True
},
"merchant_portal": {
"can_apply": True
}
},
"applies_to_product_type": "ONETIME",
"duration": "usage_limit",
"duration_usage_limit": 1,
"status": "enabled",
"usage_limit": 1,
"starts_at": "2021-02-08",
"ends_at": "2023-12-31"
})
headers = {
'X-Recharge-Access-Token': {your token},
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://api.rechargeapps.com/discounts")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Recharge-Access-Token"] = "{your_access_token}"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"code": "FEB22FREESHIPPING",
"value": "100",
"discount_type": "percentage",
"channel_settings": {
"api": {
"can_apply": true
},
"checkout_page": {
"can_apply": true
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": true
}
},
"applies_to_product_type": "ONETIME",
"duration": "usage_limit",
"duration_usage_limit": "1",
"status": "enabled",
"usage_limit": "1",
"starts_at": "2022-02-15",
"ends_at": "2023-12-31"
})
response = https.request(request)
puts response.read_body
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.rechargeapps.com/discounts');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'X-Recharge-Access-Token' => '{your_access_token}',
'Content-Type' => 'application/json',
));
$request->setBody('{\n "code": "FEB22FREESHIPPING",\n "value": "100",\n "discount_type": "percentage",\n "channel_settings": {\n "api": {\n "can_apply": true\n },\n "checkout_page": {\n "can_apply": true\n },\n "customer_portal": {\n "can_apply": true\n },\n "merchant_portal": {\n "can_apply": true\n }\n },\n "applies_to_product_type": "ONETIME",\n "duration": "usage_limit",\n "duration_usage_limit": "1",\n "status": "enabled",\n "usage_limit": "1",\n "starts_at": "2022-02-15",\n "ends_at": "2023-12-31"\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
API Version 2021-11 examples in the next tabs
curl --location --request POST 'https://api.rechargeapps.com/discounts' \
--header 'X-Recharge-Access-Token: {your_access_token}\
--header 'Content-Type: application/json' \
--data-raw '{
"code": "FREESHIPPINGCUSTOMER22",
"value": "100.00",
"value_type": "shipping",
"usage_limit": "1",
"ends_at": "2023-12-31"
}'
import requests
import json
url = "https://api.rechargeapps.com/discounts"
payload = json.dumps({
"code": "FREESHIPPINGCUSTOMER22",
"value": "100.00",
"value_type": "shipping",
"usage_limit": "1",
"ends_at": "2023-12-31"
})
headers = {
'X-Recharge-Access-Token': {your_access_token},
'Content-Type': 'application/json',
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://api.rechargeapps.com/discounts")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Recharge-Access-Token"] = “ {
your_access_token
}”
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"code": "FEB2022FREESHIPPING",
"value": "100.00",
"value_type": "shipping",
"usage_limit": "1",
"ends_at": "2023-12-31"
})
response = https.request(request)
puts response.read_body
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.rechargeapps.com/discounts');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'X-Recharge-Access-Token' => {your_access_token},
'Content-Type' => 'application/json',
));
$request->setBody('{\n "code": "FEB2022FREESHIPPING",\n "value": "100.00",\n "value_type": "shipping",\n "usage_limit" : "1",\n "ends_at" : "2023-12-31"\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
Multiple rules for discount redemptions
Occasionally, you may wish to create a discount with very specific limitations on how the discount can be applied to maximize its effectiveness. You can choose to limit the channels where the discount can be applied, the products or collections that can be associated with the discount, as well as the number of times a customer may apply the discount. All of these filters provide you with a strong measure of control in how discounts are applied in your store.
The following example shows how you can create a discount with a limit of three redemptions for a customer, limit the redemption to the customer portal, and limits the application of the discount to a list of products.
Three redemptions on customer portal only for a collection:
curl --location --request POST 'https://api.rechargeapps.com/discounts' \
--header 'X-Recharge-Access-Token: {your access token} \
--header 'Content-Type: application/json' \
--data-raw '{
"code": "RedemptionsCollections",
"value": 15,
"discount_type": "percentage",
"channel_settings": {
"api": {
"can_apply": false
},
"checkout_page": {
"can_apply": false
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": false
}
},
"applies_to_product_type": "SUBSCRIPTION",
"duration": "usage_limit",
"duration_usage_limit": 3,
"status": "enabled",
"usage_limit": 1,
"starts_at": "2022-02-08",
"ends_at": "2023-12-31",
"applies_to_id": 389334466806,
"applies_to_resource": "shopify_collection_id"
}'
import requests
import json
url = "https://api.rechargeapps.com/discounts"
payload = json.dumps({
"code": "RedemptionsCollections",
"value": 15,
"discount_type": "percentage",
"channel_settings": {
"api": {
"can_apply": False
},
"checkout_page": {
"can_apply": False
},
"customer_portal": {
"can_apply": True
},
"merchant_portal": {
"can_apply": False
}
},
"applies_to_product_type": "SUBSCRIPTION",
"duration": "usage_limit",
"duration_usage_limit": 3,
"status": "enabled",
"usage_limit": 1,
"starts_at": "2022-02-08",
"ends_at": "2023-12-31",
"applies_to_id": 389334466806,
"applies_to_resource": "shopify_collection_id"
})
headers = {
'X-Recharge-Access-Token': {your access token},
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://api.rechargeapps.com/discounts")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Recharge-Access-Token"] = "{your_access_token}"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"code": "FEB22COLLECTIONDISCOUNT",
"value": "15",
"discount_type": "percentage",
"channel_settings": {
"api": {
"can_apply": false
},
"checkout_page": {
"can_apply": false
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": false
}
},
"applies_to_product_type": "SUBSCRIPTION",
"duration": "usage_limit",
"duration_usage_limit": "3",
"status": "enabled",
"usage_limit": "1",
"starts_at": "2022-02-15",
"ends_at": "2023-12-31",
"applies_to_id": "389334466806",
"applies_to_resource": "shopify_collection_id"
})
response = https.request(request)
puts response.read_body
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.rechargeapps.com/discounts');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'X-Recharge-Access-Token' => {your_access_token},
'Content-Type' => 'application/json',
));
$request->setBody('{\n "code": "FEB22COLLECTIONDISCOUNT",\n "value": "15",\n "discount_type": "percentage",\n "channel_settings": {\n "api": {\n "can_apply": false\n },\n "checkout_page": {\n "can_apply": false\n },\n "customer_portal": {\n "can_apply": true\n },\n "merchant_portal": {\n "can_apply": false\n }\n },\n "applies_to_product_type": "SUBSCRIPTION",\n "duration": "usage_limit",\n "duration_usage_limit": "3",\n "status": "enabled",\n "usage_limit": "1",\n "starts_at": "2022-02-15",\n "ends_at": "2023-12-31",\n "applies_to_id": "389334466806",\n "applies_to_resource": "shopify_collection_id"\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
API Version 2021-11 examples in the next tabs
curl --location --request POST 'https://api.rechargeapps.com/discounts' \
--header 'X-Recharge-Access-Token: {your_access_token}\
--header 'Content-Type: application/json' \
--header 'Cookie: session=eyJfcmNzaSI6eyJkIjpudWxsLCJoIjoiYXBpLnJlY2hhcmdlYXBwcy5jb20iLCJ2IjoyfX0.YgNgDA.Yi-iCfSckUsDo_nBEhoyH5-BGGg' \
--data-raw '{
"applies_to": {
"purchase_item_type": "ALL",
"applies_to_ids": "389334466806",
"applies_to_resource": "shopify_collection_id"
},
"channel_settings": {
"api": {
"can_apply": false
},
"checkout_page": {
"can_apply": false
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": false
}
},
"code": "TRIPREDEMPTIONSFEB2022",
"status": "enabled",
"usage_limits": {
"max_subsequent_redemptions": "2",
"first_time_customer_restriction": false,
"one_application_per_customer": false
},
"value": "20",
"value_type": "fixed_amount"
}'
import requests
import json
url = "https://api.rechargeapps.com/discounts"
payload = json.dumps({
"applies_to": {
"purchase_item_type": "ALL",
"applies_to_ids": "389334466806",
"applies_to_resource": "shopify_collection_id"
},
"channel_settings": {
"api": {
"can_apply": False
},
"checkout_page": {
"can_apply": False
},
"customer_portal": {
"can_apply": True
},
"merchant_portal": {
"can_apply": False
}
},
"code": "TRIPREDEMPTIONSFEB2022",
"status": "enabled",
"usage_limits": {
"max_subsequent_redemptions": "2",
"first_time_customer_restriction": False,
"one_application_per_customer": False
},
"value": "20",
"value_type": "fixed_amount"
})
headers = {
'X-Recharge-Access-Token': {your_access_token}',
'Content-Type': 'application/json',
'Cookie': 'session=eyJfcmNzaSI6eyJkIjpudWxsLCJoIjoiYXBpLnJlY2hhcmdlYXBwcy5jb20iLCJ2IjoyfX0.YgNgDA.Yi-iCfSckUsDo_nBEhoyH5-BGGg'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("https://api.rechargeapps.com/discounts")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Recharge-Access-Token"] = "{your_access_token}"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"applies_to": {
"purchase_item_type": "ALL",
"applies_to_ids": "389334466806",
"applies_to_resource": "shopify_collection_id"
},
"channel_settings": {
"api": {
"can_apply": false
},
"checkout_page": {
"can_apply": false
},
"customer_portal": {
"can_apply": true
},
"merchant_portal": {
"can_apply": false
}
},
"code": "NEWCUSTOMERDISCOUNTFEB2022",
"status": "enabled",
"usage_limits": {
"max_subsequent_redemptions": "3",
"first_time_customer_restriction": false,
"one_application_per_customer": false
},
"value": "20",
"value_type": "percentage"
})
response = https.request(request)
puts response.read_body
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.rechargeapps.com/discounts');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'X-Recharge-Access-Token' => '{your_access_token}',
'Content-Type' => 'application/json',
));
$request->setBody('{\n "applies_to": {\n "purchase_item_type": "ALL",\n "applies_to_ids": "389334466806",\n "applies_to_resource": "shopify_collection_id"\n },\n "channel_settings": {\n "api": {\n "can_apply": false\n },\n "checkout_page": {\n "can_apply": false\n },\n "customer_portal": {\n "can_apply": true\n },\n "merchant_portal": {\n "can_apply": false\n }\n },\n "code": "NEWCUSTOMERDISCOUNTFEB2022",\n "status": "enabled",\n "usage_limits": {\n "max_subsequent_redemptions" : "3",\n "first_time_customer_restriction": false,\n "one_application_per_customer": false\n },\n "value": "20",\n "value_type": "percentage"\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
Parameters explained
2021-01 | 2021-11 |
---|---|
<li> value - value of the discount</li> <li> discount_type - type of discount</li> <li> customer_portal - the Customer Portal channel</li> <li> applies_to_product_type - specifies whether the discount applies to one-times, subscriptions, or all purchase types</li> <li> duration - specifies whether there is a usage limit for the discount</li> <li> duration usage limit - sets the maximum number of times the discount can be applied</li> <li> applies to_id - the product or collection that the discount can be applied to</li> <li> applies_to_resource - the resource that the product or collection belongs to</li> | <li> purchase_item_type - specifies that this discount can be applied to all orders</li> <li> applies to_id - the product that the discount can be applied to</li> <li> applies_to_resource - the resource that the product or collection belongs to</li> <li> customer_portal - boolean value that specifies whether the discount can be applied in the Customer Portal channel</li> <li> max_subsequent_redemptions - the number of redemptions that can be applied after the first redemption</li> <li> value - value of the discount</li> <li> value_type - the type of discount being created</li> |
Updated 5 months ago