Shopify
Move Shopify orders, products and stock to the rest of your business without re-keying.
45 ways to read, 21 ways to write, each write switched on by you.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with Shopify, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- Run bulk query
bulk_operations.createApproval by rule - Create collection
collections.createApproval by rule - List Shopify Payments balance transactions
balance_transactions.listRead
Example flow
- Shopify · List Shopify Payments balance transactions
balance_transactions.listDone - Shopify · Run bulk query
bulk_operations.createMaker-checker - Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches Shopify.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to Shopify
- Shopify's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect a Shopify Inc. test account before you go live.
For developers
Technical detail
Shopify orders, fulfillments, returns, products, collections, inventory (adjust or set exact stock), draft orders, discounts, metafields, metaobjects, markets, bulk queries and Shopify Payments payouts and disputes.
Shopify Inc. API docs- Source actions
- 45
- Destination actions
- 21
- Data types
- 34
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
balance transactions1
- List Shopify Payments balance transactionsSourceIncremental
Every movement on the Shopify Payments balance (charges, refunds, fees, adjustments, chargebacks, reserves), with gross, fee and net amounts, the order and the payout it settles in.
bulk operations3
- Run bulk queryDestinationNot retried automaticallyApproval before production
Starts an asynchronous bulk query export; poll bulk_operations.get for the JSONL result URL.
- Get bulk operationSource
One bulk operation's status and JSONL result URL.
- List bulk operationsSource
Bulk operations of this app with status, object counts and result URLs.
collections4
- Create collectionDestinationNot retried automaticallyApproval before production
Creates a custom collection, optionally with up to 250 products.
- Get collectionSource
One collection with smart rules, sort order and its first 50 product IDs.
- List collectionsSourceIncremental
Custom and smart collections with product counts.
- Update collectionDestinationProvider duplicate protectionApproval before production
Updates a collection's title, handle, description and sort order.
customer segment members1
- List segment membersSource
Customers that belong to a segment, with name, order count and spend.
customer segments1
- List customer segmentsSource
Customer segments with their ShopifyQL definition (read only).
customers5
- Get customerSource
One customer with marketing consent states, order count, amount spent and default address.
- List CustomersSource
List operation for Customers.
- Search customersSourceIncremental
Customers changed since a time, with consent, spend and address details.
- Update customerDestinationProvider duplicate protectionApproval before production
Updates names, note, tags and tax exemption on an existing customer by ID.
- Upsert CustomersDestinationNexra idempotency keyApproval before production
Upsert operation for Customers.
discounts3
- Create code discountDestinationProvider duplicate protectionApproval before production
Creates a percentage or fixed-amount code discount on the whole order, or on listed products or collections.
- Get discountSource
One code or automatic discount.
- List discountsSourceIncremental
Code and automatic discounts with status, codes, usage and combination rules.
disputes1
- List Shopify Payments disputesSourceIncremental
Chargebacks and inquiries on Shopify Payments charges, with amount, reason, status, the order and the evidence deadline.
draft orders4
- Create draft orderDestinationNot retried automaticallyApproval before production
Creates a draft order from variants or custom items, for invoicing or B2B order capture.
- Get draft orderSource
One draft order with up to 250 line items, addresses, note and tags.
- List draft ordersSourceIncremental
Draft orders with status, totals, invoice URL and the completed order ID.
- Update draft orderDestinationProvider duplicate protectionApproval before production
Updates an open draft order's line items, note, tags, email, PO number and addresses. Completing a draft is not supported.
fulfillment orders1
- List fulfillment ordersSource
Fulfillment orders of an order with assigned location and remaining line-item quantities.
fulfillments3
- Create fulfillmentDestinationNot retried automaticallyApproval before production
Fulfils a fulfillment order (all remaining items, or the listed line items) with optional tracking.
- List order fulfillmentsSource
Shipments of an order with tracking, delivery status and fulfilled line items.
- Update fulfillment trackingDestinationProvider duplicate protectionApproval before production
Sets the tracking number, URL and carrier of an existing fulfillment.
inventory adjustments1
- Adjust available inventoryDestinationProvider duplicate protectionApproval before production
Adds or subtracts available quantity for an inventory item at a location, with Shopify duplicate protection.
inventory items3
- Get inventory itemSource
One inventory item with SKU, cost, tracking and customs data.
- List inventory itemsSourceIncremental
Inventory items with SKU, tracking, unit cost and customs data.
- Update inventory itemDestinationProvider duplicate protectionApproval before production
Updates SKU, unit cost, tracking, shipping and customs data of an inventory item.
inventory levels2
- List inventory levels at a locationSource
Available, on-hand, committed, incoming and reserved quantities for every item stocked at a location.
- Set inventory quantityDestinationProvider duplicate protectionApproval before production
Sets the available (or on-hand) quantity of an inventory item at a location to an exact number, for stock synced from an ERP or warehouse, with Shopify duplicate protection.
inventory1
- List InventorySource
List operation for Inventory.
locations2
- Get locationSource
One location with address, activation and fulfilment flags.
- List locationsSource
Stock locations with address and fulfilment flags, including inactive ones.
markets1
- List marketsSource
Markets with status, type and base currency (read only).
metafield definitions1
- List metafield definitionsSource
Metafield definitions for an owner type, with namespace, key, type and validations.
metafields2
- List metafieldsSource
Metafields of a product, variant, customer, order, collection or other owner, with typed values.
- Set metafieldDestinationProvider duplicate protectionApproval before production
Creates or updates a metafield on an owner resource by namespace and key.
metaobject definitions1
- List metaobject definitionsSource
Metaobject types with their field definitions and entry counts.
metaobjects3
- Get metaobjectSource
One metaobject entry with typed field values.
- List metaobjectsSourceIncremental
Metaobject entries of one type with typed field values.
- Upsert metaobjectDestinationProvider duplicate protectionApproval before production
Creates or updates a metaobject entry by type and handle; only the mapped fields change.
orders2
- Get orderSource
One order with up to 250 line items, transactions and fulfillment orders.
- List ordersSourceIncremental
Orders ordered by last update with line items, payment transactions, totals and addresses.
payouts1
- List Shopify Payments payoutsSourceIncremental
Payouts from the Shopify Payments balance to the bank, newest last, with the net amount and the gross and fee totals for charges, refunds, adjustments and reserved funds.
prices2
- List PricesSource
List operation for Prices.
- Upsert PricesDestinationNexra idempotency keyApproval before production
Upsert operation for Prices.
product media1
- List product mediaSource
Image, video and 3D model metadata of a product (URLs, alt text, dimensions).
product publications1
- Publish to sales channelDestinationProvider duplicate protectionApproval before production
Publishes a product or collection to a publication (sales channel), optionally at a future date.
product variants4
- Create product variantsDestinationNot retried automaticallyApproval before production
Adds up to 100 variants to a product with option values, prices and SKUs.
- Get product variantSource
One variant with SKU, barcode, prices, options and inventory item details.
- List Product VariantsSource
List operation for Product Variants.
- Update product variantsDestinationProvider duplicate protectionApproval before production
Updates up to 100 variants of one product by ID: prices, barcode, tax, stock policy, SKU, cost and tracking.
products4
- Create productDestinationNot retried automaticallyApproval before production
Creates a product with options. Shopify creates one initial variant; add more with product_variants.create.
- Get productSource
One product with up to 250 variants.
- List productsSourceIncremental
Products with variants, prices, options and inventory item IDs, by last update.
- Update ProductsDestinationNexra idempotency keyApproval before production
Update operation for Products.
publications1
- List publicationsSource
Sales channel publications products and collections can be published to.
refunds1
- List order refundsSource
Refunds of an order with refunded line items and refund transactions (read only).
returns2
- Get returnSource
One return with its line items and reasons.
- List order returnsSource
Returns of an order with status, returned line items and reasons (read only).
shop1
- Get shopSource
Store name, domains, currencies, time zone, units and plan.
transactions1
- List order transactionsSource
Payment transactions of an order (authorisations, sales, captures, refunds) with gateway and status.
webhooks1
- List webhook subscriptionsSource
This app's webhook subscriptions with topic, destination and format (read only).
Access and limits
- Authentication
- Admin API access token
- Plans and access
- All Shopify plans; Plus stores have higher GraphQL cost budgets. The custom app's Admin API access scopes limit what each operation can read or write. Customer, order and address data require protected customer data access.
- Test environment
- Shopify Partner development stores can be used for testing.
- Rate limits
- Calculated query cost against a leaky-bucket point budget per app and store (restore rate depends on plan). Throttled responses return THROTTLED with extensions.cost; Nexra derives the retry delay from the cost and restore rate.
- Pagination
- Relay cursors (first/after with pageInfo.endCursor), up to 50 nodes per page.
- Provider events
- Webhook subscriptions for orders, products, inventory levels, fulfillments and refunds. Flows can start the moment something happens: when a new order is placed; when an order is paid; when an order is fulfilled; when an order is cancelled.
Before you build a flow
- Customer reads and email-keyed customerSet writes with read-back verification are implemented. Requires read_customers and write_customers with protected customer data access. Product/variant and base-price reads, exact-SKU title updates and currency-checked variant base-price updates are implemented with read-back verification. Requires product read/write permission. Title updates affect all variants of the parent product. Missing or duplicated SKUs stop products.update and prices.upsert; they change existing products only (products.create creates new ones). Physical on_hand inventory reads (inventory.list) include every active location for tracked items with unique SKUs. Requires read_inventory and location read access. Untracked items are excluded. Each location must be matched to the destination warehouse; no totals, reservation conversion or automatic stock-source equivalence. Stock changes are relative adjustments (inventory_adjustments.create); an absolute stock level cannot be set. No market pricing or tax conversion.
- Order lists return up to 25 line items and 10 transactions per order to stay within query cost limits; use orders.get for up to 250 line items and 50 transactions.
- Product lists return up to 50 variants per product; products.get returns up to 250.
- Refunds are read only. Refund creation, order cancellation, payment capture and deletes are not implemented.
- Shopify Payments payouts, balance transactions and disputes are read only and need the read_shopify_payments_accounts plus payouts or disputes scopes; stores on other payment providers have none.
- Inventory adjustments use Shopify's @idempotent directive with a key derived from the Nexra idempotency key; Shopify recognises a repeat for 24 hours.
- Draft order and fulfillment creation have no Shopify idempotency key; uncertain creates are not repeated automatically.
- Intentionally excluded: order editing, draft order completion (it can charge the customer), refund and return creation, order cancellation and capture, discount activation changes, webhook subscription changes, bulk mutations and every delete.
- Fulfillments, transactions and refunds come from the order's non-paginated lists (up to 100, 100 and 50 per order).
- discounts.create creates basic percentage or fixed-amount code discounts for all buyers; buy-X-get-Y, free-shipping, app and automatic discounts are read only.
- bulk_operations.create starts read-only bulk queries; the result is a signed JSONL file URL that Nexra returns but does not download.
Developer reference
- Create the Shopify Inc. credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose Shopify, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/shopify and the Connections API.