{
  "openapi": "3.1.0",
  "info": {
    "title": "arms-bg.com — WooCommerce Store API (публична част)",
    "version": "1.0.0",
    "summary": "Каталог за четене: продукти, категории, марки, етикети и атрибути.",
    "description": "Публичен, неавтентикиран достъп за четене до продуктовия каталог на arms-bg.com.\n\nНе изисква ключ. Отговорите са JSON. Пагинацията е чрез `page` и `per_page`, а общият брой се връща в хедърите `X-WP-Total` и `X-WP-TotalPages`.\n\nЕзици: български (по подразбиране) и английски. За английски използвайте `https://arms-bg.com/en/wp-json/wc/store/v1/...`.\n\nКрайните точки за количка и поръчка съществуват, но изискват сесия и не са описани тук.",
    "contact": {
      "url": "https://arms-bg.com/kontakti/"
    },
    "license": {
      "name": "Само за четене; съдържанието е собственост на arms-bg.com",
      "url": "https://arms-bg.com/obsthi-usloviya/"
    }
  },
  "servers": [
    {
      "url": "https://arms-bg.com/wp-json/wc/store/v1",
      "description": "Български каталог"
    },
    {
      "url": "https://arms-bg.com/en/wp-json/wc/store/v1",
      "description": "English catalogue"
    }
  ],
  "tags": [
    {
      "name": "Продукти"
    },
    {
      "name": "Таксономии"
    }
  ],
  "paths": {
    "/products": {
      "get": {
        "summary": "Списък с продукти",
        "description": "Търсене и филтриране в каталога.",
        "operationId": "wc_store_v1_products",
        "tags": [
          "Продукти"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1
            },
            "description": "Текуща страница на колекцията."
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 10
            },
            "description": "Максимален брой резултати, които да бъдат върнати."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Ограничаване на резултатите до тези, които отговарят на даден низ."
          },
          {
            "name": "slug",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit result set to products with specific slug(s). Use commas to separate."
          },
          {
            "name": "after",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit response to resources created after a given ISO8601 compliant date."
          },
          {
            "name": "before",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Ограничаване на отговора до ресурси, създадени преди дадена съвместима с ISO8601 дата."
          },
          {
            "name": "date_column",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "date",
                "date_gmt",
                "modified",
                "modified_gmt"
              ],
              "default": "date"
            },
            "description": "Когато ограничавате отговора с помощта на след/преди, с коя колона за дата да се сравнява."
          },
          {
            "name": "exclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Уверете се, че наборът от резултати изключва определени ID номера."
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Ограничаване на резултатите до такива с конкретни номера."
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Пропускане на даден брой резултати."
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            },
            "description": "Подреждане на атрибути в намаляващ или увеличаващ се ред."
          },
          {
            "name": "orderby",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "date",
                "modified",
                "id",
                "include",
                "title",
                "slug",
                "price",
                "popularity",
                "rating",
                "menu_order",
                "comment_count"
              ],
              "default": "date"
            },
            "description": "Сортиране на колекцията по атрибут на обект."
          },
          {
            "name": "parent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Ограничаване на резултатите до такива с даден(и) родителски ID номер(а)."
          },
          {
            "name": "parent_exclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Ограничаване на резултатите до всички освен тези с даден(и) родителски ID номер(а)."
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "simple",
                "grouped",
                "external",
                "variable",
                "variation"
              ]
            },
            "description": "Показване само на продукти от даден тип."
          },
          {
            "name": "sku",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Ограничете набора от резултати до продукти със специфични продуктови кодове. Използвайте запетаи, за да ги разделяте."
          },
          {
            "name": "featured",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Ограничаване на резултатите до подбрани продукти."
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit result set to products assigned a set of category IDs or slugs, separated by commas."
          },
          {
            "name": "category_operator",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "in",
                "not_in",
                "and"
              ],
              "default": "in"
            },
            "description": "Оператор за сравнение на продуктовите категории."
          },
          {
            "name": "brand",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit result set to products assigned a set of brand IDs or slugs, separated by commas."
          },
          {
            "name": "brand_operator",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "in",
                "not_in",
                "and"
              ],
              "default": "in"
            },
            "description": "Operator to compare product brand terms."
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit result set to products assigned a set of tag IDs or slugs, separated by commas."
          },
          {
            "name": "tag_operator",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "in",
                "not_in",
                "and"
              ],
              "default": "in"
            },
            "description": "Оператор за сравняване на етикети на продукти."
          },
          {
            "name": "on_sale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Ограничаване на резултатите до продукти с намаление."
          },
          {
            "name": "min_price",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit result set to products based on a minimum price, provided using the smallest unit of the currency."
          },
          {
            "name": "max_price",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Limit result set to products based on a maximum price, provided using the smallest unit of the currency."
          },
          {
            "name": "stock_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Ограничаване на резултатите до продукти по посочена складова наличност."
          },
          {
            "name": "attributes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Ограничете набора от резултати до продукти с избрани глобални атрибути."
          },
          {
            "name": "attribute_relation",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "in",
                "and"
              ],
              "default": "and"
            },
            "description": "Логическата връзка между атрибутите при филтриране по няколко наведнъж."
          },
          {
            "name": "catalog_visibility",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "any",
                "visible",
                "catalog",
                "search",
                "hidden"
              ]
            },
            "description": "Определя дали се показват скрити или видими продукти от каталога."
          },
          {
            "name": "rating",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Ограничете набора от резултати до продукти с определен среден рейтинг."
          },
          {
            "name": "related",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Limit result set to products related to a specific product ID."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-WP-Total": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой записи"
              },
              "X-WP-TotalPages": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой страници"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/{id}": {
      "get": {
        "summary": "Един продукт по ID",
        "operationId": "product_by_id",
        "tags": [
          "Продукти"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          },
          "404": {
            "description": "Няма такъв продукт"
          }
        }
      }
    },
    "/products/categories": {
      "get": {
        "summary": "Списък с категории",
        "description": "Продуктовите категории.",
        "operationId": "wc_store_v1_products_categories",
        "tags": [
          "Таксономии"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1
            },
            "description": "Текуща страница на колекцията."
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Maximum number of items to be returned in result set. Defaults to no limit if left blank."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Ограничаване на резултатите до тези, които отговарят на даден низ."
          },
          {
            "name": "exclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Уверете се, че наборът от резултати изключва определени ID номера."
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Ограничаване на резултатите до такива с конкретни номера."
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "asc"
            },
            "description": "Сортирай възходящо или низходящо"
          },
          {
            "name": "orderby",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "name",
                "slug",
                "count"
              ],
              "default": "name"
            },
            "description": "Sort by term property."
          },
          {
            "name": "hide_empty",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            },
            "description": "If true, empty terms will not be returned."
          },
          {
            "name": "parent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Limit results to terms with a specific parent (hierarchical taxonomies only)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-WP-Total": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой записи"
              },
              "X-WP-TotalPages": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой страници"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Term"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/brands": {
      "get": {
        "summary": "Списък с марки",
        "description": "Производителите в каталога.",
        "operationId": "wc_store_v1_products_brands",
        "tags": [
          "Таксономии"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1
            },
            "description": "Текуща страница на колекцията."
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Maximum number of items to be returned in result set. Defaults to no limit if left blank."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Ограничаване на резултатите до тези, които отговарят на даден низ."
          },
          {
            "name": "exclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Уверете се, че наборът от резултати изключва определени ID номера."
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Ограничаване на резултатите до такива с конкретни номера."
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "asc"
            },
            "description": "Сортирай възходящо или низходящо"
          },
          {
            "name": "orderby",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "name",
                "slug",
                "count"
              ],
              "default": "name"
            },
            "description": "Sort by term property."
          },
          {
            "name": "hide_empty",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            },
            "description": "If true, empty terms will not be returned."
          },
          {
            "name": "parent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Limit results to terms with a specific parent (hierarchical taxonomies only)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-WP-Total": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой записи"
              },
              "X-WP-TotalPages": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой страници"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Term"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/tags": {
      "get": {
        "summary": "Списък с етикети",
        "description": "Продуктовите етикети.",
        "operationId": "wc_store_v1_products_tags",
        "tags": [
          "Таксономии"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1
            },
            "description": "Текуща страница на колекцията."
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Maximum number of items to be returned in result set. Defaults to no limit if left blank."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Ограничаване на резултатите до тези, които отговарят на даден низ."
          },
          {
            "name": "exclude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Уверете се, че наборът от резултати изключва определени ID номера."
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": []
            },
            "description": "Ограничаване на резултатите до такива с конкретни номера."
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "asc"
            },
            "description": "Сортирай възходящо или низходящо"
          },
          {
            "name": "orderby",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "name",
                "slug",
                "count"
              ],
              "default": "name"
            },
            "description": "Sort by term property."
          },
          {
            "name": "hide_empty",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            },
            "description": "If true, empty terms will not be returned."
          },
          {
            "name": "parent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Limit results to terms with a specific parent (hierarchical taxonomies only)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-WP-Total": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой записи"
              },
              "X-WP-TotalPages": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой страници"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Term"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/attributes": {
      "get": {
        "summary": "Списък с атрибути",
        "description": "Атрибути за филтриране (калибър, стомана, лумени и др.).",
        "operationId": "wc_store_v1_products_attributes",
        "tags": [
          "Таксономии"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-WP-Total": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой записи"
              },
              "X-WP-TotalPages": {
                "schema": {
                  "type": "integer"
                },
                "description": "Общ брой страници"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Attribute"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Product": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "permalink": {
            "type": "string",
            "format": "uri"
          },
          "sku": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "short_description": {
            "type": "string"
          },
          "on_sale": {
            "type": "boolean"
          },
          "is_in_stock": {
            "type": "boolean"
          },
          "prices": {
            "type": "object",
            "properties": {
              "price": {
                "type": "string"
              },
              "regular_price": {
                "type": "string"
              },
              "sale_price": {
                "type": "string"
              },
              "currency_code": {
                "type": "string",
                "examples": [
                  "EUR"
                ]
              },
              "currency_minor_unit": {
                "type": "integer"
              }
            }
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "src": {
                  "type": "string",
                  "format": "uri"
                },
                "alt": {
                  "type": "string"
                }
              }
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Term"
            }
          }
        }
      },
      "Term": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "link": {
            "type": "string",
            "format": "uri"
          },
          "count": {
            "type": "integer"
          },
          "parent": {
            "type": "integer"
          }
        }
      },
      "Attribute": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "taxonomy": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      }
    }
  }
}