Skip to content

Fast Start

Mehrdad Pajuhaan edited this page Oct 23, 2026 · 17 revisions

Fast Start: Sync and Update Products and Inventory

Synchronizing and managing product inventory through APIs simplifies operations, automates workflows and keeps data accurate. This guide shows how to use the Selldone Backoffice REST API to authenticate, retrieve your products and update them. It works from any language or platform; if you are building a browser app in JavaScript, see also Getting Started.

Base URL: https://api.selldone.com Auth header: Authorization: Bearer YOUR_ACCESS_TOKEN

Step 1: Get your access token

Before calling the API you need an access token. Selldone offers several ways to get one. Full details and the scope list are on the Access Token page.

1. Personal Access Token (not recommended)

  • Recommended use: internal or admin usage.
  • How:
    1. Go to the Developer Panel.
    2. Generate a Personal Access Token.
  • Note: this token has access to all your shops. Avoid it for single-shop integrations.

2. OAuth2 Access Token (advanced)

  • Recommended use: third-party services that require user authentication.
  • How:
    1. Visit OAuth Client Creation.
    2. Create an OAuth client and follow the standard OAuth2 flow.

3. ERP Bridge (recommended)

  • Recommended use: simple integrations for clients or partners.
  • How:
    1. Share this link:

      https://selldone.com/auth/erp?scopes[]=selldone:identification&scopes[]=backoffice:shop:read&scopes[]=backoffice:product:read&scopes[]=backoffice:product:write&scopes[]=backoffice:category:read
      
    2. The user selects a shop and gets an access token.

  • Tip: add or remove scopes as needed. See the ERP repository for more.

4. Connect Bridge (advanced)

Step 2: Retrieve the full product list

Endpoint

GET https://api.selldone.com/shops/{shop_id}/products/all-admin?dir=*&products_only=true&with_total=true&offset=0&limit=10

Essential query parameters

Parameter Description
offset Starting index for pagination.
limit Max items per request (up to 250; use 100 at most to be safe).
updated_at ISO timestamp to get only recently updated items.

Example

GET https://api.selldone.com/shops/12345/products/all-admin?dir=*&products_only=true&with_total=true&offset=0&limit=10&updated_at=2024-01-01T00:00:00Z
Authorization: Bearer YOUR_ACCESS_TOKEN

More filters, sorting options and examples: Fetch Products List.

Step 3: Retrieve a single product

Endpoint

GET https://api.selldone.com/shops/{shop_id}/products/{product_id}/admin
  • Usage: retrieve all internal metadata for a product, including pricing, images, inventory, categories and configuration options.
  • Query parameters: none required.

Example

GET https://api.selldone.com/shops/12345/products/9876/admin
Authorization: Bearer YOUR_ACCESS_TOKEN

Step 4: Update product information

Endpoint

PUT https://api.selldone.com/shops/{shop_id}/products/{product_id}/edit

The SDK URL catalog registers this route as PUT (PUT_EDIT_PRODUCT in apis/API.ts). Earlier versions of this guide showed POST; use PUT for new integrations.

Some body parameters

Parameter Type Description
title string Product name
quantity integer Inventory stock
price float Selling price
sku string Stock Keeping Unit

Important: when editing a product, send only the fields you want to update. The system should not reset or nullify fields you don't include. If you notice a field being changed or cleared without you sending it (for example, SKU gets removed), please report it to support immediately. If you are only updating the SKU, send just the SKU; nothing else is required.

Example

PUT https://api.selldone.com/shops/12345/products/9876/edit
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

{
  "title": "Eco-Friendly Yoga Mat",
  "price": 19.95,
  "sku": "YOGA-2024-ECO",
  "category_id": 12,
  "status": "Open",
  "condition": "new",
  "brand": "ZenMotion"
}

All supported fields are listed in Edit Product.

Step 5: Update stock only

To change only the inventory of a product, use the dedicated quantity endpoint. It is simpler and safer than a full edit:

POST https://api.selldone.com/shops/12345/products/9876/quantity
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

{ "quantity": 50 }

For products with variants, update each variant with POST /shops/{shop_id}/products/{product_id}/variants/{variant_id}/quantity. See Edit Product's Variant.

Best practices

  • Use updated_at to reduce sync overhead when polling.
  • Use pagination (offset and limit) in product lists.
  • Rotate tokens regularly and store them securely.
  • Always test on a test shop before deploying updates.
  • Stay within the rate limits: 80 requests per minute on the dashboard API.

Next steps

Clone this wiki locally