Catalog, listing review, and pricing
A Nasam product is the brand's SKU. A listing is that product's presence on a connected sale-channel account. One product can therefore have several channel listings, each with its own status, price, and stock. Products and listings mirror what the connected marketplaces report: they arrive through channel sync and catalog review, and a bulk update changes existing listings on the marketplace rather than creating new ones.
Pick the catalog action
| Situation | Use | Completion check |
|---|---|---|
| You need the brand's products and channel presence | Product directory | Inspect each product's listings, then read a listing in detail if needed. |
| A newly connected account has unmapped channel items | Review backlog, then account review | Resolve the review item, then re-read the account's review and mapped counts. |
| You need to push price, promotion dates, or inventory to existing listings | Bulk listing update or CSV update | Check row errors, then the listing and Sync Health. |
Read the catalog
GET /v1/products returns products, categories, filterCounts, and pagination. Each product includes its listings. A listing's embedded saleChannelAccount in this catalog response contains only fulfillmentModel and the channel's id, name, and region; use connected accounts when you need connection status or inventory settings.
Use brandIds to narrow to brands your key can access. ids narrows to known product IDs; excludedSaleChannelIds, categories, productTiers, sku, name, and listingFilter refine the catalog. listingFilter accepts values such as Active, BuyBoxLost, OutOfStock, and Suppressed. sortBy accepts TotalRevenue, TotalUnitsSold, TotalAvailableQuantity, or UpdatedAt; sortOrder is ASC or DESC. This read defaults to page 1, limit 10, sorted by revenue descending, and caps the limit at 100. Categories lists category names for a brand selection. Listing detail is the focused read for one listing.
curl --get 'https://backend.nasam.co/v1/products' \
--data-urlencode 'brandIds=20' \
--data-urlencode 'listingFilter=OutOfStock' \
--data-urlencode 'page=1' \
--data-urlencode 'limit=25' \
-H 'key: YOUR_API_KEY'
Resolve imported listings
After a channel account connects, Nasam matches channel items to brand products. The backlog identifies accounts with unresolved items; the account review groups them into NeedsBrand, PossibleMatch, New, and CannotMap. It also reports mapped and attention counts, onboarding status, and last/next sync times.
For a review decision, send its itemIds as strings from the review response. Choose the action by what you have verified:
| Review finding | Action | Why |
|---|---|---|
| The suggested product is the same physical item | Confirm | Accept the suggested match. |
| The item belongs to an existing product, but the suggestion is wrong or absent | Link with that productId | Keep one product across its channel listings. |
| The item belongs to another brand sharing the marketplace account | Assign brand with targetBrandId | Attribute the item to its business owner before mapping it. |
| The item represents a new brand product | Add new | Create a Nasam product from the channel item. |
A PossibleMatch suggestion is incorrect and the item is its own product | Not a match | Reject the suggestion and create a separate product so the next sync does not suggest the same wrong match again. |
Dismiss and undo-dismiss manage the review queue. Recheck and retry matching start another review or match pass. An action response is not a substitute for reading the queue again: the account can have other pending items and an onboarding failure reason.
SKU or barcode can produce a confident match; Trendyol stock code is compared with SKU. A unique normalized name with the exact price can appear as a possible match that still needs a decision. Preserve the brand's exact SKU, including case and whitespace, and give each variant its own SKU. A similar title alone is not a safe link key.
Review a connection from start to ready
- Read the connected account to get the account ID. The channel definition ID is a different value and cannot replace it in the review path.
- Read the backlog to find accounts with pending items, then open that account's review.
NeedsBrandneeds ownership,PossibleMatchneeds a product decision,Newmay need product creation, andCannotMapneeds its problem inspected before retrying. - Submit an action using only item IDs returned by that account review. Do not rebuild item IDs from SKU or title.
- Read the review again. Compare
attentionCount,mappedCount,status,failureReason, andlastSyncedAt. If the account is stillMatchingorFailed, do not claim that the catalog is ready because one item disappeared from the queue.
Update existing listings
JSON bulk update accepts an updates array. Each row identifies a SKU or barcode, supplies saleChannelIds, and can carry listPrice, salePrice, sale dates, or inventory. The CSV version accepts a file plus saleChannelIds as multipart fields. The service validates the whole batch and returns success, totalItems, validItems, and possible errors. A successful validation schedules pricing and inventory pushes; it does not mean every marketplace has already applied them. Check the affected listings and Sync Health after processing.
Before sending a bulk update, read the product and confirm that each requested channel already has the intended listing. Treat SKU or barcode as an exact identity check, especially for variants. After submission, inspect errors even when the HTTP request succeeds. Then wait for processing and compare the resulting listing's price or quantity with the requested change. A stale or failed sync belongs in the sync workflow; do not keep replaying a bulk write merely because the initial response was accepted.
Product names, SKUs, barcodes, and images come from the marketplace; change them on the channel and the next sync carries them into Nasam. Product forecast-input CSV has its own template and upload workflow; it is not a listing price upload.