Omnata Product Documentation
  • Omnata Sync for Snowflake
    • What is Omnata Sync for Snowflake?
    • How it works
      • Terminology
      • Branching Mode
      • Sync Directions and Strategies
        • Outbound
        • Inbound
      • Rate Limiting
      • Access Control
      • Notifications
      • Security and Privacy
      • Internal tables
      • Internal Stored Procedures
      • FAQ
    • Step-by-step guides
      • 1. Install the Omnata Sync Engine
      • 2. Install the Omnata Plugin
      • 3. Configure the Plugin
      • 4. Create a connection
      • 5. Create a sync
    • Apps
      • Aerobotics
        • 📘Release History
      • Airtable
        • 📘Release History
      • Amazon Ads
        • Privacy Notice
      • ApprovalMax
        • 📘Release History
      • Bamboo HR
        • 📘Release History
      • Clockify
        • 📘Release History
      • Contentful
        • 📘Release History
      • GitHub
        • 📘Release History
      • Github
      • Google Ads
        • 📘Release History
      • Google Sheets
        • 📘Release History
      • HubSpot
        • 📘Release History
      • Hubspot
      • Infor Data Lake
        • 📘Release History
      • Jira
        • 📘Release History
      • LinkedIn Ads
        • 📘Release History
      • Mailgun
        • 📘Release History
      • Marketo
        • 📘Release History
      • Meta Marketing
        • 📘Release History
      • Microsoft Ads
        • 📘Release History
      • Microsoft Dynamics 365 Business Central
        • 📘Release History
        • 📘Release History
        • 📘Release History
        • 📘Release History
        • 📘Release History
      • Microsoft Entra ID
        • 📘Release History
        • 📘Release History
        • 📘Release History
        • 📘Release History
      • Microsoft Excel
      • Microsoft SQL Server
        • 📘Release History
      • Monday.com
        • 📘Release History
      • MRPeasy
        • 📘Release History
      • PayHero
        • 📘Release History
      • Pinterest Ads
        • Privacy Policy
      • PostgreSQL
        • 📘Release History
      • Salesforce
        • Salesforce Permissions needed
        • Formula Fields
        • How we use the Salesforce APIs
        • 📘Release History
      • Salesforce Marketing Cloud
        • OAuth for APIs, SFTP for file transfer with GPG on outbound
        • OAuth for APIs, SFTP for file transfer
        • OAuth for APIs, Cloud Storage for file transfer
        • 📘Release History
      • Shopify
        • Outbound sync data structures
        • 📘Release History
      • Slack
        • 📘Release History
      • Tiktok Ads
        • Privacy Policy
      • Typeform
        • 📘Release History
      • Wise
        • 📘Release History
      • Xero
        • 📘Release History
      • Zendesk Support
        • 📘Release History
        • 📘Release History
    • Plugins
      • Anatomy of a Plugin
      • Example Plugins
        • Example Plugin: Slack
        • Example Plugin: Zoho CRM
      • Creating Plugins
      • Advanced Plugin topics
        • Advanced rate limiting / concurrency
        • Custom Jinja filters
        • Custom Record Transformers
        • Dynamic Configuration Forms
        • Test case generation
    • Branching
      • Inbound Sync branching
      • Outbound Sync branching
    • Integrations
      • dbt
        • Validation Tests (coming soon)
    • 📘Release History
  • Omnata Connect for Salesforce
    • Overview
    • Getting Started
      • Install the Salesforce App
      • Connect to your data warehouse
        • Snowflake
        • BigQuery
        • Rockset
        • Firebolt
        • SingleStore (previously MemSQL)
      • Deciding which mode to use
    • Omnata with Salesforce Connect (External Objects)
      • Object Configuration
      • View your data in a list
      • Link to other objects
      • Use in a Report
      • Database schema changes
      • Writing to External Objects
    • Omnata with Salesforce Lightning Components
      • Object Configuration
      • View your data in a list
      • Link to other objects
      • Using the Lightning Component on a page
      • Assigning Permissions
    • Advanced Features
      • Row Level Filtering
      • Multi-Currency handling
        • About Multi-Currency
        • Support in Omnata Connect
        • Apex Features
    • Integrations
      • Datadog
    • Omnata with Salesforce Apex
    • Security
    • Use cases
      • Linked object drill-downs
      • Global Search
      • ERP and historical data
      • Embedded product metrics
    • Best Practices
      • Global Search
      • Change Management
      • Snowflake table design
      • Salesforce page layout
      • Salesforce Caching
