Child pages
  • Shopify IPaaS Documentation
Skip to end of metadata
Go to start of metadata

6/29/2022

James Larry Gaines II







1. INTRODUCTION


Technical Description

This document describes how we can integrate Shopify with IPaaS. This integration provides an automated way to move orders, transactions, products and customers from an external eCommerce Application to Shopify and vice versa. It integrates with Shopify via API calls and Web Hooks.

 

IPaaS is a broker system in between Shopify and another external eCommerce System. It facilitates data transfers to and from between them. If say you need to sync data from a Big Commerce System to Shopify and vice versa, you upload the necessary application plugins to IPaaS. One for each system, which recognizes and interacts with the system and sends this to IPaaS.

 

If say a data arrives from Shopify, the defined mapping rule is used to understand how data from Shopify maps back to IPaaS. And when this is send to Shopify, a similar mapping is used to specify how an IPaaS data is mapped back to Shopify. This also happens vice versa.

 

The following describes how data transfer works when an External System is integrated to IPaaS and when a data is sent From an External System such as Shopify To IPaaS.




IPaaS is integrated with the external system via Web hooks. This is done by coding the webhook subscription in the plugin. When the plugin is installed in IPaaS, IPaaS automatically subscribes to the webhook offered by the external system.


When data arrives, it follows the process above. The process is:


 


Process

Description

1. Webhook Call happens

In this process, IPaaS will start the basic operations which includes instantiating all the connection classes, translation utility classes and API Call Wrapper

2. Prepare the Source Data

This process is the 2nd step. IPaaS will then do a Get API Call to the external system by passing the ID that was sent by the Web Hook to get the data.

3. Prepare Translation process

The next step is to translate the data received as appropriate

4. Translate and Transfer the Data

IPaaS will then use the mappings configured in its system to map the data received from the Get call to IPaaS.

5. Post Transfer Procedure

This procedure does the post transfer actions.


 


 


The following describes how data transfer works when an External System is integrated with IPaaS and when a data is sent TO an External System such as Shopify FROM IPaaS.






Process

Description

1. Webhook Call happens

In this process, IPaaS will start the basic operations which includes instantiating all the connection classes, translation utility classes and API Call Wrapper

2. Prepare the Source Data

This process is the 2nd step. IPaaS will prepare EstimateTotalAPICallsMade

3. Prepare Translation process

The next step is to translate the data received as appropriate. It will also execute the GetDestinationObject.

It will also map the data from IPaaS to the required data by Shopify API methods.

4. Translate and Transfer the Data

IPaaS will then call the API methods of Shopify or the target Ecommerce application. IPaaS will use the mappings as parameter to call the external API methods.

5. Post Transfer Procedure

This procedure does the post transfer actions.

6. Webhook Call happens

In this process, IPaaS will start the basic operations which includes instantiating all the connection classes, translation utility classes and API Call Wrapper

7. Prepare the Source Data

This process is the 2nd step. IPaaS will prepare EstimateTotalAPICallsMade

8. Prepare Translation process

The next step is to translate the data received as appropriate. It will also execute the GetDestinationObject.

It will also map the data from IPaaS to the required data by Shopify API methods.

9. Translate and Transfer the Data

IPaaS will then call the API methods of Shopify or the target Ecommerce application. IPaaS will use the mappings as parameter to call the external API methods.

10. Post Transfer Procedure

This procedure does the post transfer actions.


 


2. INTEGRATION SETUP WITH SHOPIFY AND IPAAS


Setup Shopify


The first thing we need to do is to create a Private Apps. Follow the instructions below

1. Login to your Shopify Store Admin Panel

2. Go To Apps as shown below :

 



3. Click on Manage Private Apps


 




 


4. Click on Create New Private App



 


5. Fill up the following data


Name

 

Values

Private App Name

 

Name of the App you want to name it

Emergency Developer Email

 

Enter the contact email or developer email

Admin API Permissions

Enable the following :

 

Customers -> Read and Write

Draft Order -> Read and Write

