Client needs to send a specific gift card orders from Shopify to Cash Star
Proposal Summary
This proposal covers the scope of the Shopify-CashStar Integration.
Requirement
Client requires to integrate their Shopify with the Cash Star. They would only focus on the order merchant eGift Card. Basically when the customer buys a gift card (only one specific sku) they need to send that data to CashStar to create the gift card.
The Cash Star Exchange eGift Card (eGC) Service is a RESTful web service that allows approved third parties (hereafter referred to as “clients”) to:
- Check the availability of eGift Cards for a particular merchant
- Order merchant eGift Cards
- Cancel merchant eGift Cards
- Check the balance and status of a merchant eGift Card
Deliverables
- Create a script to fetch the orders from the Shopify with the specific Gift Card SKU mentioned by Touchstone Group.
- Send the data to the Cash Star
Prerequisites
- Touchstone needs to provide the Shopify API Token, API key and API Secret for the connectivity.
- Touchstone needs to provide the Cash Star credentials for connectivity.
Scope of Work
Shopify to Cash Star via NetSuite
We will deploy a script to NetSuite in which it periodically gets the orders with the specific SKU from the Shopify and push the data to the Cash Star.
The API we will be using for sending data to Cash Star will be Create Order (POST) https://api.cashstar.com/order/ .
The audit number and the merchant code are required field for creating orders in the Cash Star. The Touchstone needs to provide the audit number. For merchant code we will fetch them using the Merchant GET API. The customer from the Shopify needs to be present in the Cash Star for getting the correct merchant code.
The sample data that we will be using to send to Cash Star is added below.
{ “order”: {
“order_number”:”1234″,
“order_status”: “ACTIVE”,
“transaction_id”:”12421413″,
“audit_number”:”asd134″,
“egc”: {
“egc_code”:”DiSEMhS3pMCCyNr2QW”,
“egc_number”:”1234567890123456″,
“access_code”:”1234″,
“merchant_code”:”TWS”,
“initial_balance”:”10.00″,
“current_balance”:”8.00″,
“balance_last_updated”:”1997‐07‐16T19:20:30+01:00″,
“currency”:”USD”,
“active”:true,
“status”:”ACTIVE”,
“url”:”http://widgets.cashstar.com/egc/12312352″,
“challenge”:”steve@example.com”,
“challenge_description”:”your email address”,
“delivery” : {
“method”:”EMAIL”,
“target”:”steve@example.com”,
“scheduled”:”1997‐07‐16T19:20:30+01:00″,
“delivered”:”1997‐07‐16T19:22:11+01:00″ },
“message” : {
“from”:”The Smiths”,
“to”:”grandma”,
“body”:”Thanks so much for everything you’ve done” },
“additional_content” : {
“type”:”TEXT”,
“content”:”Please do not forget to try our new product or service!” }
}
}
}
We will create a custom record to store configuration details for the connection. An addition field named ‘Created at Min’ to store the minimum date timestamp to retrieve the orders from the Shopify. As the script is executed on a time interval each end time will be stored in this custom field.
If any error occurred while pushing data to Cash Star, we will create a custom record to store the Shopify error Order id with the Error details. An email notification will be sent to the Touchstone daily, mentioning about the failed orders. We will re-run this script for the failed orders at the end of the day.
Assumptions
- Audit number will be provided by the Touchstone.
- Merchants refers to the customer in the Shopify.
- We need to only consider create context of the Shopify order.
- All the customers from the Shopify will be present in the Cash Star.
- We need to only consider Shopify orders with the specific SKU provided by the Touchstone.
Exceptions & Limitations
- We will not be considering edit/update of the Shopify orders.
- We will only consider the specific SKU orders provided by the Touchstone.
- If the customer from the Shopify is not present in the Cash Star, it may fail, and error record will be created in the NetSuite.
- We will not fetch the order which includes other items with this specific gift card SKU.
- If any update happens to the API in the future, we need to revise the code.