Powered by GitBook
On this page
  • Customer
  • Outbound Sync: Create
  • Outbound Sync: Update
  • Outbound Sync: Upsert
  • Outbound Sync: Delete
  • Product
  • Outbound Sync: Create
  • Outbound Sync: Update
  • Outbound Sync: Upsert
  • Outbound Sync: Delete
  • Order
  • Outbound Sync: Create
  • Outbound Sync: Update
  • Outbound Sync: Upsert
  • Outbound Sync: Delete
  • Fulfillment
  • Outbound Sync: Create
  • Outbound Sync: Update
  • Outbound Sync: Upsert
  • Outbound Sync: Delete
  • Product Variant
  • Outbound Sync: Create
  • Outbound Sync: Update
  • Outbound Sync: Upsert
  • Outbound Sync: Delete
  • Inventory Item Levels
  • Outbound Sync: Create
  • Outbound Sync: Update
  • Outbound Sync: Upsert
  • Outbound Sync: Delete
  1. Omnata Sync for Snowflake
  2. Apps
  3. Shopify

Outbound sync data structures

This page describes the data types, structures and examples for each field for each sync operation.

PreviousShopifyNextRelease History

Last updated 21 days ago

Outbound syncs require certain fields to be specific data types.

Supported Outbound Sync operations:

Note: 1. * means the field is REQUIRED to be filled and cannot be null. 2. enum fields only accepts certain terms as strings which are shown in its corresponding example.

Customer

Outbound Sync: Create

This operation creates a new customer in Shopify.

Field Name
Type
Example

*first_name

string

John

*last_name

number

Smith

tags

string

first

phone

string

+60123456789

email

string

testexample@gmail.com

note

string

Bulk Customer

tax_exempt

boolean

TRUE | FALSE

email_marketing_consent

object

sms_marketing_consent

object

addresses

array of objects

Outbound Sync: Update

This operation updates the details of an existing customer in Shopify. Will not update if no existing customer ID is found.

Field Name
Type
Example

*record_id

number

651023456789

first_name

string

John

last_name

number

Smith

tags

string

first

phone

string

+60123456789

email

string

testexample@gmail.com

note

string

Bulk Customer

tax_exempt

boolean

TRUE | FALSE

email_marketing_consent

object

sms_marketing_consent

object

addresses

array of objects

Outbound Sync: Upsert

This operation creates a customer if the customer has never been created with this sync operation. This operation will update the existing customer's details if the customer was previously created from this sync operation.

Field Name
Type
Example

*record_id

number

651023456789

*first_name

string

John

*last_name

number

Smith

tags

string

first

phone

string

+60123456789

email

string

testexample@gmail.com

note

string

Bulk Customer

tax_exempt

boolean

TRUE | FALSE

email_marketing_consent

object

sms_marketing_consent

object

addresses

array of objects

Outbound Sync: Delete

This operation deletes an already existing customer. Will not delete if existing customer ID is not found.

Field Name
Type
Example

*record_id

number

651023456789

Object Examples (Customer)

[
    { 
        // first_name, last_name is required
        "address1": "123 Oak St",
        "city":"Ottawa",
        "province":"ON",
        "phone":"555-1212",
        "zip":"123 ABC",
        "first_name":"Mother",
        "last_name":"Lastnameson",        
        "country":"CA"
    }
]
{
   "state": "subscribed",
   "opt_in_level": "confirmed_opt_in",
}
{
   "state": "subscribed",
   "opt_in_level": "confirmed_opt_in",
   "consent_collected_from": "OTHER"
}

Objects or array of objects should not be empty. At least one field of the object should be present when performing a sync operation.


Product

Outbound Sync: Create

This operation creates a new product in Shopify.

Field Name
Type
Example

*title

string

Computer Laptop 32 inch

body_html

string

Silent, powerful and affordable laptop!

product_type

string

Laptop

published_scope

string (enum)

web | global

status

string (enum)

active | archived | draft

tags

string

Affordable, Big Screen

variants

array of objects

vendor

string

Steve Jobs

Outbound Sync: Update

This operation updates the details of an existing product in Shopify. Will not update if no existing product ID is found.

Field Name
Type
Example

*record_id

number

632910392

title

string

Computer Laptop 32 inch

body_html

string

Silent, powerful and affordable laptop!

product_type

string

Laptop

published_scope

string (enum)

web | global

status

string (enum)

active | archived | draft

tags

string

Affordable, Big Screen

variants

array of objects

vendor

string

Steve Jobs

Outbound Sync: Upsert

This operation creates a product if the product has never been created with this sync operation. This operation will update the existing product's details if the product was previously created from this sync operation.

