{
  "description": "Search noon.com in seven GCC storefronts, browse categories, look up products by SKU or URL, and filter by price, rating, discount, brand, seller, or deal tag.",
  "properties": {
    "brand": {
      "description": "Optional brand name or brand code, e.g. `HP` or `hp`. Matched against noon's brand filter.",
      "editor": "textfield",
      "title": "Brand",
      "type": "string"
    },
    "categoryPaths": {
      "default": [],
      "description": "noon category paths or URLs (mode=byCategory), e.g. `electronics-and-mobiles/computers-and-accessories/computers-new/laptops`.",
      "editor": "stringList",
      "prefill": [],
      "title": "Category paths or URLs",
      "type": "array"
    },
    "dealOnly": {
      "default": false,
      "description": "Only emit products carrying a noon deal tag.",
      "prefill": false,
      "title": "Deals only",
      "type": "boolean"
    },
    "includeDetails": {
      "default": false,
      "description": "Add description, specifications, stock, warranty, delivery, and all seller offers. Adds one request per product.",
      "prefill": false,
      "title": "Fetch product details",
      "type": "boolean"
    },
    "includeReviews": {
      "default": false,
      "description": "Add up to five latest review snippets per product. Adds one request per product.",
      "prefill": false,
      "title": "Fetch recent reviews",
      "type": "boolean"
    },
    "language": {
      "default": "en",
      "description": "Product titles and descriptions language used by the storefront.",
      "editor": "select",
      "enum": [
        "en",
        "ar"
      ],
      "enumTitles": [
        "English",
        "Arabic"
      ],
      "prefill": "en",
      "title": "Language",
      "type": "string"
    },
    "market": {
      "default": "uae",
      "description": "noon storefront and currency. Product and URL inputs can override it from the URL.",
      "editor": "select",
      "enum": [
        "uae",
        "saudi",
        "egypt",
        "bahrain",
        "qatar",
        "kuwait",
        "oman"
      ],
      "enumTitles": [
        "United Arab Emirates (AED)",
        "Saudi Arabia (SAR)",
        "Egypt (EGP)",
        "Bahrain (BHD)",
        "Qatar (QAR)",
        "Kuwait (KWD)",
        "Oman (OMR)"
      ],
      "prefill": "uae",
      "title": "Market",
      "type": "string"
    },
    "maxDiscountPercent": {
      "description": "Only emit products discounted by at most this percentage. Set 0 to require no discount.",
      "maximum": 100,
      "minimum": 0,
      "title": "Maximum discount (%)",
      "type": "number"
    },
    "maxItems": {
      "default": 50,
      "description": "Hard cap on emitted products across the whole run.",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max items",
      "type": "integer"
    },
    "maxPrice": {
      "description": "Only emit products at or below this price, in the selected market's currency.",
      "maximum": 1000000000,
      "minimum": 0,
      "title": "Maximum price",
      "type": "number"
    },
    "minDiscountPercent": {
      "description": "Only emit products discounted by at least this percentage. Products without a list price have no discount and are excluded.",
      "maximum": 100,
      "minimum": 0,
      "title": "Minimum discount (%)",
      "type": "number"
    },
    "minPrice": {
      "description": "Only emit products at or above this price, in the selected market's currency.",
      "maximum": 1000000000,
      "minimum": 0,
      "title": "Minimum price",
      "type": "number"
    },
    "minRating": {
      "description": "Only emit rated products at or above this star rating (0-5). Unrated products are excluded when this is set.",
      "maximum": 5,
      "minimum": 0,
      "title": "Minimum rating",
      "type": "number"
    },
    "mode": {
      "default": "search",
      "description": "Choose what to fetch. Search needs `searchQueries`; category needs `categoryPaths`; product needs `productInputs`; URL needs `startUrls`.",
      "editor": "select",
      "enum": [
        "search",
        "byCategory",
        "byProduct",
        "byUrl"
      ],
      "enumTitles": [
        "Search products by keyword",
        "Browse categories",
        "Look up products by SKU or product URL",
        "Fetch from noon search, category, or product URLs"
      ],
      "prefill": "search",
      "title": "Mode",
      "type": "string"
    },
    "productInputs": {
      "default": [],
      "description": "noon SKUs or product URLs (mode=byProduct), e.g. `N70367827V`.",
      "editor": "stringList",
      "prefill": [],
      "title": "Product SKUs or URLs",
      "type": "array"
    },
    "searchQueries": {
      "default": [],
      "description": "Keywords to search for (mode=search). One query per line, e.g. `laptop`.",
      "editor": "stringList",
      "prefill": [
        "laptop"
      ],
      "title": "Search queries",
      "type": "array"
    },
    "seller": {
      "description": "Optional seller name or seller code, e.g. `noon` or `p_9404`.",
      "editor": "textfield",
      "title": "Seller",
      "type": "string"
    },
    "sortBy": {
      "default": "popularity",
      "description": "Ordering for search and category results.",
      "editor": "select",
      "enum": [
        "popularity",
        "price_asc",
        "price_desc",
        "best_rating",
        "new_arrivals"
      ],
      "enumTitles": [
        "Popularity",
        "Price: low to high",
        "Price: high to low",
        "Top rated",
        "New arrivals"
      ],
      "prefill": "popularity",
      "title": "Sort results by",
      "type": "string"
    },
    "startUrls": {
      "default": [],
      "description": "noon search, category, or product URLs (mode=byUrl). The market in each URL overrides the Market field.",
      "editor": "stringList",
      "prefill": [],
      "title": "Start URLs",
      "type": "array"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Noon.com Multi-Market Product Search Input",
  "type": "object"
}