Fulfillment Services -> Read and Write

Inventory -> Read and Write

Locations -> Read Access

Order Editing -> Read and Write

Orders -> Read and Write

Product Listings -> Read and Write

Products -> Read and Write

 

 

Webhook API Version

choose : 2021-04

 

Storefront API

Enable the following :

 

Allow this app to access your storefront data

Read products, variants and collections

Read and modify Customer details

Read and modify checkouts

Read content like articles, blogs and comments

 

 



6. Click on Save button.


7. If a popup opens, click on Create App


8. Copy the API Key and Password to somewhere safe. We will reference this later in IPaaS


Setup IPaaS


Once setup, login to IPaaS.

1. Login to your IPaaS Admin Panel

2. Go to Subscription Management as shown below :

 



3. Click on Search Certified Integration Marketplace and Subscribe.



4. On the available companies, choose Shopify

 

5. Fill the following :

 

Name

 

Values

Name

 

Enter the name of this subscription

Versions

Choose the latest version

 

API Store

Enter the name of your API Store

 

API Key

Enter the API Key from Shopify

API Password

Enter the API Password from Shopify

API Version

Enter 2021-04

 

6. Save Settings


4. CONFIGURE IPAAS WEBHOOKS


Do the following to configure IPaaS WebHooks.


  1. On the subscriptions page, configure the Webhook Internal by clicking on the below



2. Make the application’s webhooks active by clicking the switch as shown below. Configuring this to Active will enable the Application Webhooks to be captured by IPaaS. Click each of the below:




3. On the subscriptions page, configure the Webhook Internal by clicking on the below




4. Enable all hooks to be active as shown below in the example. Make everything active.



5. CONFIGURE IPAAS SHOPIFY TRANSLATIONS

Do the following to configure IPaaS Shopify Translations:


  1. Do the following to configure IPaaS Shopify Translations:



2. Click on Add Translation Collections as shown below



3. Add the following translations below as


  • ProductStatus

Name


Values

Name


ProductStatus

Direction

From IPaaS

Mapping Type

Field

Destination

Field : Status

Source

Field : Status







Lookup Translations


Source

Destination



Active



active

Disabled

draft

Discontinued

archive

Preorder

draft




Output





  • Transaction


Name


Values

Name


SH Transaction Status To iPaaS

Direction

To IPaaS

Mapping Type

Field

Destination

Field : Status

Source

Field : Status




Lookup Translations

Source

Destination



CONFIRMED



Pending

PENDING

Pending

PAID

Pending

REFUNDED

Complete

VOIDED

Cancelled

SHIPPED

Shipped

FULFILLED

Complete


Output



  • ProductStatus To IPaaS


Name


Values

Name


ProductStatusToIPaaS

Direction

To IPaaS

Mapping Type

Field

Destination

Field : Status

Source

Field : Status





Lookup Translations


Source

Destination

active

Active

draft

Preorder

archive

Discontinued




Output



  • Transaction Line Status to IPaaS


Name


Values

Name


SH Transaction Line Status To iPaaS

Direction

To IPaaS

Mapping Type

Field

Destination

Field : Status

Source

Field : FulfillmentStatus



Lookup Translations


Source

Destination



PARTIAL



Pending

FULFILLED

Complete

NOT ELIGIBLE

Cancelled



Output



  • Transaction Status From IPaaS


Name


Values

Name


SH Transaction Status From iPaaS

Direction

From IPaaS

Mapping Type

Field

Destination

Field : Status

Source

Field : Status



Lookup Translations

Source

Destination



Pending



PENDING

Complete

FULFILLED

Cancelled

VOIDED

Shipped

SHIPPED

Backorder

PENDING



Output




7. CONFIGURE MAPPINGS BETWEEN SHOPIFY AND IPAAS


In order for the Transfer of Data between Shopify and IPaaS to work, a mapping needs to be created. The mapping is a way for the system to recognize and understand what a field’s equivalent in Shopify and vice versa sot that transferr of data is correctly done.

