B
BOMEODocs
API Reference

Shopify Integration

Official

Sync products, inventory, and orders between your Shopify store and BOMEO POS. No code required.

Setup Guide

Connect in 5 steps through the BOMEO and Shopify admin dashboards.

  1. 1

    Generate your API key

    Go to Settings → Integrations in your BOMEO dashboard. Click "Create API Key" and select the scopes you need.

    Required scopes: products:read, products:write, orders:read, orders:write, inventory:read, inventory:write.

  2. 2

    Create a Shopify custom app

    In your Shopify Admin, go to Settings → Apps and sales channels → Develop apps. Create a new app and install it to get your access token.

    Required Shopify scopes: read_products, write_products, read_orders, write_orders, read_inventory, write_inventory, read_locations.

  3. 3

    Connect in BOMEO

    In Settings → Integrations, click "Connect Shopify". Enter your store domain (e.g. my-store.myshopify.com) and paste your access token.

  4. 4

    Run your first sync

    Click "Sync Products" to push your catalog to Shopify. BOMEO maps each product and variant by ID for future incremental syncs.

    First sync may take a few minutes. Subsequent syncs are incremental.

  5. 5

    Enable webhooks

    Click "Setup Webhooks" to register Shopify webhooks. BOMEO listens for order events so Shopify orders appear in your POS automatically.

    Webhooks are HMAC-signed. BOMEO verifies every payload.

Sync Capabilities

BOMEO is the source of truth for products and inventory. Orders flow from Shopify into BOMEO via webhooks.

DataMethodFrequency
Products → ShopifyPushOn demand / incremental
Inventory → ShopifyPushReal-time on stock change
Orders ← ShopifyWebhookReal-time on order creation

Webhooks

BOMEO registers these Shopify webhooks automatically. All payloads are verified with HMAC-SHA256.

EventAction
orders/createNew order placed → creates order in BOMEO
orders/paidPayment confirmed → marks BOMEO order as paid

Code Example

Use the TypeScript SDK to interact with synced data programmatically.

TypeScript
import { BomeoClient } from "bomeo-sdk";

const bomeo = new BomeoClient({
  apiKey: process.env.BOMEO_API_KEY!,
  baseUrl: "https://api.bomeo.xyz/v1",
});

// List products that will sync to Shopify
const { data: products } = await bomeo.products.list({
  limit: 100,
  active: true,
});

console.log(`${products.length} products ready to sync`);

// Orders from Shopify are created via webhooks.
// Query them like any other order:
const { data: orders } = await bomeo.orders.list({
  status: "completed",
  limit: 10,
});

Troubleshooting

Which Shopify plans are supported?

Any plan that supports custom apps (Basic and above). Shopify Lite does not support the Admin API.

Does it sync POS orders from Shopify?

Currently only online orders are synced via webhooks. Shopify POS orders will be supported in a future update.

What happens when products conflict?

BOMEO is the source of truth. On conflict, BOMEO data overwrites Shopify. Conflicts are logged in Settings → Integrations.

Can I sync multiple branches?

Yes. Map each BOMEO branch to a Shopify location. Inventory syncs per-location.

How do I rotate the API key?

Generate a new key in BOMEO Settings, update it in the Shopify connection, then revoke the old key.