Orders from any platform

View as Markdown

Selling on a platform 3DAPI does not connect to? Ask your AI assistant to read your new orders there and place them on 3DAPI for you. It matches each line to your variant by SKU, never places the same order twice, and shows you what each order costs before anything is charged.

What you need

  • Approved products whose variant SKUs match the SKUs on the other platform. The SKU is how the assistant finds the variant, so set the same SKU on both sides.
  • Money in your wallet, or a saved card. API orders are paid from the wallet; a shortfall is charged to your saved card.
  • An AI app that may place orders. Claude, Grok or another app connected as in Connect Claude, ChatGPT or Grok with Place orders and buy stock ticked, or the MCP server on your computer (Connect an AI assistant) with a key that has products:read, orders:read and orders:write. ChatGPT cannot place orders.
  • A way for the assistant to read your orders there. That platform's own connector in the same app, an order export (CSV) you attach, or the order details pasted into the chat.

How lines are matched

For each line, the assistant calls list_products with sku set to the line's SKU and expand[]=variants. The match is exact and ignores case, and the variant whose sku it is goes on the order with the line's quantity.

A line with no SKU, or a SKU none of your variants has, cannot be matched. Tell the assistant to skip that order and report it, rather than guess a variant.

No order placed twice

Every order carries a reference: the order number on the other platform, for example ETSY-3141592653 (letters, digits, - and _). 3DAPI keeps it unique among your orders:

  • A second order with a reference you already used is refused with reference_in_use (409), and nothing is placed or charged. details.order is the order that has it.
  • list_orders with reference finds that order, so the assistant can check before it asks you.
  • The summary before you confirm says when the reference is already placed.
  • A cancelled order frees its reference, so you can place that order again.

Running the same prompt twice, or retrying after a lost connection, therefore never orders twice.

You confirm every order

create_order is a money tool (Money tools: preview, then confirm). For every order the assistant first gets a summary: the items with their production price, a shipping estimate and your wallet balance. It shows you that summary, and the order is placed and paid only after you say yes.

Each order is confirmed on its own, so you can let one through and stop the next.

Prompts to start from

Place new orders from a platform the assistant can read:

Prompt
Read my new Etsy orders from the last 24 hours that are not shipped yet. For each order:

1. Match every line to my 3DAPI variant by its SKU: list_products with sku set to that SKU and expand[]=variants. If a line has no SKU or no match, skip the whole order and tell me.
2. Check list_orders with reference set to ETSY-<the Etsy order number>. If an order comes back that is not cancelled, skip it: it is already placed.
3. Call create_order with the variants and quantities, the buyer's name, email and shipping address, and reference ETSY-<the Etsy order number>. Show me the summary and wait for my yes before you confirm.

At the end, list what you placed, what you skipped and why.

Place orders from an export you attach:

Prompt
Attached is my orders export from Shopify. Place every unfulfilled order on 3DAPI:
match each line to my variant by SKU (list_products, sku filter), use SHOPIFY-<order number> as the reference,
skip orders whose reference list_orders already finds, and ask me before you confirm each one.

Bring tracking back once orders ship:

Prompt
List my 3DAPI orders that are shipped and whose reference starts with ETSY-.
For each, give me the Etsy order number, the carrier and the tracking number, so I can mark them shipped on Etsy.

Use the same reference prefix every time for one platform (ETSY-, SHOPIFY-, WOO-), so the duplicate check always finds earlier orders.

After the order is placed

The order goes to production at once and moves through the statuses in list_orders and get_order. Once it is shipped, shipping.carrier and shipping.tracking_number are set, and external.channel_order_id is your reference, which is what the tracking prompt above reads.

3DAPI can email the address you send with order and shipping updates. On plans that include it, you can turn customer updates off in your account settings; otherwise send your own email in customer.email if the buyer should hear only from you. To follow orders without asking, subscribe to the order events in Webhooks.