Shopify

Modified on Mon, 13 Feb 2023 at 04:13 PM

   

Inventory Flow  

Realtime Inventory flow is supported. In CIMS Listings, Serial numbers are used to identify Shopify Inventory Item Id and should be unique.

  • An internally generated ID called inventory item ID is used as a serial number in Shopify. This serial number is unique to an SKU and CANNOT be repeated. Uploading faulty serial numbers will result in entire batches of inventory updates failing. 

  • Thus uploading product listings should be done very carefully and at least the uniqueness of the serial number should be verified before uploading. 

  • Also, it should be made sure that before we create a product, it exists on shopify.


Order Flow

New Order Creation

New orders can be flown to WMS after adding Webhooks on Shopify.
Navigate to Settings->Notifications and scroll down to the webhooks section. 

Add the following webhook for Order Creation: https://assure-proxy.increff.com/shopify/api/push/orders 

Note: Please configure webhooks only once you are ready to go live. 


Order Update

Order update webhook is used only if On Hold and SLA time update is needed by the clients. Other details for existing orders can't be updated.
Navigate to Settings->Notifications and scroll down to the webhooks section. 

Add the following webhook for Order Update: https://assure-proxy.increff.com/shopify/api/push/orderUpdate



Orders Acknowledgement

Orders acknowledgement is not supported.


Customer cancellation flow

Customer cancellation can be flown to WMS after adding Webhook on Shopify.
Navigate to Settings->Notifications and scroll down to the webhooks section. 

Add the following webhook for Order Cancellation: https://assure-proxy.increff.com/shopify/api/push/orderCancel


Seller cancellation flow

Seller cancellation flow is supported.



Create Shipment API flow

Shipment creation is supported via Clickpost/ Shiprocket.


Clickpost

Order is pushed into Clickpost against channel order id on assure. An acknowledgement is sent back to shopify


Shiprocket

Shiprocket fetches order from shopify on its own. Acknowledgement Not necessary



Get Shipment API flow

Shipment creation is supported via Clickpost/ Shiprocket.


Clickpost

Invoice and shipping label details are retrieved from WMS proxy DB and sent to WMS.


Shiprocket

Invoice and shipping label details are retrieved from Shiprocket and sent to Increff WMS.



Manifest API flow

Manifest API is not supported.



Handover API flow(Optional)

Archives the order on the panel so that it does not show up in any more searches. Not a necessary step. Can be set as self as well.



Return Flow
Return Orders and return order processing isn't possible and has not been implemented.  



Mandatory fields on Shopify

Shopify does not enforce a lot of fields on its panel. But most of these fields are necessary in Assure. Hence necessary precautions should be taken to ensure the fields do not come up as empty.


A few of such kinds of fields include:

  1. Billing address

  2. SKUs in order line items.

  3. Shipping address


Shopify Warehouses
Orders in shopify only use inventory from one warehouse. The inventory from the second warehouse will only be consumed if the inventory in the first isn't sufficient.



Onboarding Shopify Channel
A. Obtaining Credentials:

Use following steps to obtain the required credentials for shopify integration

Step 1: Go to the link indicated by the rectangle: 

Step 2: If already added as a private app, click on the private app name in the list of apps. If Increff is to be added as a private app, click on the “Create new private app” button


Step 3: If already user is existing, share the credentials with Increff Team. It consists of API key, Password, Shop Name, Clickpost API key, Clickpost Username. 



Shopify Attribute

CIMS Attribute

Remarks

Example

API Key

CLIENT_ID

If CUSTOM APP, use Access Token (beginning with ‘shpat_’). 

d4ff99b7ddebd25dd24ef73db8a99fab

Password

PASSWORD

 

01a2ef6e06f9ae9c88c334ad7657e9fc

Shop name

USER_ID

Available in the URL. For example, in the above image, shop name is “increff” as obtained from url “https://increff.myshopify.com”

increff

ClickPost API Key

ACCESS_SECRET

Should be obtained from client

 

ClickPost Username

ACCESS_TOKEN

Should be obtained from client

 

 


If user is not existing, fill out the form to get the details to be shared with Increff. Increff team to setup those details in CIMS.


B. Granting Read and Write permissions to Increff. 

Go to Apps -> Manage private apps -> Increff.

Under ADMIN API PERMISSIONS. Grant highest access to each of the permissions (Read And Write if available).


C. For Clickpost/Shiprocket integration

  • API Key and Username requires for Clickpost Integration
  • API User Email and Password requires from Shiprocket Integration




Nuance

Multi Warehousing in Shopify:

  • Shopify does not support proximity based routing of orders. 
  • Orders are routed to a warehouse based on a pre configured priority basis. This is configurable on their panel.
  • When orders are placed through any online sales channel, they are assigned to a location where they should be fulfilled from based on the priority list and available inventory. If any location can fulfill the entire order, then the inventory is drawn from that location
  • The following graphic explains this process:


Shopify permissions required by the Increff Private/Custom App

Fulfilment

write_assigned_fulfillment_orders, read_assigned_fulfillment_orders, write_fulfillments, read_fulfillments, read_gdpr_data_request, write_merchant_managed_fulfillment_orders, read_merchant_managed_fulfillment_orders, write_shipping, read_shipping, write_third_party_fulfillment_orders, read_third_party_fulfillment_orders

These are required to ship orders and push tracking numbers from logistics companies back to Shopify.

Order creation

write_customers, read_customers, write_discounts, read_discounts, write_gift_cards, read_gift_cards, write_files, read_files

These are required fields on OMS and necessary for creating orders. 

Order Update

write_order_edits, read_order_edits, write_orders, read_orders,

Necessary for updating the status of the order (for example, canceling line items).

Inventory Update

write_inventory, read_inventory, read_locations, write_product_listings, read_product_listings, write_products, read_products, write_locales, read_locales, write_locations, write_product_feeds, read_product_feeds

Necessary for pushing inventory updates to Shopify.

Payment Details

write_payment_terms, read_payment_terms, write_price_rules, read_price_rules

Necessary for determining if an order is COD or NCOD. 


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons

Feedback sent

We appreciate your effort and will try to fix the article