All articles

Integrations

External commerce sync

Connect Shopify or WooCommerce and mirror live commerce data into OrderInChat.

Overview

Channels & integrations → External commerce (/en/integrations/commerce) keeps checkout on Shopify or WooCommerce while mirroring supported data into OrderInChat. The widget, WhatsApp and Instagram AI, automations, and optional shipping labels use the mirrored data.

This integration does not clone the source theme and does not replace the external checkout.

Shopify connection

OrderInChat uses Shopify OAuth so you do not have to copy tokens manually.

  1. In the Shopify Partner dashboard create an app called Order in Chat.
  2. Add the callback URL https://app.orderinchat.com/api/store/commerce/shopify/oauth/callback to Allowed redirection URL(s).
  3. Grant these Admin API scopes: read_products, write_products, read_inventory, write_inventory, read_orders, read_customers, read_content, read_legal_policies, read_discounts, read_shipping, read_files, read_locales, read_locations, read_script_tags, write_script_tags.
  4. In OrderInChat go to Channels & integrations → External commerce, choose Shopify, enter the HTTPS shop URL (for example https://your-store.myshopify.com) and click Connect with Shopify.
  5. Approve the permissions in Shopify. You return to OrderInChat automatically. Then click Test connection, Register webhooks, and Sync now.

If you cannot use OAuth, expand the Manual token setup section and paste the Admin API access token and the custom app API secret key. The API secret is required to verify Shopify webhook HMAC signatures. OrderInChat encrypts credentials and never displays them again.

Official guides: Shopify custom apps and Admin API access tokens.

WooCommerce connection

In WordPress open WooCommerce → Settings → Advanced → REST API, create a key with Read permission for mirror-only sync, or Read/Write permission if Bulk Editor changes should be written back to WooCommerce, and enter the HTTPS store URL, consumer key, and consumer secret. To sync WordPress pages and posts, also enter a WordPress username and Application Password from Users → Profile.

Official guide: WooCommerce REST API.

Some hosts reject HTTP Basic authentication. The connector can retry WooCommerce requests with query-string authentication; credentials are redacted from logs.

Sync behavior

  1. Save and test the connection.
  2. Register webhooks — creates subscriptions on the external store so product, order, and customer changes notify OrderInChat near real time. OrderInChat also checks for changes regularly in case a webhook is missed.
  3. Select the resources to mirror.
  4. Run the initial sync.

For safety, OrderInChat verifies each webhook and re-checks the data with Shopify or WooCommerce before saving it. The regular checks catch missed webhooks only while Use as commerce source is enabled. If webhook status shows an error and the connection is inactive, use Register webhooks and Sync now after changes on the source store; Test connection alone does not update products. Repeated updates do not create duplicate records.

Shopify variant shipping weight is imported from the variant's weight in Shopify; the product editor shows it in the shop's configured weight unit. Dimension metafields named length, width, or height are converted to centimeters. Shopify product descriptions come from the product's own description, not shared theme sections or banners; theme copy does not become a product-specific description. Draft and archived products are not shown to customers.

When your store uses external commerce, customers buy through the source product URL. OrderInChat cart checkout and WhatsApp checkout flows are turned off for that store.

Inventory locations

Shopify locations and per-variant inventory levels are mirrored into OrderInChat warehouse/location records. Product and variant stock show the total across locations for chat and checkout. WooCommerce core exposes one total stock value, so it is mirrored into a default virtual location; multi-location stock from WooCommerce plugins requires a supported plugin.

You can add your own OrderInChat locations under Catalog → Inventory. Bulk Editor stock cells expand per location. Pushing inventory to Shopify updates the selected location only and requires the write_inventory scope. Locked stock fields are not overwritten by a later inventory sync.

Shipping labels

OrderInChat shipping labels are off by default. Enable them only if OrderInChat should be the only place that creates labels. Even when enabled, OrderInChat does not buy a label when the external order already has fulfillment or tracking information.

Widget snippet

Shopify: Register webhooks also tries to install the chat widget automatically on your Shopify store. You can still paste the snippet into Custom Liquid if needed. Grant write_script_tags on the custom app if auto-install fails.

WooCommerce: The REST API cannot inject theme scripts. Copy the JavaScript or PHP snippet from the integration page into the theme footer or functions.php.

Pages → Knowledge Base

When Pages and posts is enabled, Shopify pages/articles/policies and WooCommerce pages/posts are added to (or updated in) the OrderInChat Knowledge Base for AI answers. Matching Shopify policy titles also fill return/terms storefront fields. This is not a full theme/CMS clone.

API limitations

The integration reports unsupported or unavailable data instead of inventing values. Common limitations include:

  • Shopify does not expose all payment settings through the Admin API.
  • Carrier-calculated shipping prices remain calculated at external checkout.
  • WooCommerce REST does not include WordPress pages without a WordPress Application Password.
  • Reviews and bookings require a platform or app API that exposes those resources.
  • Product add-ons are mirrored only when the source API has a real equivalent.

Need more help?

Chat with the Help assistant about OrderInChat, or open My Support Tickets while signed in (free trial included).