Guides
Products & stock
List MarkitMall products on your store, keep their price and stock right, and map them so orders can use your own ids.
The catalog#
curl "https://backend.markitmall.com/dropship/v1/catalog/products?search=earbuds&inStock=true" \
-H "Authorization: Bearer mk_test_XXXX:sk_test_XXXX"Filter by search, category (from GET /catalog/categories), wholesale minPrice / maxPrice and inStock. Pages are cursor based — pass nextCursor back as cursor until it is null.
Prices you will see#
| Field | Meaning |
|---|---|
wholesalePrice | What you pay us per unit. |
suggestedPrice | Our retail price — a good starting point. |
minResalePrice | The lowest you may sell at. Lower gets 422 price_below_minimum. |
stock | Units available for dropshipping right now. |
Prices and stock are per variant (colour, size…). Order with variants[].id; a product without options has a single variant whose id is the product id (isDefault: true).
Listing a product on your store#
- Use your own title, description and price (at or above
minResalePrice). The description is HTML. - Copy the images to your own storage or CDN. Image URLs can change; do not hotlink them.
- Products of different sellers (
storeId) ship as separate parcels — show delivery per seller if your checkout charges delivery per parcel.
Telling us what you listed#
POST /imports records that you listed a product and maps your variant ids to ours. It is optional, but it unlocks two things: you can order with your own externalVariantId, and you receive product.* webhooks for that product.
curl -X POST "https://backend.markitmall.com/dropship/v1/imports" \
-H "Authorization: Bearer mk_test_XXXX:sk_test_XXXX" \
-H "Content-Type: application/json" \
-d '{
"productId": "66f0c2a1b2c3d4e5f6a7b8c9",
"externalProductId": "shop-product-881",
"resalePrice": 1500,
"variants": [
{
"variantId": "66f0c2a1b2c3d4e5f6a7b8d0",
"externalVariantId": "shop-variant-9001",
"externalSku": "EAR-BLK"
}
]
}'Keeping stock and price right#
Selling something we cannot ship ends in a cancellation, so keep listings in step:
| Event | What to do |
|---|---|
product.stock_changed | Update the stock — hide the listing at 0. |
product.updated | Price, title, images or variants changed. Raise your price if it is now under minResalePrice. |
product.removed | No longer dropshippable — unpublish it. |
As a safety net, re-check periodically with GET /inventory?ids=… (up to 100 variant ids per call); available: false means hide it. Tell us whether applying a change worked with POST /imports/{id}/sync-result — failures show up in your dashboard.
422 out_of_stock with the available quantity in details.Shipping cost before checkout#
curl -X POST "https://backend.markitmall.com/dropship/v1/shipping/quote" \
-H "Authorization: Bearer mk_test_XXXX:sk_test_XXXX" \
-H "Content-Type: application/json" \
-d '{
"city": "Lahore",
"items": [
{
"variantId": "66f0c2a1b2c3d4e5f6a7b8d0",
"quantity": 1
}
]
}'Returns our shippingCost, the returnShippingCost and the rtoReserve a COD order would hold — useful to set your own delivery charge. See how margins work.
