Terminology


Shopify 

Kaddra 

Description

Collection 

Category 

The way products are grouped together in the app or on the website

Product 

Product 

The product that is shown on the app or website. It has images and 

metadata.

Variant 

Variant 

The variations to the 

product e.g. Size, Colour

Vendor 

Partner 

The supplier/producer of the

Product Type 

Product Type 

The type of product, used for organisation of 

products



N/A 

Market 

The market where the product/variant is 

available to be sold

Inventory Location 

Warehouse 

The location of the 

inventory

Order 

Order




Flows 


Shopify-first customer


Kaddra-first customer 






Shopify Credentials 


Kaddra integrates with Shopify using a Private App model. 


Go to Apps > Manage Private Apps > Create New Private App




Admin API Permissions


Permission 

Access Level

Customers 


View or manage customers, customer addresses, order history, and customer groups 


Access scopes: read_customers, write_customers

Read and Write

Draft orders 


View or manage orders created by merchants on behalf of customers 


Access scopes: read_draft_orders, write_draft_orders

Read and Write

Inventory 


View or manage inventory across multiple locations 


Access scopes: read_inventory, write_inventory


Read and Write


Order editing 


View or manage edits to orders 


Access scopes: read_order_edits, write_order_edits

Read and Write

Orders 


View or manage orders, transactions, fulfillments, and abandoned checkouts 


Access scopes: read_orders, write_orders

Read and Write

Product listings 


View or manage product or collection listings 


Access scopes: read_product_listings,

write_product_listings

Read and Write

Products 


View or manage products, variants, and collections 


Access scopes: read_products, 

write_products

Read and Write



Webhooks 


The integration is based on a Webhooks model. How this works is when an action happens e.g. Product is saved it will send an update to Kaddra and vice versa.


Products 


Inbound 


With this configuration it means that Shopify is the source of truth for all product data. 


Category Mapping 

● Integration will look for a category in Kaddra based on the collection name, if none found then the product will not be imported.

● The primary category in Kaddra will be set to the first collection in Shopify, any subsequent collections will be added as Related Categories in Publishing Tab 

● Categories must be published in Kaddra 


NB: Due to a limitation of Shopify API if only the product/collection relationship is changed in Shopify it won’t trigger the webhook 


Publishing Rules 

● Shopify does not have a concept of publishing rules 

● Each product arriving from Shopify will copy the publishing rules from the matched Category 


Partners 

● If a Vendor in Shopify does not exist in Kaddra then it will be created as a Partner 


Product Type 

      ● If a Product Type in Shopify does not exist in Kaddra then it will revert to a default product type with the code “INTEGRATION_PRODUCT_TYPE” 


Variants 

● When an order is placed in Shopify then the inventory will be updated in Kaddra


Inventory 

        ● The inventory locations in Shopify will be matched with a Market in Kaddra 

                ○ As long as one matches the product will be imported, but only the inventory for the inventory location that is matched will be set. 


Outbound 


With this configuration it means that Kaddra is the source of truth for all product data. 


Products 

● When a product in Kaddra is saved as Draft it will be sent to Shopify 

          ○ NB: If the product has been published in Kaddra and a change is made in Kaddra (changing it to the Draft) the change won’t be synchronized to Shopify until the product is Published in Kaddra. 


Category Mapping 

● Integration will look for a collection in Shopify based on the category name, if none found then the product will be imported but won’t be associated with the collection. 

● The primary category in Kaddra will be set as the first collection in Shopify, any related categories will be added as collections. 

● Categories must be published 


Partners 

● If a Partner in Kaddra does not exist in Shopify then it will be added. 


Product Type 

● If a Product Type in Kaddra does not exist in Shopify then it will be added. 


Variants 

● The price will be set highest price available or come from a tier called “Web” 

● “This is a physical product” will come from the Product Type “Physical Delivery Required” but only when variants 

● Inventory management will be enabled by default


Inventory 

      ● Kaddra will match the warehouse if it’s set or the market name with a Shopify inventory location, if no match is found then no inventory will be set. 


Pricing 

● Shopify has no concept of tier-based pricing. The integration will look for a tier named “Web” and will use this price, if there is no “Web” tier then it will take the highest price available for the variant. 

● Tax will be charged if the variant is available in a market that has a tax rate > 0 


Publishing 

● Shopify does not allow to have a published version and draft version at the same time. Because of this, once a product is published in Kaddra any change in Kaddra will set it in Kaddra as draft, only once the product is published will the changes be synchronized with Shopify. 

○ Exception: Price and Inventory changes will be synchronized irrespective of 


Limitations 

● Product expiry. 

○ Shopify does not have a concept of expiration date on products, as such to remove products                        from Shopify would need to be done manually. 

● Multi-markets 

○ Shopify does not have a concept of multiple markets, as such there is no match for this. It will take the inventory across all markets and find a matching inventory location based on warehouse name, or market name


Orders 


Outbound 


Customers 

● When an order is created, the customer will be created in Shopify if it doesn’t exist already. 

● Customers created by Kaddra will be tagged with “Kaddra” 


Notification Settings 

● Orders originating in Kaddra will have notifications managed by Kaddra and so Shopify will not send notifications 


Identifying Kaddra Orders in Shopify 

● The source_name field will be set to kaddra 

● Also a tag called “kaddra” will be added. 


Inventory Policy 

● Kaddra will use the “decrement_obeying_policy” option when creating an order 

              ○ “Follow the product's inventory policy and claim inventory, if possible.” 


Delivery Fees 

● Any delivery fee in Kaddra will be added as the Shipping fee and the name of the fee will be in the Delivery Method. 


Pricing 

● Kaddra allows different prices for the same SKU, Shopify however does not support this. When the price in Kaddra is lower than or higher than the price in Shopify, when the Order goes to Shopify the price taken will be the price as stored in Shopify. 

● Discounts applied in Kaddra will not be reflected in Shopify 


Cancellations 

● If the order is cancelled in Kaddra it will be cancelled in Shopify ○ On Hold / PayNow / Credit Terms transactions will be marked as Voided ○ CC Transactions will be marked as Refunded, but the refund will be via Kaddra


Addresses 

● Changes to the Shipping Address will be updated in Shopify 

● Changes to the Billing address will NOT be updated in Shopify due to a limitation of Shopify API and System. 

○ https://community.shopify.com/c/Payments-Shipping-Fulfillment/Chan ge-Customers-Billing-Address/td-p/201980 


Fulfillment 

● Fulfillment in Shopify will be done when in Kaddra the order is marked as “Dispatched” 

○ The inventory location to fulfill from will match based on the market or warehouse name. 


Status Changes

Kaddra Status 

Shopify Fulfillment Status

Confirmed 

Unfulfilled

Preparing 

Unfulfilled

Dispatched 

Fulfilled

Delivered 

Fulfilled



Kaddra Status 

Shopify Payment Status

Paid 

Paid / Capture

Pending 

Authorized

On Hold 

Authorized