Best way to sync orders between two stores for unified order history?

Hi guys, I’m syncing orders from a Retail store (Shopify POS) to an Online store to provide customers with a unified order history. I’m using GCP with a queueing system for the middleware. We are maintaining two separate stores because our preferred payment gateway does not support native POS integration yet.

Quick questions:

  1. For a Standard plan , can you confirm the REST Admin API limit is strictly 2 requests per second (leaky bucket)? Also, what are the exact limits for Advanced and Plus plans? Maybe it’s better idea to use GraphQL (but what is the limit here)?

  2. Are there any known pitfalls or red flags when creating orders via API with financial_status: paid to represent transactions that were already processed via an external POS/gateway?

Thanks!

1 Like

Hey @lynthius,

For high-volume order syncing, I’d recommend GraphQL over REST. GraphQL uses cost-based rate limiting (you only pay for the fields you request), supports bulk operations for async processing, and can fetch/update orders plus related data in a single request. Also worth noting: REST Admin API is legacy as of October 2024.

When using orderCreate with financialStatus: PAID, you should include a transactions array with kind: SALE and status: SUCCESS to record the external transaction details. While you can technically set the status to paid without transactions, you’ll lose the transaction history (which matters for record-keeping and reporting).

API rate limits documentation | REST to GraphQL migration guide

Thanks, I’ve read up on it a bit, and now I know how to do it. Thanks again for your help, I’ll definitely use GraphQL.

1 Like