Field Name
Type
Example

*record_id

number

632910392

*title

string

Computer Laptop 32 inch

body_html

string

Silent, powerful and affordable laptop!

product_type

string

Laptop

published_scope

string (enum)

web | global

status

string (enum)

active | archived | draft

tags

string

Affordable, Big Screen

variants

array of objects

vendor

string

Steve Jobs

Outbound Sync: Delete

This operation deletes an already existing product. Will not delete if existing product ID is not found.

Field Name
Type
Example

*record_id

number

632910392

Object Examples (Product)

// Each item represents one variant of the product
[
  {
    "option1":"First",
    "price":"10.00",
    "sku":"123"
  },
  {
    "option1":"Second",
    "price":"20.00",
    "sku":"123"
  }
]

Each variant item in the object can accept more parameters than stated in the example.


Order

Outbound Sync: Create

This operation creates a new order in Shopify.

Field Name
Type
Example

*line_items

array of objects

email

string

testuser@example.com

phone

string

+60123456789

billing_address

object

shipping_address

object

discount_codes

array of objects

financial_status

string (enum)

pending | paid | authorized | partially_paid | partially_refunded | refunded | voided

tax_lines will fail if line_items have tax_lines object

array of objects

customer

object

fulfillment_status

string

fulfilled | null | partial | restocked

note

string

Bulk order

note_attributes

array of objects

buyer_accepts_marketing

boolean

TRUE | FALSE

tags

string

RTX, Intel, SSD, Music

The entire create operation for the record will FAIL if the line_items field, which also accepts a tax_lines field in the object, has a present tax_lines field as part of the object.

It is advisable to fill the tax_lines field as part of each item if each individual item has it's own tax details.

If all items share the same tax details, it is advisable to not have any tax_lines objects in each line_item but part of the optional parameter instead.

In Object Examples (Order) demonstrates the usage of the tax_lines object in line_items.

Outbound Sync: Update

This operation updates the details of an existing order in Shopify. Will not update if no existing order ID is found.

Field Name
Type
Example

*record_id

number

50123456789

note

string

Bulk order

note_attributes

array of objects

buyer_accepts_marketing

boolean

TRUE | FALSE

tags

string

RTX, Intel, SSD, Music

phone

string

shipping_address

object

customer

null

null

The customer field only accepts a null argument. This will remove the customer that placed the order. Shopify API has not provided a way to insert an existing customer into an order after creation.

Outbound Sync: Upsert

This operation creates an order if the order has never been created with this sync operation. This operation will update the existing order's details if the product was previously created from this sync operation.

Field Name
Type
Example

*line_items

array of objects

Example under "Object Examples"

*record_id

number

50123456789

email

string

testuser@example.com

phone

string

+60123456789

billing_address

object

shipping_address

object

discount_codes

array of objects

financial_status

string (enum)

pending | paid | authorized | partially_paid | partially_refunded | refunded | voided

tax_lines will fail if line_items have tax_lines object

array of objects

customer

object | null

fulfillment_status

string (enum)

fulfilled | null | partial | restocked

note

string

Bulk order

note_attributes

array of objects

buyer_accepts_marketing

boolean

TRUE | FALSE

tags

string

RTX, Intel, SSD, Music

If this operation performs a create operation, the customer field will be able to accept the object.

If this operation performs an update operation, the customer field can only accept a null object. If this field remains filled with a customer object, it will be ignored and the corresponding customer will not be updated in the order. A null object will remove the customer from the order.

Outbound Sync: Delete

This operation deletes an already existing order. Will not delete if existing order ID is not found.

Field Name
Type
Example

*record_id

number

50123456789

Object Examples (Order)

[
  {
    "title":"Big Brown Bear Boots",
    "price":74.99,
    "grams":"1300",
    "quantity":3
  }
]
[
  {
    "title":"Big Brown Bear Boots",
    "price":74.99,
    "grams":"1300",
    "quantity":3,
    "tax_lines":[
        {
            "price":13.5,
            "rate":0.06,
            "title":"State tax"
        }
    ]
  }
]
{
    "first_name":"John",
    "last_name":"Smith",
    "address1":"123 Fake Street",
    "phone":"555-555-5555",
    "city":"Fakecity",
    "province":"Ontario",
    "country":"Canada",
    "zip":"K2P 1L4"
}
[
  {
     "code":"FAKE30",
     "amount":"9.00",
     // type is an enum: fixed_amount | percentage | shipping
     "type":"percentage"
  }
]
[
  {
    "price":6,
    "rate":0.06,
    "title": "State Tax"
  }
]
{
    "first_name":"Paul",
    "last_name":"Norman",
    "email":"paul.norman@example.com"
}

