Flavours Partner API
ProductCategory

Merge Product Categories

POST
/api/v2/product-categories/merge

Merge one or more duplicate canonical categories into a single winner: re-points products, per-branch sort order and kitchen mappings from the losers onto the winner, migrates per-tenant overrides, then soft-deletes the losers. Order history is never touched. Admin only.

Authorization

API-TOKEN
API-TOKEN<token>

Your partner API key. Send it in the API-TOKEN header on every request.

In: header

Header Parameters

X-API-Version*string

API contract version to target. See the Changelog for what changed in each version.

Default"2.0.0"
Value in"2.3.0" | "2.2.0" | "2.1.0" | "2.0.0"

Request Body

application/json

winner_id*integer

Must match an existing stored value.

loser_ids?array<>

The value and winner_id must be different. Must match an existing stored value.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.flavours.sa/dev/api/v2/product-categories/merge" \  -H "X-API-Version: 2.3.0" \  -H "Content-Type: application/json" \  -d '{    "winner_id": 6  }'
{
  "meta": {
    "code": 200,
    "status": "success",
    "message": "Product categories merged successfully."
  },
  "data": {
    "id": 14,
    "icon": "🥤",
    "name_en": "Merge Winner",
    "name_ar": "الفائز",
    "deleted_at": null,
    "created_at": 1792593344925,
    "updated_at": 1792593344925,
    "market_id": null,
    "image_url": null,
    "products_count": "0",
    "sectors": []
  }
}
{
  "meta": {
    "code": 401,
    "status": "error",
    "message": "Unauthenticated."
  },
  "data": null
}
{
  "meta": {
    "code": 403,
    "status": "error",
    "message": "Unauthorized."
  },
  "data": null
}
{
  "meta": {
    "code": 404,
    "status": "error",
    "message": "Resource not found."
  },
  "data": null
}
{
  "meta": {
    "code": 500,
    "status": "error",
    "message": "Internal server error."
  },
  "data": null
}