Files
backend/postman/Meshkee-CMS-Auth.postman_collection.json
Ali Reza bb59d5e9ba Initial commit: Meshkee CMS API
NestJS backend with Prisma, Docker Compose for Postgres/Redis, and deploy docs for the production VM.
2026-07-21 17:52:36 +03:30

2645 lines
99 KiB
JSON

{
"info": {
"name": "Meshkee CMS API",
"description": "Meshkee CMS API collection.\n\n**Start here:** run `Login - Super Admin` first (saves accessToken).\n\n**Store setup workflow:**\n1. `Business Product Categories` → create product category → set category variations\n2. `Business Brands` → create brand (PNG logo via media upload)\n3. `Business Products` → create product (optional brandId) → set product variation values\n3. `Business Products` → create store item (variant) with price & stock\n4. `Website - Cart` → login as customer → add to cart → checkout\n5. `Business Orders` → login as owner → list/update orders\n\n**Blog workflow:**\n1. `Business Blog Categories` → list/create blog categories\n2. `Business Blogs` → create blog post (news/article/blog)\n3. `Website - Blogs` → list/get published posts, submit comments\n4. `Business Comments` or `Business Blogs` → moderate comments\n\n**Portfolio workflow:**\n1. `Business Portfolio Categories` → list/create portfolio categories\n2. `Business Portfolios` → create portfolio (title image 3:2, gallery, HTML body)\n3. `Website - Portfolios` → list/get published items, submit comments\n4. `Business Comments` or `Business Portfolios` → moderate comments\n\nSeed users (password: `password`):\n| Cell | Role |\n| +989121111111 | super_admin |\n| +989122222222 | business_owner |\n| +989123333333 | business_owner |\n| +989124444444 | customer |\n| +989125555555 | customer |",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"variable": [
{ "key": "baseUrl", "value": "http://localhost:3000/api/v1" },
{ "key": "accessToken", "value": "" },
{ "key": "refreshToken", "value": "" },
{ "key": "domain", "value": "shop-a.local" },
{ "key": "businessId", "value": "1" },
{ "key": "categoryId", "value": "" },
{ "key": "brandId", "value": "" },
{ "key": "productId", "value": "" },
{ "key": "blogId", "value": "1" },
{ "key": "blogSlug", "value": "how-to-choose-phone" },
{ "key": "blogCategoryId", "value": "5" },
{ "key": "portfolioId", "value": "1" },
{ "key": "portfolioSlug", "value": "phone-launch-campaign" },
{ "key": "portfolioCategoryId", "value": "7" },
{ "key": "variantId", "value": "" },
{ "key": "storeItemVariantId", "value": "" },
{ "key": "variationId", "value": "" },
{ "key": "optionId", "value": "" },
{ "key": "commentId", "value": "" },
{ "key": "expertReviewId", "value": "" },
{ "key": "memberId", "value": "" },
{ "key": "ownerUserId", "value": "2" },
{ "key": "countryId", "value": "" },
{ "key": "provinceId", "value": "" },
{ "key": "cityId", "value": "" },
{ "key": "cartItemId", "value": "" },
{ "key": "orderId", "value": "" },
{ "key": "categoryGroupId", "value": "" },
{ "key": "brandGroupId", "value": "" },
{ "key": "sliderId", "value": "" },
{ "key": "specialId", "value": "" }
],
"item": [
{
"name": "Auth",
"item": [
{
"name": "Register (customer on website)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.accessToken) pm.collectionVariables.set('accessToken', json.accessToken);",
" if (json.refreshToken) pm.collectionVariables.set('refreshToken', json.refreshToken);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"cellNumber\": \"+989126666666\",\n \"password\": \"password123\",\n \"firstName\": \"New\",\n \"lastName\": \"Customer\",\n \"email\": \"new@example.com\",\n \"domain\": \"{{domain}}\"\n}"
},
"url": "{{baseUrl}}/auth/register"
}
},
{
"name": "Login - Super Admin",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" pm.collectionVariables.set('accessToken', json.accessToken);",
" pm.collectionVariables.set('refreshToken', json.refreshToken);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"cellNumber\": \"+989121111111\",\n \"password\": \"password\"\n}"
},
"url": "{{baseUrl}}/auth/login"
}
},
{
"name": "Login - Business Owner",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" pm.collectionVariables.set('accessToken', json.accessToken);",
" pm.collectionVariables.set('refreshToken', json.refreshToken);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"cellNumber\": \"+989122222222\",\n \"password\": \"password\"\n}"
},
"url": "{{baseUrl}}/auth/login"
}
},
{
"name": "Login - Customer",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" pm.collectionVariables.set('accessToken', json.accessToken);",
" pm.collectionVariables.set('refreshToken', json.refreshToken);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"cellNumber\": \"+989124444444\",\n \"password\": \"password\"\n}"
},
"url": "{{baseUrl}}/auth/login"
}
},
{
"name": "Me (current user)",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/auth/me"
}
},
{
"name": "Refresh token",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" pm.collectionVariables.set('accessToken', json.accessToken);",
" pm.collectionVariables.set('refreshToken', json.refreshToken);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"refreshToken\": \"{{refreshToken}}\"\n}"
},
"url": "{{baseUrl}}/auth/refresh"
}
},
{
"name": "Send OTP (SMS disabled)",
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"cellNumber\": \"+989124444444\"\n}"
},
"url": "{{baseUrl}}/auth/send-otp"
}
},
{
"name": "Verify OTP (SMS disabled)",
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"cellNumber\": \"+989124444444\",\n \"code\": \"123456\"\n}"
},
"url": "{{baseUrl}}/auth/verify-otp"
}
}
]
},
{
"name": "Reference Data - Cities",
"item": [
{
"name": "List countries",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('countryId', json.items[0].id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/cities?level=country",
"host": ["{{baseUrl}}"],
"path": ["cities"],
"query": [{ "key": "level", "value": "country" }]
}
}
},
{
"name": "List Iran provinces",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('provinceId', json.items[0].id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/cities?level=province&parentSlug=iran",
"host": ["{{baseUrl}}"],
"path": ["cities"],
"query": [
{ "key": "level", "value": "province" },
{ "key": "parentSlug", "value": "iran" }
]
}
}
},
{
"name": "List cities in Tehran province",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" const tehran = json.items?.find((item) => item.slug === 'tehran');",
" if (tehran?.id) pm.collectionVariables.set('cityId', tehran.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/cities?level=city&parentSlug=tehran-province",
"host": ["{{baseUrl}}"],
"path": ["cities"],
"query": [
{ "key": "level", "value": "city" },
{ "key": "parentSlug", "value": "tehran-province" }
]
}
}
},
{
"name": "List cities by province ID",
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/cities?level=city&parentId={{provinceId}}",
"host": ["{{baseUrl}}"],
"path": ["cities"],
"query": [
{ "key": "level", "value": "city" },
{ "key": "parentId", "value": "{{provinceId}}" }
]
}
}
},
{
"name": "Get city by ID",
"request": {
"method": "GET",
"url": "{{baseUrl}}/cities/{{cityId}}"
}
}
]
},
{
"name": "Website - Comments",
"item": [
{
"name": "Submit comment (website)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.comment?.id) pm.collectionVariables.set('commentId', json.comment.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"entityType\": \"product\",\n \"entityId\": \"{{productId}}\",\n \"authorName\": \"Website Visitor\",\n \"authorEmail\": \"visitor@example.com\",\n \"text\": \"Great product! Would recommend.\"\n}"
},
"url": "{{baseUrl}}/tenants/{{domain}}/comments"
}
},
{
"name": "List approved comments (website)",
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/tenants/{{domain}}/comments?entityType=product&entityId={{productId}}",
"host": ["{{baseUrl}}"],
"path": ["tenants", "{{domain}}", "comments"],
"query": [
{ "key": "entityType", "value": "product" },
{ "key": "entityId", "value": "{{productId}}" }
]
}
}
},
{
"name": "Submit comment on blog (generic API)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.comment?.id) pm.collectionVariables.set('commentId', json.comment.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"entityType\": \"blog\",\n \"entityId\": \"{{blogId}}\",\n \"authorName\": \"Blog Reader\",\n \"authorEmail\": \"reader@example.com\",\n \"text\": \"Great article, thanks for sharing!\"\n}"
},
"url": "{{baseUrl}}/tenants/{{domain}}/comments"
}
},
{
"name": "List approved comments for blog (generic API)",
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/tenants/{{domain}}/comments?entityType=blog&entityId={{blogId}}",
"host": ["{{baseUrl}}"],
"path": ["tenants", "{{domain}}", "comments"],
"query": [
{ "key": "entityType", "value": "blog" },
{ "key": "entityId", "value": "{{blogId}}" }
]
}
}
},
{
"name": "Submit comment on portfolio (generic API)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.comment?.id) pm.collectionVariables.set('commentId', json.comment.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"entityType\": \"portfolio\",\n \"entityId\": \"{{portfolioId}}\",\n \"authorName\": \"Portfolio Visitor\",\n \"authorEmail\": \"visitor@example.com\",\n \"text\": \"Beautiful work!\"\n}"
},
"url": "{{baseUrl}}/tenants/{{domain}}/comments"
}
},
{
"name": "List approved comments for portfolio (generic API)",
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/tenants/{{domain}}/comments?entityType=portfolio&entityId={{portfolioId}}",
"host": ["{{baseUrl}}"],
"path": ["tenants", "{{domain}}", "comments"],
"query": [
{ "key": "entityType", "value": "portfolio" },
{ "key": "entityId", "value": "{{portfolioId}}" }
]
}
}
}
]
},
{
"name": "Website - Blogs",
"item": [
{
"name": "List published blogs (website)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('blogId', json.items[0].id);",
" if (json.items?.[0]?.slug) pm.collectionVariables.set('blogSlug', json.items[0].slug);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/tenants/{{domain}}/blogs?page=1&pageSize=12",
"host": ["{{baseUrl}}"],
"path": ["tenants", "{{domain}}", "blogs"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "12" },
{ "key": "type", "value": "", "disabled": true },
{ "key": "categoryId", "value": "", "disabled": true },
{ "key": "title", "value": "", "disabled": true }
]
}
}
},
{
"name": "Get published blog by slug (website)",
"request": {
"method": "GET",
"url": "{{baseUrl}}/tenants/{{domain}}/blogs/{{blogSlug}}"
}
},
{
"name": "List blog comments (website)",
"request": {
"method": "GET",
"url": "{{baseUrl}}/tenants/{{domain}}/blogs/{{blogId}}/comments"
}
},
{
"name": "Submit blog comment (website)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.comment?.id) pm.collectionVariables.set('commentId', json.comment.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"authorName\": \"Blog Reader\",\n \"authorEmail\": \"reader@example.com\",\n \"text\": \"Very helpful post!\"\n}"
},
"url": "{{baseUrl}}/tenants/{{domain}}/blogs/{{blogId}}/comments"
}
}
]
},
{
"name": "Website - Portfolios",
"item": [
{
"name": "List published portfolios (website)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('portfolioId', json.items[0].id);",
" if (json.items?.[0]?.slug) pm.collectionVariables.set('portfolioSlug', json.items[0].slug);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/tenants/{{domain}}/portfolios?page=1&pageSize=12",
"host": ["{{baseUrl}}"],
"path": ["tenants", "{{domain}}", "portfolios"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "12" },
{ "key": "categoryId", "value": "", "disabled": true },
{ "key": "title", "value": "", "disabled": true }
]
}
}
},
{
"name": "Get published portfolio by slug (website)",
"request": {
"method": "GET",
"url": "{{baseUrl}}/tenants/{{domain}}/portfolios/{{portfolioSlug}}"
}
},
{
"name": "List portfolio comments (website)",
"request": {
"method": "GET",
"url": "{{baseUrl}}/tenants/{{domain}}/portfolios/{{portfolioId}}/comments"
}
},
{
"name": "Submit portfolio comment (website)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.comment?.id) pm.collectionVariables.set('commentId', json.comment.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"authorName\": \"Portfolio Visitor\",\n \"authorEmail\": \"visitor@example.com\",\n \"text\": \"Impressive project!\"\n}"
},
"url": "{{baseUrl}}/tenants/{{domain}}/portfolios/{{portfolioId}}/comments"
}
}
]
},
{
"name": "Website - Expert Reviews",
"item": [
{
"name": "Submit expert review (website)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.review?.id) pm.collectionVariables.set('expertReviewId', json.review.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [{ "key": "Content-Type", "value": "application/json" }],
"body": {
"mode": "raw",
"raw": "{\n \"productId\": \"{{productId}}\",\n \"authorName\": \"Expert Reviewer\",\n \"authorEmail\": \"expert@example.com\",\n \"rate\": 8,\n \"positivePoints\": [\"Build quality\", \"Great battery life\", \"Comfortable fit\"],\n \"negativePoints\": [\"Pricey\", \"Limited colors\"],\n \"text\": \"Solid product overall with a few trade-offs worth considering.\"\n}"
},
"url": "{{baseUrl}}/tenants/{{domain}}/expert-reviews"
}
},
{
"name": "List approved expert reviews (website)",
"request": {
"method": "GET",
"url": {
"raw": "{{baseUrl}}/tenants/{{domain}}/expert-reviews?productId={{productId}}",
"host": ["{{baseUrl}}"],
"path": ["tenants", "{{domain}}", "expert-reviews"],
"query": [{ "key": "productId", "value": "{{productId}}" }]
}
}
}
]
},
{
"name": "Super Admin - Businesses",
"item": [
{
"name": "List business categories",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/business-categories"
}
},
{
"name": "Search users (owner picker, min 2 chars)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('ownerUserId', json.items[0].id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/users/search?q=re&limit=20",
"host": ["{{baseUrl}}"],
"path": ["users", "search"],
"query": [
{ "key": "q", "value": "re", "description": "min 2 characters" },
{ "key": "limit", "value": "20" }
]
}
}
},
{
"name": "Search businesses (min 2 chars)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('businessId', json.items[0].id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/search?q=sh&limit=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "search"],
"query": [
{ "key": "q", "value": "sh", "description": "min 2 characters" },
{ "key": "limit", "value": "20" }
]
}
}
},
{
"name": "List businesses",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses?page=1&pageSize=10",
"host": ["{{baseUrl}}"],
"path": ["businesses"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "10" },
{ "key": "name", "value": "", "disabled": true },
{ "key": "domain", "value": "", "disabled": true },
{ "key": "category", "value": "", "disabled": true }
]
}
}
},
{
"name": "List business staff",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/staff"
}
},
{
"name": "Get business",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}"
}
},
{
"name": "Create business",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.id) pm.collectionVariables.set('businessId', json.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"nameFa\": \"فروشگاه جدید\",\n \"name\": \"New Shop\",\n \"about\": \"توضیحات کسب‌وکار\",\n \"slug\": \"new-shop\",\n \"categoryIds\": [1, 2],\n \"ownerUserId\": {{ownerUserId}}\n}"
},
"url": "{{baseUrl}}/businesses"
}
},
{
"name": "Update business",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"nameFa\": \"فروشگاه بروز شده\",\n \"name\": \"Updated Shop\",\n \"about\": \"About text updated\",\n \"categoryIds\": [2],\n \"ownerUserId\": {{ownerUserId}}\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}"
}
},
{
"name": "Add domain to business",
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"host\": \"new-shop.local\",\n \"isPrimary\": true\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/domains"
}
},
{
"name": "Disable / enable business",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"isActive\": false\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/disable"
}
},
{
"name": "Delete business",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}"
}
}
]
},
{
"name": "Super Admin - Users",
"item": [
{
"name": "List users",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/users?page=1&pageSize=24",
"host": ["{{baseUrl}}"],
"path": ["users"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "24" },
{ "key": "name", "value": "", "disabled": true },
{ "key": "cellNumber", "value": "", "disabled": true },
{ "key": "role", "value": "", "disabled": true }
]
}
}
},
{
"name": "Create user (customer)",
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"cellNumber\": \"+989129999999\",\n \"password\": \"password123\",\n \"firstName\": \"New\",\n \"lastName\": \"Customer\",\n \"email\": \"customer@example.com\",\n \"businessId\": {{businessId}}\n}"
},
"url": "{{baseUrl}}/users"
}
},
{
"name": "Change user global role",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"roleSlug\": \"customer\"\n}"
},
"url": "{{baseUrl}}/users/4/role"
}
}
]
},
{
"name": "Roles",
"item": [
{
"name": "List global roles (super admin)",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/roles?scope=global",
"host": ["{{baseUrl}}"],
"path": ["roles"],
"query": [{ "key": "scope", "value": "global" }]
}
}
},
{
"name": "List team roles (business owner)",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/roles?scope=team",
"host": ["{{baseUrl}}"],
"path": ["roles"],
"query": [{ "key": "scope", "value": "team" }]
}
}
}
]
},
{
"name": "Business Media",
"item": [
{
"name": "List media",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/media?page=1&pageSize=24",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "media"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "24" },
{ "key": "mediaType", "value": "image", "disabled": true }
]
}
}
},
{
"name": "Upload media (multipart)",
"request": {
"method": "POST",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"body": {
"mode": "formdata",
"formdata": [
{ "key": "files", "type": "file", "src": [] },
{ "key": "files", "type": "file", "src": [], "disabled": true }
]
},
"url": "{{baseUrl}}/businesses/{{businessId}}/media"
}
},
{
"name": "Update media",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"altText\": \"Product photo\",\n \"caption\": \"Optional caption\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/media/1"
}
},
{
"name": "Delete media",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/media/1"
}
}
]
},
{
"name": "Business Product Categories",
"item": [
{
"name": "List product categories",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/categories?entityType=product",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "categories"],
"query": [{ "key": "entityType", "value": "product" }]
}
}
},
{
"name": "Create product category",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.category?.id) pm.collectionVariables.set('categoryId', json.category.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"entityType\": \"product\",\n \"name\": \"Electronics\",\n \"nameFa\": \"الکترونیک\",\n \"description\": \"Electronic devices\",\n \"parentId\": null\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/categories"
}
},
{
"name": "Update product category",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Electronics Updated\",\n \"nameFa\": \"الکترونیک بروز شده\",\n \"description\": \"Updated description\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/categories/{{categoryId}}"
}
},
{
"name": "Delete product category",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/categories/{{categoryId}}"
}
},
{
"name": "List color presets",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/categories/color-presets"
}
},
{
"name": "Get category variations",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/categories/{{categoryId}}/variations"
}
},
{
"name": "Replace category variations",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" const items = json.items || json;",
" if (Array.isArray(items) && items.length > 0) {",
" const first = items[0];",
" if (first.id) pm.collectionVariables.set('variationId', first.id);",
" if (first.options?.[0]?.id) pm.collectionVariables.set('optionId', first.options[0].id);",
" }",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "PUT",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"variations\": [\n {\n \"type\": \"color\",\n \"name\": \"Color\",\n \"values\": [\"Red\", \"Blue\", \"Black\"]\n },\n {\n \"type\": \"size\",\n \"name\": \"Size\",\n \"values\": [\"S\", \"M\", \"L\", \"XL\"]\n }\n ]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/categories/{{categoryId}}/variations"
}
},
{
"name": "Get category technical form",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/categories/{{categoryId}}/technical-form"
}
},
{
"name": "Replace category technical form",
"request": {
"method": "PUT",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"fields\": [\n {\n \"label\": \"Weight\",\n \"type\": \"text\",\n \"isRequired\": true\n },\n {\n \"label\": \"Description\",\n \"type\": \"textarea\"\n },\n {\n \"label\": \"Material\",\n \"type\": \"select\",\n \"options\": [\"Cotton\", \"Polyester\", \"Wool\"]\n },\n {\n \"label\": \"Features\",\n \"type\": \"multi_select\",\n \"options\": [\"Waterproof\", \"Breathable\", \"UV Protection\"]\n }\n ]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/categories/{{categoryId}}/technical-form"
}
}
]
},
{
"name": "Business Blog Categories",
"item": [
{
"name": "List blog categories",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('blogCategoryId', json.items[0].id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/categories?entityType=blog",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "categories"],
"query": [{ "key": "entityType", "value": "blog" }]
}
}
},
{
"name": "Create blog category",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.category?.id) pm.collectionVariables.set('blogCategoryId', json.category.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"entityType\": \"blog\",\n \"name\": \"Tutorials\",\n \"nameFa\": \"آموزش\",\n \"description\": \"How-to guides and tips\",\n \"parentId\": null\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/categories"
}
}
]
},
{
"name": "Business Portfolio Categories",
"item": [
{
"name": "List portfolio categories",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('portfolioCategoryId', json.items[0].id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/categories?entityType=portfolio",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "categories"],
"query": [{ "key": "entityType", "value": "portfolio" }]
}
}
},
{
"name": "Create portfolio category",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.category?.id) pm.collectionVariables.set('portfolioCategoryId', json.category.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"entityType\": \"portfolio\",\n \"name\": \"Product Photography\",\n \"nameFa\": \"عکاسی محصول\",\n \"description\": \"Commercial product shoots\",\n \"parentId\": null\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/categories"
}
}
]
},
{
"name": "Business Brands",
"item": [
{
"name": "List brands",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/brands?page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "brands"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "Create brand",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.brand?.id) pm.collectionVariables.set('brandId', json.brand.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"nameEn\": \"Acme\",\n \"nameFa\": \"اکمه\",\n \"imageMediaId\": \"1\",\n \"about\": \"Premium electronics brand founded in 2010.\",\n \"sortOrder\": 0\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/brands"
}
},
{
"name": "Get brand",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/brands/{{brandId}}"
}
},
{
"name": "Update brand",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"nameEn\": \"Acme Updated\",\n \"about\": \"Updated brand description.\",\n \"sortOrder\": 1\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/brands/{{brandId}}"
}
},
{
"name": "Delete brand",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/brands/{{brandId}}"
}
}
]
},
{
"name": "Business Website",
"item": [
{
"name": "Category Groups",
"item": [
{
"name": "List category groups",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/website/category-groups?page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "website", "category-groups"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "Create category group",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.group?.id) pm.collectionVariables.set('categoryGroupId', json.group.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Shop by category\",\n \"sortOrder\": 0,\n \"isActive\": true,\n \"categoryIds\": [\"{{categoryId}}\"]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/website/category-groups"
}
},
{
"name": "Get category group",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/website/category-groups/{{categoryGroupId}}"
}
},
{
"name": "Update category group",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Featured categories\",\n \"sortOrder\": 0,\n \"categoryIds\": [\"{{categoryId}}\"]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/website/category-groups/{{categoryGroupId}}"
}
},
{
"name": "Delete category group",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/website/category-groups/{{categoryGroupId}}"
}
}
]
},
{
"name": "Brand Groups",
"item": [
{
"name": "List brand groups",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/website/brand-groups?page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "website", "brand-groups"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "Create brand group",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.group?.id) pm.collectionVariables.set('brandGroupId', json.group.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Our brands\",\n \"sortOrder\": 0,\n \"isActive\": true,\n \"brandIds\": [\"{{brandId}}\"]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/website/brand-groups"
}
},
{
"name": "Get brand group",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/website/brand-groups/{{brandGroupId}}"
}
},
{
"name": "Update brand group",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Featured brands\",\n \"sortOrder\": 0,\n \"brandIds\": [\"{{brandId}}\"]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/website/brand-groups/{{brandGroupId}}"
}
},
{
"name": "Delete brand group",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/website/brand-groups/{{brandGroupId}}"
}
}
]
},
{
"name": "Sliders",
"item": [
{
"name": "List sliders",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/website/sliders?page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "website", "sliders"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "Create slider",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.slider?.id) pm.collectionVariables.set('sliderId', json.slider.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Hero slider\",\n \"sortOrder\": 0,\n \"isActive\": true,\n \"slides\": [\n {\n \"imageMediaId\": \"1\",\n \"title\": \"Summer sale\",\n \"linkUrl\": \"https://example.com/sale\",\n \"isActive\": true\n },\n {\n \"imageMediaId\": \"2\",\n \"linkUrl\": \"https://example.com/new\",\n \"isActive\": true\n }\n ]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/website/sliders"
}
},
{
"name": "Get slider",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/website/sliders/{{sliderId}}"
}
},
{
"name": "Update slider",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Hero slider updated\",\n \"slides\": [\n {\n \"imageMediaId\": \"1\",\n \"title\": \"Updated slide\",\n \"linkUrl\": \"https://example.com\",\n \"isActive\": true\n }\n ]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/website/sliders/{{sliderId}}"
}
},
{
"name": "Delete slider",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/website/sliders/{{sliderId}}"
}
}
]
},
{
"name": "Store Specials",
"item": [
{
"name": "List store specials",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/store-specials?page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "store-specials"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "Create store special",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.special?.id) pm.collectionVariables.set('specialId', json.special.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Best sellers\",\n \"sortOrder\": 0,\n \"isActive\": true,\n \"storeItemIds\": []\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/store-specials"
}
},
{
"name": "Get store special",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/store-specials/{{specialId}}"
}
},
{
"name": "Update store special",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Special sale\",\n \"sortOrder\": 0,\n \"storeItemIds\": []\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/store-specials/{{specialId}}"
}
},
{
"name": "Delete store special",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/store-specials/{{specialId}}"
}
}
]
}
]
},
{
"name": "Business Products",
"item": [
{
"name": "List products",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/products?page=1&pageSize=12",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "products"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "12" }
]
}
}
},
{
"name": "Create product",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.product?.id) pm.collectionVariables.set('productId', json.product.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Sample Product\",\n \"nameFa\": \"محصول نمونه\",\n \"summary\": \"Short summary\",\n \"descriptionHtml\": \"<p>Full description</p>\",\n \"categoryId\": \"{{categoryId}}\",\n \"brandId\": \"{{brandId}}\",\n \"featuredMediaId\": \"1\",\n \"galleryMediaIds\": [\"2\"],\n \"tags\": [\"sample\"],\n \"status\": \"published\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/products"
}
},
{
"name": "Get product",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/products/{{productId}}"
}
},
{
"name": "Update product",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Updated Product\",\n \"summary\": \"Updated summary\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/products/{{productId}}"
}
},
{
"name": "Delete product",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/products/{{productId}}"
}
},
{
"name": "Get product variation values",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/products/{{productId}}/variations"
}
},
{
"name": "Replace product variation values",
"request": {
"method": "PUT",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"selections\": [\n {\n \"variationId\": \"{{variationId}}\",\n \"optionIds\": [\"{{optionId}}\"]\n }\n ]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/products/{{productId}}/variations"
}
},
{
"name": "Get store item by product",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/store-items/by-product/{{productId}}"
}
},
{
"name": "Create store item variants (batch)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" const items = json.items || [];",
" if (items.length) {",
" pm.collectionVariables.set('variantId', items[0].id);",
" pm.collectionVariables.set('storeItemVariantId', items[0].id);",
" }",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"productId\": \"{{productId}}\",\n \"items\": [\n {\n \"selections\": [\n { \"variationId\": \"{{variationId}}\", \"optionId\": \"{{optionId}}\" }\n ],\n \"price\": 99.99,\n \"stockQuantity\": 10\n }\n ]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/store-items"
}
},
{
"name": "Update store item variant",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"price\": 89.99,\n \"stockQuantity\": 25\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/store-items/variants/{{storeItemVariantId}}"
}
},
{
"name": "Delete store item variant",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/store-items/variants/{{storeItemVariantId}}"
}
},
{
"name": "Get product technical info",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/products/{{productId}}/technical-info"
}
},
{
"name": "Replace product technical info",
"request": {
"method": "PUT",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"values\": [\n { \"fieldKey\": \"weight\", \"value\": \"500g\" },\n { \"fieldKey\": \"description\", \"value\": \"High quality fabric with durable stitching.\" },\n { \"fieldKey\": \"material\", \"value\": \"cotton\" },\n { \"fieldKey\": \"features\", \"value\": [\"waterproof\", \"breathable\"] }\n ]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/products/{{productId}}/technical-info"
}
}
]
},
{
"name": "Business Blogs",
"item": [
{
"name": "List blogs",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('blogId', json.items[0].id);",
" if (json.items?.[0]?.slug) pm.collectionVariables.set('blogSlug', json.items[0].slug);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/blogs?page=1&pageSize=12",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "blogs"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "12" },
{ "key": "status", "value": "", "disabled": true },
{ "key": "type", "value": "", "disabled": true },
{ "key": "categoryId", "value": "", "disabled": true },
{ "key": "title", "value": "", "disabled": true }
]
}
}
},
{
"name": "Create blog",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.blog?.id) pm.collectionVariables.set('blogId', json.blog.id);",
" if (json.blog?.slug) pm.collectionVariables.set('blogSlug', json.blog.slug);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"How to Choose the Right Phone\",\n \"type\": \"article\",\n \"abstract\": \"A quick guide to picking your next smartphone.\",\n \"mainTextHtml\": \"<h2>Battery life</h2><p>Look for 4000mAh or more.</p><img src=\\\"https://cdn.example.com/phone.jpg\\\" alt=\\\"Phone\\\" />\",\n \"categoryId\": \"{{blogCategoryId}}\",\n \"featuredMediaId\": \"1\",\n \"tags\": [\"phones\", \"guide\"],\n \"authorId\": \"{{ownerUserId}}\",\n \"status\": \"published\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/blogs"
}
},
{
"name": "Get blog",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/blogs/{{blogId}}"
}
},
{
"name": "Update blog",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Updated Blog Title\",\n \"type\": \"news\",\n \"abstract\": \"Updated abstract.\",\n \"mainTextHtml\": \"<p>Updated body content.</p>\",\n \"tags\": [\"updated\", \"news\"]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/blogs/{{blogId}}"
}
},
{
"name": "Delete blog",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/blogs/{{blogId}}"
}
},
{
"name": "List blog comments (admin)",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/blogs/{{blogId}}/comments"
}
}
]
},
{
"name": "Business Portfolios",
"item": [
{
"name": "List portfolios",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200) {",
" const json = pm.response.json();",
" if (json.items?.[0]?.id) pm.collectionVariables.set('portfolioId', json.items[0].id);",
" if (json.items?.[0]?.slug) pm.collectionVariables.set('portfolioSlug', json.items[0].slug);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/portfolios?page=1&pageSize=12",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "portfolios"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "12" },
{ "key": "status", "value": "", "disabled": true },
{ "key": "categoryId", "value": "", "disabled": true },
{ "key": "title", "value": "", "disabled": true }
]
}
}
},
{
"name": "Create portfolio",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.portfolio?.id) pm.collectionVariables.set('portfolioId', json.portfolio.id);",
" if (json.portfolio?.slug) pm.collectionVariables.set('portfolioSlug', json.portfolio.slug);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Phone Launch Campaign\",\n \"abstract\": \"Product photos and video for Meshkee X Phone launch.\",\n \"mainTextHtml\": \"<h2>Overview</h2><p>Shot in studio with 3 lighting setups.</p><img src=\\\"https://cdn.example.com/studio.jpg\\\" alt=\\\"Studio setup\\\" />\",\n \"categoryId\": \"{{portfolioCategoryId}}\",\n \"featuredMediaId\": \"1\",\n \"galleryMediaIds\": [\"2\", \"3\"],\n \"tags\": [\"photography\", \"product-launch\"],\n \"sortOrder\": 1,\n \"status\": \"published\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/portfolios"
}
},
{
"name": "Get portfolio",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/portfolios/{{portfolioId}}"
}
},
{
"name": "Update portfolio",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"title\": \"Updated Portfolio Title\",\n \"abstract\": \"Updated abstract.\",\n \"mainTextHtml\": \"<p>Updated body content.</p>\",\n \"tags\": [\"updated\", \"portfolio\"],\n \"galleryMediaIds\": [\"2\"]\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/portfolios/{{portfolioId}}"
}
},
{
"name": "Delete portfolio",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/portfolios/{{portfolioId}}"
}
},
{
"name": "List portfolio comments (admin)",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/portfolios/{{portfolioId}}/comments"
}
}
]
},
{
"name": "Business Comments",
"item": [
{
"name": "List comments (all)",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/comments?page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "comments"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "List pending comments",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/comments?isApproved=false&page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "comments"],
"query": [
{ "key": "isApproved", "value": "false" },
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "List comments for product",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/comments?entityType=product&entityId={{productId}}",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "comments"],
"query": [
{ "key": "entityType", "value": "product" },
{ "key": "entityId", "value": "{{productId}}" }
]
}
}
},
{
"name": "List comments for blog",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/comments?entityType=blog&entityId={{blogId}}",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "comments"],
"query": [
{ "key": "entityType", "value": "blog" },
{ "key": "entityId", "value": "{{blogId}}" }
]
}
}
},
{
"name": "List comments for portfolio",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/comments?entityType=portfolio&entityId={{portfolioId}}",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "comments"],
"query": [
{ "key": "entityType", "value": "portfolio" },
{ "key": "entityId", "value": "{{portfolioId}}" }
]
}
}
},
{
"name": "Approve comment",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"isApproved\": true\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/comments/{{commentId}}"
}
},
{
"name": "Reject comment (unapprove)",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"isApproved\": false\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/comments/{{commentId}}"
}
},
{
"name": "Delete comment",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/comments/{{commentId}}"
}
}
]
},
{
"name": "Business Expert Reviews",
"item": [
{
"name": "List expert reviews (all)",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/expert-reviews?page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "expert-reviews"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "List pending expert reviews",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/expert-reviews?isApproved=false&page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "expert-reviews"],
"query": [
{ "key": "isApproved", "value": "false" },
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "List expert reviews for product",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/expert-reviews?productId={{productId}}",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "expert-reviews"],
"query": [{ "key": "productId", "value": "{{productId}}" }]
}
}
},
{
"name": "Approve expert review",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"isApproved\": true\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/expert-reviews/{{expertReviewId}}"
}
},
{
"name": "Reject expert review (unapprove)",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"isApproved\": false\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/expert-reviews/{{expertReviewId}}"
}
},
{
"name": "Delete expert review",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/expert-reviews/{{expertReviewId}}"
}
}
]
},
{
"name": "Business Dashboard Settings",
"item": [
{
"name": "Get dashboard settings",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/settings"
}
},
{
"name": "Enable auto-approve for comments",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"dashboard\": {\n \"comments\": {\n \"autoApprove\": true\n }\n }\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/settings"
}
},
{
"name": "Enable auto-approve for expert reviews",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"dashboard\": {\n \"expertReviews\": {\n \"autoApprove\": true\n }\n }\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/settings"
}
},
{
"name": "Update all dashboard settings",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"dashboard\": {\n \"comments\": {\n \"autoApprove\": true\n },\n \"expertReviews\": {\n \"autoApprove\": false\n }\n }\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/settings"
}
}
]
},
{
"name": "Website - Homepage",
"item": [
{
"name": "List category groups (website)",
"request": {
"method": "GET",
"url": "{{baseUrl}}/tenants/{{domain}}/website/category-groups"
}
},
{
"name": "List brand groups (website)",
"request": {
"method": "GET",
"url": "{{baseUrl}}/tenants/{{domain}}/website/brand-groups"
}
},
{
"name": "List sliders (website)",
"request": {
"method": "GET",
"url": "{{baseUrl}}/tenants/{{domain}}/website/sliders"
}
},
{
"name": "List store specials (website)",
"request": {
"method": "GET",
"url": "{{baseUrl}}/tenants/{{domain}}/store-specials"
}
}
]
},
{
"name": "Website - Cart",
"item": [
{
"name": "Get cart",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/cart"
}
},
{
"name": "Add variant to cart",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" const items = json.cart?.items || [];",
" if (items.length) pm.collectionVariables.set('cartItemId', items[items.length - 1].id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"storeItemVariantId\": \"{{storeItemVariantId}}\",\n \"quantity\": 1\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/cart/items"
}
},
{
"name": "Update cart item quantity",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"quantity\": 2\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/cart/items/{{cartItemId}}"
}
},
{
"name": "Remove cart item",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/cart/items/{{cartItemId}}"
}
},
{
"name": "Clear cart",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/cart"
}
},
{
"name": "Checkout cart",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.order?.id) pm.collectionVariables.set('orderId', json.order.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"shippingAddress\": {\n \"province\": \"Tehran\",\n \"city\": \"Tehran\",\n \"address\": \"123 Example Street\",\n \"postalCode\": \"1234567890\",\n \"landline\": \"02112345678\"\n },\n \"customerNotes\": \"Please call before delivery\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/cart/checkout"
}
}
]
},
{
"name": "Website - Orders",
"item": [
{
"name": "List my orders",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/orders?page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "orders"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "Get my order",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/orders/{{orderId}}"
}
}
]
},
{
"name": "Business Orders",
"item": [
{
"name": "List orders (admin)",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": {
"raw": "{{baseUrl}}/businesses/{{businessId}}/orders?page=1&pageSize=20",
"host": ["{{baseUrl}}"],
"path": ["businesses", "{{businessId}}", "orders"],
"query": [
{ "key": "page", "value": "1" },
{ "key": "pageSize", "value": "20" }
]
}
}
},
{
"name": "Get order (admin)",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/orders/{{orderId}}"
}
},
{
"name": "Create order (admin)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.order?.id) pm.collectionVariables.set('orderId', json.order.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"customerUserId\": \"5\",\n \"items\": [\n { \"storeItemVariantId\": \"{{storeItemVariantId}}\", \"quantity\": 1 }\n ],\n \"shippingAddress\": {\n \"province\": \"Tehran\",\n \"city\": \"Tehran\",\n \"address\": \"123 Example Street\",\n \"postalCode\": \"1234567890\"\n },\n \"status\": \"confirmed\",\n \"adminNotes\": \"Phone order\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/orders"
}
},
{
"name": "Update order status (admin)",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"status\": \"processing\",\n \"adminNotes\": \"Packed and ready to ship\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/orders/{{orderId}}"
}
}
]
},
{
"name": "Business Team",
"item": [
{
"name": "List team members",
"request": {
"method": "GET",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/team"
}
},
{
"name": "Invite team member",
"event": [
{
"listen": "test",
"script": {
"exec": [
"if (pm.response.code === 200 || pm.response.code === 201) {",
" const json = pm.response.json();",
" if (json.member?.id) pm.collectionVariables.set('memberId', json.member.id);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"cellNumber\": \"+989128888888\",\n \"password\": \"password123\",\n \"firstName\": \"Team\",\n \"lastName\": \"Editor\",\n \"roleSlug\": \"editor\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/team"
}
},
{
"name": "Update team member role",
"request": {
"method": "PATCH",
"header": [
{ "key": "Authorization", "value": "Bearer {{accessToken}}" },
{ "key": "Content-Type", "value": "application/json" }
],
"body": {
"mode": "raw",
"raw": "{\n \"roleSlug\": \"viewer\"\n}"
},
"url": "{{baseUrl}}/businesses/{{businessId}}/team/{{memberId}}"
}
},
{
"name": "Remove team member",
"request": {
"method": "DELETE",
"header": [{ "key": "Authorization", "value": "Bearer {{accessToken}}" }],
"url": "{{baseUrl}}/businesses/{{businessId}}/team/{{memberId}}"
}
}
]
}
]
}