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 |
Products
WooCommerce Product | Crystal Product |
sku | uuid (this has to be done for Crystal to properly identify items) |
backorders | allow_backorder |
catalog_visibility | is_visible - ‘visible’ or ‘hidden’ based on boolean flag |
description | description |
short_description | short_description |
images | images - mapped to object with ‘src’ property |
name | name |
regular_price | price |
slug | If name != product_number name.toLowerCase().split(‘ ‘).join(‘-’)-product_number else defaults to name |
stock_quantity | quantity |
stock_status | if quantity > 0 -> ‘instock’ if quantity = 0 & allow_backorder = true -> ‘onbackorder’ if quantity = 0 & allow_backorder = false -> ‘outofstock’ |
WooCommerce Orders
WooCommerce Order | Crystal Order |
id | order_number |
date_paid_gmt converted to UTC | date |
line_items - { item.sku -> id, item.quantity -> quantity } | products |
tax_lines combined by rate_percent | tax_rate |
customer | customer |
total | payment amount |