To do the mapping, do the following :


  1. Go to the Subscriptions and click on Manage Mappings




2.  Click on Add New Mapping Collection




Customer Mapping




  1. SH Customer Delete from IPaaS


Name


Values

Name


SH Customer Delete From IPaaS

Sync Type

Delete

Parent


Direction

From IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None




Mapping

Mapping Type

Source

Destination

Field

CustomerNumber

Id




2. SH Customer AddUpdate From IPaaS


Name


Values

Name


SH Customer AddUpdate From IPaaS

Sync Type

Add/Update

Parent


Direction

From IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None



Mapping


Mapping Type

Source

Destination

Field

EmailAddress

Email

Field

FirstName

Firstname

Field

LastName

Lastname

Field

Comment

Note







3. SH CustomerAddress AddUpdate From IPaaS




Name


Values

Name


SH CustomerAddress AddUpdate From IPaaS

Sync Type

Add/Update

Parent

SH Customer AddUpdate From IPaaS

Direction

From IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None





Mapping

Mapping Type

Source

Destination

Field

CustomerId

CustomerId

Field

FirstName

FirstName

Field

LastName

LastName

Field

Company

Company

Field

Address1

Address1

Field

Address2

Address2

Field

City

City

Field

Country

Country

Field

PostalCode

Zip

Field

PhoneNumber

Phone



Output






4. SH Customer AddUpdate To IPaaS


Name


Values

Name


SH Customer AddUpdate To IPaaS

Sync Type

Add/Update

Parent

None

Direction

To IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None



Mapping


Mapping Type

Source

Destination

Field

Id

CustomerNumber

Field

Firstname

FirstName

Field

Lastname

LastName

Field

Email

EmailAddress

Field

Note

Comment


Output




5. SH CustomerAddress AddUpdate To IPaaS


Name


Values

Name


SH CustomerAddress AddUpdate To IPaaS

Sync Type

Add/Update

Parent

SH Customer AddUpdate To IPaaS

Direction

To IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None

Mapping




Mapping

Mapping Type

Source

Destination

Field

FirstName

FirstName

Field

LastName

LastName

Field

Company

Company

Field

Address1

Address1

Field

Address2

Address2

Field

City

City

Field

Country

Country

Field

Zip

PostalCode

Field

Phone

PhoneNumber




Output



6. SH Customer Delete To IPaaS


Name


Values

Name


SH Customer Delete To IPaaS

Sync Type

Delete

Parent


Direction

To IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None








Mapping


Mapping Type

Source

Destination

Field

Id

CustomerNumber




Output





Product Mapping


1. SH Product AddUpdate From IPaaS


Name


Values

Name


SH Product AddUpdate From IPaaS

Sync Type

Add/Update

Parent


Direction

From IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None





Mapping 


Mapping Type

Source

Destination

Field

Id

Title

Dynamic Formula

Coalesce("<Strong>",Description,"</Strong>")

BodyHtml

Static

ipass-integration

Vendor

Field

Type

ProductType

Lookup Translation

ProductStatus

Status

Field

Sku

SKU

Field

SalePrice

Price

Field

Barcode

Barcode




 



 


 


 

2. SH ProductVariant AddUpdate From IPaaS


Name

 

Values

Name

 

SH ProductVariant AddUpdate From IPaaS

Sync Type

Add/Update

Parent

SH Product AddUpdate From IPaaS

Direction

From IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None


 

Mapping 

Mapping Type

Source

Destination

Field

DefaultPrice

Price

Field

Sku

SKU

Static

continue

InventoryPolicy

Static

manual

FulfillmentService

Statuc

shopify

InventoryManagement

Field

Options

VariantOptions

Field

Barcode

Barcode

Field

Weight

Weight

 

 



 

 

 

3. SH ProductVariantInventory Add Update From IPaaS

 

Name

 

Values

Name

 

SH ProductVariantInventory Add Update From IPaaS

Sync Type

Add/Update

Parent

