← Back to EcomCentral
SF

Shopify API Setup Guide

Connect your Shopify store to EcomCentral via Admin API

Last updated June 2026 · Shopify Admin REST API 2025-01

What You Need

EcomCentral uses Shopify Admin REST API with a Custom App access token. You do not need a Partner account or a public app listing.

Step-by-Step Setup

  1. Open Custom Apps in your Shopify Admin In your Shopify admin, go to Settings → Apps and sales channels and click "Develop apps". If prompted, enable custom app development.
  2. Create a new Custom App Click "Create an app", give it a name like EcomCentral, then click Create app.
  3. Set Admin API permissions Open the app you just created → Configuration tab → Admin API integration → click Configure.

    Enable the scopes listed in the Required Permissions table below, then click Save.
  4. Install the app & copy the access token Go to the API credentials tab → click Install app.

    After installing, click "Reveal token once" to view the Admin API access token. Copy it immediately — Shopify only shows it once.

    ⚠️ Store this token securely. Anyone with it has full API access to your store. In EcomCentral it is stored AES-256 encrypted in the database.
  5. Find your Store domain Your store domain is shown in your browser when you're in the admin: https://yourstore.myshopify.com

    You can use either the short form (yourstore) or the full domain (yourstore.myshopify.com) — EcomCentral accepts both.
  6. (Optional) Find your Location ID The Location ID is required to update stock levels via the API.

    Go to Settings → Locations in Shopify admin. Click on your location. The URL will contain your location ID:
    https://admin.shopify.com/store/yourstore/settings/locations/12345678901
    Copy the numeric ID at the end of the URL.
  7. Add the connection in EcomCentral Go to Connections → Add Connection → Shopify and fill in:
    FieldWhere to find itExample
    shop Your .myshopify.com URL yourstore.myshopify.com
    access_token Custom App → API credentials (revealed once) shpat_abc123…
    api_version (optional) Leave blank for default (2025-01) 2025-01
    location_id (optional) Settings → Locations → URL 12345678901
    Then click Save and use ⚡ Test on the Shopify dashboard to verify.

Required API Permissions

Permission Scope Used For Required?
read_orders View order list and order details Required
write_orders Cancel orders Optional
read_products View product list, variants, stock levels Required
write_inventory Update stock quantities Optional
read_fulfillments Check fulfillment status Required
write_fulfillments Create fulfillments (add tracking info) Required
read_customers Show customer name / email on orders Optional
read_locations Fetch store locations for stock updates Optional
read_shipping Show shipping line costs on orders Optional

Shopify Order Status Reference

Financial Status (Payment)

StatusMeaningNext State
Pending Payment not yet received → Authorized or Paid
Authorized Card authorized, not yet captured → Paid or Voided
Paid Payment fully captured → Partially Refunded or Refunded
Partially Refunded Partial refund issued → Refunded
Refunded Fully refunded
Voided Authorization voided before capture

Fulfillment Status (Shipping)

StatusMeaning
Unfulfilled No items shipped yet — the default state for new orders
Partial Some but not all line items have been fulfilled
Fulfilled All items have been shipped with tracking
Restocked Items were returned and restocked

How Fulfillment Works in Shopify

Unlike WooCommerce which has a simple status field, Shopify's fulfillment model is more structured:

  1. Each order has one or more Fulfillment Orders (grouping items by location)
  2. To ship items, you create a Fulfillment against the open fulfillment orders
  3. The fulfillment includes the tracking number, carrier, and URL
  4. Shopify automatically updates the order's fulfillment_status to fulfilled or partial
EcomCentral's Create Fulfillment action handles all of this automatically — just enter the tracking number and carrier and click the button.

Updating Stock Levels

Shopify manages stock by variant (not product) and by location. To update stock via the API:

  1. The variant must have a SKU set in Shopify admin
  2. Your connection must have a location_id configured
  3. The app scope write_inventory must be enabled
⚠️ Stock updates via the API set the absolute quantity (not a relative adjustment). If you enter 50, the stock is set to exactly 50 — not increased by 50.

Troubleshooting

✕ "API not configured (shop / access token missing)"

The connection is missing the shop or access_token credential. Go to Connections → Edit and add both fields.

✕ HTTP 401 Unauthorized

The access token is invalid or has been revoked. Re-install the Custom App in Shopify admin to generate a new token and update the connection.

✕ HTTP 403 Forbidden on a specific operation

The API scope for that operation is not enabled. Go to Shopify Admin → Settings → Apps → Your App → Configuration → Admin API and add the missing scope, then reinstall the app.

✕ "No open fulfillment orders found"

The order is already fully fulfilled, cancelled, or has no shippable line items. Check the order's fulfillment status in Shopify Admin.

✕ "location_id is required to set inventory level"

Add your store's Location ID to the connection credentials. See Step 6 above for how to find it.

✕ "SKU not found" when updating stock

The SKU must match exactly what is set on the variant in Shopify Admin (Products → your product → variant → SKU field). Check for extra spaces or case mismatches.


EcomCentral · Shopify Admin REST API 2025-01 · Official Shopify Docs