Skip to main content

Zoho Inventory - Data Mapping & Synchronisation

In this page we give you an overview of what and when we synchronize data.

Carla Domingos avatar
Written by Carla Domingos
Updated in the last 15 minutes

This article is designed to provide you with a clear understanding of how data flows, ensuring your operations run smoothly and efficiently.

Synchronisation general board

Entity

Sync FROM -> TO

Frequency

Products

ZohoInv > OP

each 60 minutes

Product Compositions

ZohoInv > OP

each 60 minutes

Suppliers

ZohoInv > OP

each 60 minutes

Supplier Products

ZohoInv > OP

each 60 minutes

Sell Orders

ZohoInv > OP

each 60 minutes

Buy Orders

ZohoInv > OP

each 60 minutes

OP > ZohoBooks

Every 15 min

Buy Order Deletions

ZohoInv > OP

each 60 minutes

Buy Order Lines

(including Deletions)

ZohoInv > OP

each 60 minutes

Receipt Lines (Item Deliveries)

ZohoInv > OP

each 60 minutes

Options and features

Zoho Region: The Region of the company registered in Zoho

Products - Enable/Disable stockLevel sync from Zoho (1*)

An option that allows a customer to decide if we should sync or not the product's stockLevel from Zoho, some customers have third-party apps and sync to our API to manage the stockLevel.

(Sync_Stock default true)

Products - Sync stockLevel from specific WarehouseIDs from Zoho (1*)

If clients have multiple warehouse sources and want to only get stock from some, they may only select specific warehouses from Zoho Inventory by clearly stating the warehouse id’s pretended separated by commas. Furthermore, each ID should be numerical.

(warehouse_ids default "allWarehouses")

ProductCompositions - Sync composedProducts from Zoho (1*)

The client can choose not to sync the products' assembled attribute to Optiply by having this flag set to false.

(Sync_Assembled default false)

SellOrders - Sync only Completed Orders from Zoho

An option that allows a customer to decide if we should sync All Order statuses to Optiply or only salesorders.order_status == "closed". if pullAllOrders = True We pull all orders except salesorders.status == "draft"

(pullAllOrders default true)

Assembly to Zoho - Sync AssemblyOrders from Optiply to a specific warehouseID to Zoho

An option that allows a customer to decide if we should send the AssemblyOrders to a specific warehouse ID in Zoho. This is not mandatory, so by default, we don’t send this.

(export_warehouse_id default NULL)

(1*) It is not possible to change this option in your app. Please report to our Customer Support at support@optiply.nl or via chat.


Products

Optiply

Zoho Inventory

name

name

skuCode

sku

price

rate

articleCode

purchase_description

status

if product_type = goods AND item_type = inventory AND status = active Then status = enabled

Otherwise status = disabled

eanCode

ean

UnlimitedStock

False

stockLevel (*)

actual_available_for_sale_stock

assembled (*)

is_combo_product

remoteId

item_id

createdAtRemote

created_time

(*) The customer can decide if we should map this field or not. By default, we will map this field.

Product Compositions

Optiply

Zoho Inventory

composedProductId

composite_item_id

partProductId

mapped_items.item_id

partQuantity

mapped_items.quantity

remoteId

mapped_items.mapped_item_id


Suppliers

Optiply

Zoho Inventory

name

contacts.contact_name

email

contacts.email

remoteId

contacts.contact_id

Supplier Products

Optiply

Zoho Inventory

name

name

skuCode

sku

articleCode

upc

eanCode

ean

price

purchase_rate

supplierId

vendor_id

productId

item_id


Sell Orders

Optiply

Zoho Inventory

totalValue

total

placed

date

remoteId

salesorder_id

If pullAllOrders = False, we pull only salesorders.order_status == "closed"

If pullAllOrders = True, we pull all orders except salesorders.status == "draft"

Sell Order Lines

Optiply

Zoho Inventory

productId

line_items.item_id

quantity

line_items.quantity

subtotalValue

line_items.rate * line_items.quantity


Buy Orders Zoho > Optiply

Optiply

Zoho Inventory

buyOrder.supplierId

op supplierId

buyOrder.placed

date

buyOrder.completed

Timestamp when order_status becomes “closed”

buyOrder.expectedDeliveryDate

expected_delivery_date

remoteId

purchaseorder_id

buyOrder.totalValue

total * exchange_rate

Buy Order Lines Zoho > Optiply

Optiply

Zoho Inventory

productId

line_items.item_id

quantity

line_items.quantity

subtotalValue

line_items.quantity * line_items.bcy_rate * buyorder_exchange_rate

buyOrderId

purchaseorder_id

Since on Zoho Inventory multiple lines for the same product can be created, this will only be reflected in 1 line on optiply with the sums of lines inside Zoho Inventory with the same productId.


Buy Orders Optiply > Zoho

Optiply

Zoho Inventory

buyOrder.supplierId

vendor_id

If export_buyOrder_payment_terms is set, it will be sent with the purchase order

Buy Orders Lines Optiply > Zoho

Optiply

Zoho Inventory

product.remoteId

item_id

quantity

quantity


Item Deliveries

Optiply

Zoho Inventory

Ocurred

Date

Quantity

line_items.quantity

BuyOrderLineId

optiplyBuyOrderLineId

remote_id

receive_id

This integration supports multiple warehouses. If you have multiple warehouse sources and want to only get stock from some, they may only select specific warehouses from Zoho Inventory by clearly stating the warehouse IDs pretended separated by commas. Furthermore, each id should be numerical.


Production Orders

Production Orders (Assembly) - Zoho Inventory to Optiply

Optiply

Zoho Inventory

totalValue

total

remoteID

bundle_id

placed

date

completed

DateNow (*1)

expectedDeliveryDate

expected_bundle_date

supplierId

(*2)

(*1) Order will be set to completed when status=”bundled”

(*2) There is no Supplier for AssemblyOrders, but we need it to create the buyOrders in Optiply, and we will use the related Supplier in Optiply (the supplierProduct with a supplier_type=producer for that product).

If no SupplierProduct like that exists in Optiply for that product, the Assembly will not be synced to Optiply.

If the customer uses serial numbers on their composed products or the parts, we will not be able to send the assembly orders from Optiply to ZohoInventory.

Production Order Lines - Zoho Inventory to Optiply

Optiply

Zoho Inventory

optiplyWebshopProductArticleCode

composite_item_id

quantity

quantity_to_bundle

subTotalValue

total

Production Orders (Assembly) - Optiply to Zoho Inventory

One Assembly Order created in Optiply can have multiple lines, but in Zoho, as Assembly can only have one line, so for each orderLine in Optiply, we will create one Assembly in Zoho Inventory:

The order will be set to the original Assembly Order from Optiply to be completed when all the related Assembly are set to complete in Zoho Inventory.

Production Order with one line - Optiply to Zoho Inventory

To send an Assembly to Zoho Inventory, we need to send the product being assembled and all the partItem consumed for it:

Optiply

Zoho Inventory

optiplyBuyOrderLineId

reference_number

buyOrder.placed

date

buyOrderLine.product.remoteId

composite_item_id

wp.name

composite_item_name

buyOrderLine.quantity

quantity_to_bundle

composition

partProduct.remoteId

line_items

item_id

partProduct.name

name

buyOrderLine.quantity * partQuantity

quantity_consumed

Did this answer your question?