Fulfillment

Outbound Sync: Create

This operation fulfills an existing unfulfilled order's items given the fulfillment order ID. Orders that have all items fulfilled will be marked as fulfilled. Orders that have only part of it's items fulfilled will be marked as partially fulfilled.

Field Name
Type
Example

*line_items_by_fulfillment_order

array of objects

message

string

Leave at doorstep

notify_customer

boolean

TRUE | FALSE

origin_address

object

tracking_info

object

Outbound Sync: Update

This operations updates an existing fulfilled order's details, such as the tracking information and delivery company.

Field Name
Type
Example

*record_id

number

4123456789

tracking_info

object

notify_customer

boolean

TRUE | FALSE

Outbound Sync: Upsert

This operation will fulfill an order if the order has never been fulfilled with this sync operation. This operation will update the existing fulfillment's details if the order was previously fulfilled from this sync operation.

Field Name
Type
Example

*line_items_by_fulfillment_order

array of objects

*record_id

number

4123456789

tracking_info

object

notify_customer

boolean

TRUE | FALSE

Outbound Sync: Delete

This operation will unfulfill an order, changing the items of orders from fulfilled into unfulfilled state.

Field Name
Type
Example

*record_id

number

4123456789

Object Examples (Fulfillment)

[
  // only fulfillment_order_id is required
  // fulfillment_order_line_items is optional
  {
    "fulfillment_order_id":1046000819,
    "fulfillment_order_line_items":[{ "id":1058737537, "quantity":1 }]
  }
]
{
   "address1": "123 Test Street",
   "address2": "Test Town",
   "city": "Sydney",
   "country_code": "AU",
   "province_code": "B1",
   "zip": "2000"
}
{
    // company - The name of the tracking company.
    "company":"FedEx",
    // number - The tracking number for the fulfillment. 
    "number": "MS1562678",
    // url - The URL to track the fulfillment. 
    "url": "https://www.my-shipping-company.com?tracking=MS1562678"
}

Product Variant

Outbound Sync: Create

This operation creates a new product variant from a product.

Field Name
Type
Example

*product_id

number

123456789

title

string

Pen (Blue)

price

string

15.99

Outbound Sync: Update

This operation updates an existing product variant from a product.

Field Name
Type
Example

*record_id

number

123456789

*product_id

number

123456789

title

string

Pen (Blue)

price

string

15.99

Outbound Sync: Upsert

This operation updates an existing product variant from a product, or creates a new product variant if the same title does not exist.

Field Name
Type
Example

*product_id

number

123456789

*record_id

number

123456789

title

string

Pen (Blue)

price

string

15.99

Outbound Sync: Delete

This operation deletes an exisitng product variant from a product.

Field Name
Type
Example

*product_id

number

123456789


Inventory Item Levels

Inventory Item Levels syncs the inventory count of a product variant at a location.

An inventory level is the object that connects between a product variant and a location, allowing stock to be moved from/into the location.

Outbound Sync: Create

This operation creates a new inventory level between an inventory item and a location. Having an inventory level allows stock to be stocked at that specified location.

Field Name
Type
Example

*inventory_item_id

number

123456789

inventory_level_amount

object

Outbound Sync: Update

This operation updates the inventory level stock count between an inventory item and a location. It replaces the stock count for that inventory level.

Field Name
Type
Example

*inventory_item_id

number

123456789

quantity_name

string

available | on_hand

inventory_level_amount

object

Outbound Sync: Upsert

This operation updates the inventory level stock count between an inventory item and a location. If there is no exsiting inventory level to update, it will create a new inventory level with the corresponding amount initially stocked.

Field Name
Type
Example

*inventory_item_id

number

123456789

quantity_name

string

available | on_hand

inventory_level_amount

object

Outbound Sync: Delete

This operation deletes the inventory level.

Field Name
Type
Example

*inventory_item_id

number

123456789

inventory_level_amount

object

If the given inventory level (the combination of inventory_item_id and location_id) is the last remaining inventory level associated with the product variant, it cannot be deleted.

Object Examples (Inventory Item Levels)

{
    // "5600902030" the location ID of the object
    // 200: the quantity that needs to be stocked at the location
    "5473020810": 100,
    "5600902030": 200,
    "5473020810": 300
}

Reference:

| null

https://shopify.dev/docs/api/admin-rest/2024-07/resources/product-variant
Customers
Products
Orders
Fulfillments
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"
Example under "Object Examples"