All Collections
For Developers
Crystal E-Commerce Integration - Shopify Mappings
Crystal E-Commerce Integration - Shopify Mappings

Description of field mappings between Crystal and Shopify.

Jeff Hanrahan avatar
Written by Jeff Hanrahan
Updated over a week ago

Our e-commerce middleware retrieves e-commerce products that have been added or updated since the last successful sync. Each of these products is then compared with the inventory on the integration platform and inserted or updated accordingly. Sync is one-direction so changes made to products on the integration provider are not synced back to Crystal, and changes made in Crystal will overwrite their corresponding values in the integration when an update is performed.

Data coming from Crystal

Ecom Products: (api: /v1/ecom/products)

Product

Property

Type

Crystal source

id

string

products.uuid

vendor

n/a

item_type

n/a

product_number

string

products.product_number

name

string

products.ecom_title

description

string

products.ecom_description

short_description

string

products.ecom_short_description

images

string[]

products.ecom_images

tags

string[]

product.ecom_tags

allow_backorder

boolean

products.ecom_allow_backorder

quantity

number

calculated @ backened

price

number

products.price

created

string

products.created

last_updated

string

products.last_updated

is_visible

boolean

calculated: always true

Child Types

Vendor

Property

Type

Crystal source

id

string

accounts.uuid

name

string

accounts.ecom_name

code

string

accounts.code

ItemType

Property

Type

Crystal source

id

string

product_types.uuid

name

string

product_types.name

Shopify

Product Field Mappings

Shopify ProductInput

Crystal Ecom Product

handle

id (product uuid)

title

name (OR product_number if no name)

published

based on qty and org preference

images

images

description

description

vendor

vendor.name

tags

tags

status

‘ACTIVE’ (static string)

variant*.barcode

product_number

variant.price

price

variant.quantity

object => {

availableQuantity: quantity

locationId: shop.location (comes from MW db)

}

variant.tracked

object => {

tracked: ‘true’

}

variant.sku

id

variant.requiresShipping

true

variant.taxable

true

variant.inventoryPolicy

‘Continue’ or ‘Deny’ based on allow_backorder

variant.weightUnit

‘POUNDS’

*Shopify product mapping creates a single variant for the product to support quantity, price, tax, etc

Did this answer your question?