Import and sync your products
If you already sell online, your products are already written down somewhere. Press Import & sync on Products & Services and bring them in one of three ways. Whichever you choose, you see five products exactly as the agent will read them before anything is saved.
| Way | Best for | What you need |
|---|---|---|
| Upload a file | A first load, or a shop whose prices rarely change | A spreadsheet saved as CSV |
| Connect your website | A shop whose prices and stock change often | The product list link from your website developer |
| Your own system | A shop with its own developer who wants changes to appear instantly | An API token with the catalog:write scope |
Upload a file
One product per row. From Excel choose File → Save As → CSV UTF-8; from Google Sheets, File → Download → CSV. Download a template on the screen gives you the columns.
Parrot guesses which column is which — Product Name, Price (Ks.), Qty are all recognised — and you can change any of them. Uploading the same file again updates products rather than adding them twice: rows are matched by id, then SKU, then exact name.
Connect your website
Parrot reads the product list your website already has and keeps this catalogue in step, on a timer you choose (every 15 minutes to once a day):
| On your website | Here |
|---|---|
| A new product | Appears, and the agent can quote it |
| A price change | The next customer is told the new price |
| A new photo | The agent sends the new photo |
| Out of stock | The agent says it is out of stock |
| A product removed | Taken off sale here |
It only ever reads — nothing on your website is changed. Your website stays the place you edit prices; a price you change here on a synced item is replaced at the next sync, and the item says so. Keywords you add here are kept.
What to ask your developer for: the link to the product list (the API your website uses to show products) and one sample of what it returns. If the list comes in pages, put {page} where the page number goes: https://…/products?page={page}. If the link needs a key, add it as a header — it is stored encrypted and never shown again.
If a sync would take more than half of your products off sale at once, it
stops and tells you instead. That is what a website answering with half a list
looks like, and emptying the catalogue on a bad day would be worse than one
stale price.
Disconnecting a website keeps its products; they simply stop updating.
Your own system (API)
For a developer: send products whenever they are added or changed.
curl -X PUT $API/catalog/feed/items \
-H "Authorization: Bearer prt_…" \
-H "Content-Type: application/json" \
-d '{ "items": [ {
"id": "IP13PM-256",
"name": "iPhone 13 Pro Max 256GB",
"price": 3250000,
"currency": "MMK",
"description": "Unlocked. One year warranty.",
"sku": "IP13PM-256",
"category": "Phones",
"stock": 4,
"images": ["https://example.com/iphone.jpg"]
} ] }'- Up to 500 items per request.
idis required — it is your own id for the
product, and sending it again updates rather than duplicates.
- Only fields you send are changed.
pricemay be a number (shown as
3,250,000) or text (quoted exactly). Leave stock out for anything you do not count.
DELETE $API/catalog/feed/items/IP13PM-256takes a product off sale. It is
hidden, not deleted, because past orders still name it.
The token needs the catalog:write scope — create one under Settings → Developer. Tokens made before that scope existed do not have it.