SH ProductVariant AddUpdate From IPaaS

Direction

From IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None


Mapping


Mapping Type

Source

Destination

Field

QtyAvailable

Available

 

Output





4. SH ProductOption AddUpdate From IPaaS



Name

 

Values

Name

 

SH ProductOption AddUpdate From IPaaS

Sync Type

Add/Update

Parent

SH Product AddUpdate From IPaaS

Direction

From IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None

 

Mapping

Mapping Type

Source

Destination

Field

OptionName

Name

 

Output





5. SH ProductOptionValue AddUpdate From IPaaS


Name

 

Values

Name

 

SH ProductOptionValue AddUpdate From IPaaS

Sync Type

Add/Update

Parent

SH ProductOption AddUpdate From IPaaS

Direction

From IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None

 

Mapping

Mapping Type

Source

Destination

Field

Value

Value

 

Output




6.  SH Product Delete From IPaaS


Name

 

Values

Name

 

SH Product Delete From IPaaS

Sync Type

Add/Update

Parent

SH ProductOption AddUpdate From IPaaS

Direction

From IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None


Output



7.  SH Product AddUpdate To IPaaS

Name

 

Values

Name

 

SH Product AddUpdate To IPaaS

Sync Type

Add/Update

Parent

None

Direction

To IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None

 

Mapping

Mapping Type

Source

Destination

Dynamic Formula

Default(SKU,"0")

Sku

Field

BodyHtml

Description

Dynamic Formula

(PublishedScope=="web" ? "Virtual" : "Physical")

Type

Field

Price

DefaultPrice

Field

Barcode

Barcode

Field

Title

Name

Field

Price

SalePrice

Lookup Translation

ProductStatusToIPaaS

Status

Field

TrackingMethod

TrackingMethod


Output





8. SH ProductVariant AddUpdate To IPaaS

 

Name

 

Values

Name

 

SH ProductVariant AddUpdate To IPaaS

Sync Type

Add/Update

Parent

SH Product AddUpdate To IPaaS

Direction

To IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None

 

Mapping


Mapping Type

Source

Destination

Field

Barcode

Barcode

Field

Price

DefaultPrice

Field

Price

SalePrice

Field

SKU

Sku

Field

VariantOptions

Options

 

Output






9. SH ProductOption AddUpdate To IPaas

 

Name

 

Values

Name

 

SH ProductOption AddUpdate To IPaas

Sync Type

Add/Update

Parent

SH Product AddUpdate To IPaaS

Direction

To IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None

 

Mapping

Mapping Type

Source

Destination

Field

Name

OptionName

Field

Position

Order

 

Output






10. SH ProductOptionValue AddUpdate To IPaaS


Name

 

Values

Name

 

SH ProductOptionValue AddUpdate To IPaaS

Sync Type

Add/Update

Parent

SH ProductOption AddUpdate To IPaas

Direction

To IPaaS

Mapping Filter

NONE

Error Filter

NONE

Description

None

 

Mapping

Mapping Type

Source

Destination

Field

Value

Value

Field

Position

Order

 

Output

 




Transaction Mapping


1. SH Transaction Header AddUpdate From IPaaS


Name

 

Values

Name

 

SH Transaction Header AddUpdate From IPaaS

Sync Type

Add/Update

Parent

 

Direction

From IPaaS

Mapping Filter

(Type=="Order")

Error Filter

NONE

Description

None

 

Mapping

Mapping Type

Source

Destination

Lookup Translation

SH Transaction Status From iPaaS

Status

Static

"USD"

Currency

Field

EmailAddress

Email

Field

Total

TotalPrice

Field

Subtotal

SubtotalPrice

Field

TaxAmount

TotalTax

Field

DiscountAmount

TotalDiscounts

Dynamic Formula

GetExternalId(CustomerId, "Customer", SpaceportSystemId)

CustomerId

Field

TransactionNumber

TransactionId

Field

TotalQty

ItemsTotal

Field

ShippingAmount

ShippingPrice





Output








  • No labels