---
title: "Returns a paged list of products and provides search functionality."
url: "https://developer-qual.migros.ch/apis/products-8/versions/00c884ba-74fc-4f15-85ef-be7612933198/operations/get-products"
---

> Full API specification: https://developer-qual.migros.ch/apis/products-8/versions/00c884ba-74fc-4f15-85ef-be7612933198.md

# Returns a paged list of products and provides search functionality.

`GET` `/migros/products/v8/products`

Operation ID: `get-products`

While the limit is 2000, we recommend using lower numbers for paging detail or full verbosity lists, to avoid having huge responses.

## Query parameters

- `search` (string, optional) - Simple search string which is fault-tolerant for user-entered text.
- `limit` (integer, optional) - Maximum number of results (max 2000).
- `offset` (integer, optional) - Result set offset.
- `facets` (string, optional) - Selected facet terms as readable string or indexed array by facet name, e.g. ?facets[facet_name][]=123&facets[facet_name][]=456.
- `facet_size` (integer, optional) - Maximum number of terms for each facet to include in the response. -1 returns no facets at all and 0 returns all terms.
- `extra_facets` (string, optional) - Defines additional facets that should be returned. Possible values: 'category'. Example: ?extra_facets[]=category
- `sort` (string, optional) - The sorting criteria.
- `order` (string, optional) - The ordering direction.
- `roots` (string, optional) - When sorting by category the sorting will be done by the children of the categories passed in this parameter. For each product the first category matching from the bottom will be taken. The following two formats are valid for this parameter: ?roots=code1,code2 or ?roots[]=code1&roots[]=code2.
- `region` (string, optional) - Get the price for this region. Output in the 'price' field and used for sorting by price. If you specify 'all', prices for all regions are additionally output in 'regional_information'.
- `regional_available` (string, optional) - Filter the list of products by their availability in the given region. Availability is based on supermarket stores (M, MM, MMM, Voi, Migros Partner), and assumes that the product is available in at least a percentage of those stores, see `regional_available_min_percentage` for default value.
- `regional_available_min_percentage` (integer, optional) - Specify the minimum percentage of the availability in the region to be used. This parameter can be used only with the `regional_available`. Default value is 60% for the product search. Note: 1% means that the product is available at least in one store
- `price_source` (string, optional) - Use a different source to use for prices than the default PriceRepo system. To get shop prices, specify the price_channel. You can't specify both this and price_channel in the same request.
- `price_channel` (string, optional) - Get the shop prices for the specified channel. Only national prices will be available in regional_information. You can't specify both this and price_source in the same request. When using this parameter, price boosting, filtering by discounts, discount_campaigns, discount_events or discount_types and sorting by price uses the price repo prices, and not the specified shop price. Visibility will look at the price repository price, not the shop price of the specified channel.
- `regional_prices` (string, optional) - Set to 'all' to output regional prices in the regional_information field if available.
- `updated_since` (string, optional) - The date and time used to only get products updated since a certain timestamp. The format is according to ISO 8601 and can include a time zone offset, e.g. 2018-01-01T06:00:00+01:00 (careful about the plus getting properly percent-encoded when passed). Default time zone is Swiss time.
- `discount` (string, optional) - Display only products which belong to the specified discount. This filter still works, but is deprecated as of version 2.
- `discounts` (string, optional) - Display only products which belong to the specified discounts. This filter respects the region parameter, so the discount has be in the given region or national. Note: A discount sometimes applies to many products, you need to do paging in case the limit is hit (see limit parameter).
- `discount_campaigns` (string, optional) - Display only products which belong to the specified discount campaign. This will also return the specific discount on the product.
- `discount_events` (string, optional) - Display only products which belong to the specified discount event. This will also return the specific discount on the product.
- `discount_types` (string, optional) - Display only products which have a discount with the given discount_type_id. Multiple can be given, seperated by a comma. Product must have at least one of the specified discount types to pass the filter. Will respect the region parameter if set and use that in addition to national discounts.
- `gtins` (string, optional) - A comma separated list or an array of gtins for filtering the products. The order of the gtins has no effect on the order of the returned products.
- `tags` (string, optional) - A comma separated list or an array of tags for filtering the products. The products must contain one of the specified tags.
- `store` (string, optional) - A single store id. If set, the result is limited to products available at that store.
- `supplierids` (string, optional) - A comma separated list or an array of supplier ids for filtering the products.
- `recipe_ingredient` (string, optional) - The RecipeIngredient ID to filter the products for. Only a single id is supported, as otherwise it would be impossible from the result to know which products belongs to which ingredient id.
- `ids` (string, optional) - A comma separated list or an array of product ids defining the products and the order in which the products should be returned. If the ids parameter is provided all other filtering parameters are ignored.
- `boss_number_prefixes` (string, optional) - A comma separated list of boss_numbers prefixes to filter products for.
- `online_relevant` (string, optional) - Filter for only products in this online channel. e.g. MO, MGB (for supermarket), MYM or ALN. A comma separated list or an array
- `view` (string, optional) - Return specific set of products. Either 'all' (active and inactive/incomplete products), 'browse' (active products excluding Alnatura products), or 'browseallretailers' (active products including Alnatura products).
- `verbosity` (string, optional) - Verbosity of output. If not specified, outputs information usually needed on product lists. You can output a flat list of product ids with 'id' or show all details as in the product detail route with 'detail'.
- `alternate_scoring` (boolean, optional) - Enable alternate scoring system, for A/B search testing
- `search_mode` (string, optional) - Use the given search mode (warning: changing the search_mode is meant only for specific cases).
- `search_fields` (string, optional) - A comma separated list or an array of fields where the search should be executed in (only valid with search_mode=customized). This is meant for testing purposes only.
- `search_within_ids` (string, optional) - A comma separated list or an array of product IDs to search in (sort is not altered by this filter). Take care of the request size when passing a huge number of IDs
- `custom_image` (boolean, optional) - Whether to output the custom image format with placeholders for width and height.
- `is_variant` (boolean, optional) - Whether to output products that are variants. If this parameter is omitted, it returns both variants and base products.
- `one_catalog_ids` (string, optional) - A comma separated list of one catalog ids for filtering the products.
- `price_level` (integer, optional) - Filter for prive_level property (1=tiefpreis)
- `lang` (string, optional) - Defines the language (de/fr/it/en) for this request as query parameter. Either use the query param "lang" or header "Accept-Language", not both.

## Header parameters

- `Accept-Language` (string, optional) - Defines the language (de/fr/it/en) for this request as request header. Either use the query param "lang" or header "Accept-Language", not both.

## Responses

- `200` - Returned when successful
- `400` - If the request parameters are invalid.
- `410` - If an endpoint is requested that no longer exists for the requested version.

## OpenAPI definition

```yaml
openapi: 3.0.0
info:
  title: Products
  version: "8"
servers:
  - description: Public Kong Gateway URL
    url: https://api-qual.migros.ch
paths:
  /migros/products/v8/products:
    get:
      description: >-
        While the limit is 2000, we recommend using lower numbers for paging
        detail or full verbosity lists,

        to avoid having huge responses.
      operationId: get-products
      parameters:
        - $ref: "#/components/parameters/search"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/offset"
        - $ref: "#/components/parameters/facets"
        - $ref: "#/components/parameters/facet_size"
        - description: "Defines additional facets that should be returned. Possible
            values: 'category'. Example: ?extra_facets[]=category"
          in: query
          name: extra_facets
          schema:
            type: string
        - description: The sorting criteria.
          in: query
          name: sort
          required: false
          schema:
            default: score
            enum:
              - score
              - price
              - category
              - id
              - name
              - rating
              - rating_rounded
              - rating_rounded_tenth
              - reviews
              - updated_at
              - boss_number
              - brand_name
              - pim_status
            type: string
        - $ref: "#/components/parameters/order"
        - description: "When sorting by category the sorting will be done by the children
            of the categories passed in this parameter. For each product the
            first category matching from the bottom will be taken. The following
            two formats are valid for this parameter: ?roots=code1,code2 or
            ?roots[]=code1&roots[]=code2."
          in: query
          name: roots
          schema:
            type: string
        - deprecated: true
          description: Get the price for this region. Output in the 'price' field and used
            for sorting by price. If you specify 'all', prices for all regions
            are additionally output in 'regional_information'.
          in: query
          name: region
          schema:
            default: national
            enum:
              - national
              - gmaa
              - gmbs
              - gmge
              - gmlu
              - gmnf
              - gmos
              - gmti
              - gmvd
              - gmvs
              - gmzh
              - all
            type: string
        - description: Filter the list of products by their availability in the given
            region. Availability is based on supermarket stores (M, MM, MMM,
            Voi, Migros Partner), and assumes that the product is available in
            at least a percentage of those stores, see
            `regional_available_min_percentage` for default value.
          in: query
          name: regional_available
          schema:
            enum:
              - gmaa
              - gmbs
              - gmge
              - gmlu
              - gmnf
              - gmos
              - gmti
              - gmvd
              - gmvs
              - gmzh
              - national
            type: string
        - description: "Specify the minimum percentage of the availability in the region
            to be used. This parameter can be used only with the
            `regional_available`. Default value is 60% for the product search.
            Note: 1% means that the product is available at least in one store"
          in: query
          name: regional_available_min_percentage
          schema:
            maximum: 100
            minimum: 1
            type: integer
        - deprecated: true
          description: Use a different source to use for prices than the default PriceRepo
            system. To get shop prices, specify the price_channel. You can't
            specify both this and price_channel in the same request.
          in: query
          name: price_source
          schema:
            enum:
              - pim
            type: string
        - deprecated: true
          description: Get the shop prices for the specified channel. Only national prices
            will be available in regional_information. You can't specify both
            this and price_source in the same request. When using this
            parameter, price boosting, filtering by discounts,
            discount_campaigns, discount_events or discount_types and sorting by
            price uses the price repo prices, and not the specified shop price.
            Visibility will look at the price repository price, not the shop
            price of the specified channel.
          in: query
          name: price_channel
          schema:
            enum:
              - "01"
              - "02"
              - "03"
              - "04"
              - "05"
              - "06"
              - "07"
              - "08"
              - "09"
              - "10"
              - "11"
              - "12"
              - "99"
            type: string
        - deprecated: true
          description: Set to 'all' to output regional prices in the regional_information
            field if available.
          in: query
          name: regional_prices
          schema:
            enum:
              - all
            type: string
        - description: The date and time used to only get products updated since a certain
            timestamp. The format is according to ISO 8601 and can include a
            time zone offset, e.g. 2018-01-01T06:00:00+01:00 (careful about the
            plus getting properly percent-encoded when passed). Default time
            zone is Swiss time.
          in: query
          name: updated_since
          schema:
            type: string
        - deprecated: true
          description: Display only products which belong to the specified discount. This
            filter still works, but is deprecated as of version 2.
          in: query
          name: discount
          schema:
            type: string
        - deprecated: true
          description: "Display only products which belong to the specified discounts.
            This filter respects the region parameter, so the discount has be in
            the given region or national. Note: A discount sometimes applies to
            many products, you need to do paging in case the limit is hit (see
            limit parameter)."
          in: query
          name: discounts
          schema:
            type: string
        - deprecated: true
          description: Display only products which belong to the specified discount
            campaign. This will also return the specific discount on the
            product.
          in: query
          name: discount_campaigns
          schema:
            type: string
        - deprecated: true
          description: Display only products which belong to the specified discount event.
            This will also return the specific discount on the product.
          in: query
          name: discount_events
          schema:
            type: string
        - deprecated: true
          description: Display only products which have a discount with the given
            discount_type_id. Multiple can be given, seperated by a comma.
            Product must have at least one of the specified discount types to
            pass the filter. Will respect the region parameter if set and use
            that in addition to national discounts.
          in: query
          name: discount_types
          schema:
            type: string
        - description: A comma separated list or an array of gtins for filtering the
            products. The order of the gtins has no effect on the order of the
            returned products.
          in: query
          name: gtins
          schema:
            type: string
        - description: A comma separated list or an array of tags for filtering the
            products. The products must contain one of the specified tags.
          in: query
          name: tags
          schema:
            type: string
        - description: A single store id. If set, the result is limited to products
            available at that store.
          in: query
          name: store
          schema:
            type: string
        - description: A comma separated list or an array of supplier ids for filtering
            the products.
          in: query
          name: supplierids
          schema:
            type: string
        - description: The RecipeIngredient ID to filter the products for. Only a single
            id is supported, as otherwise it would be impossible from the result
            to know which products belongs to which ingredient id.
          in: query
          name: recipe_ingredient
          schema:
            type: string
        - description: A comma separated list or an array of product ids defining the
            products and the order in which the products should be returned. If
            the ids parameter is provided all other filtering parameters are
            ignored.
          in: query
          name: ids
          schema:
            type: string
        - description: A comma separated list of boss_numbers prefixes to filter products
            for.
          in: query
          name: boss_number_prefixes
          schema:
            type: string
        - description: Filter for only products in this online channel. e.g. MO, MGB (for
            supermarket), MYM or ALN. A comma separated list or an array
          in: query
          name: online_relevant
          schema:
            type: string
        - description: Return specific set of products. Either 'all' (active and
            inactive/incomplete products), 'browse' (active products excluding
            Alnatura products), or 'browseallretailers' (active products
            including Alnatura products).
          in: query
          name: view
          schema:
            default: browse
            enum:
              - all
              - browse
              - browseallretailers
            type: string
        - description: Verbosity of output. If not specified, outputs information usually
            needed on product lists. You can output a flat list of product ids
            with 'id' or show all details as in the product detail route with
            'detail'.
          in: query
          name: verbosity
          schema:
            enum:
              - id
              - list
              - detail
              - full
            type: string
        - deprecated: true
          description: Enable alternate scoring system, for A/B search testing
          in: query
          name: alternate_scoring
          schema:
            type: boolean
        - description: "Use the given search mode (warning: changing the search_mode is
            meant only for specific cases)."
          in: query
          name: search_mode
          schema:
            enum:
              - default
              - abtesting
              - artikelabfrage
              - customized
            type: string
        - description: A comma separated list or an array of fields where the search
            should be executed in (only valid with search_mode=customized). This
            is meant for testing purposes only.
          in: query
          name: search_fields
          schema:
            type: string
        - description: A comma separated list or an array of product IDs to search in
            (sort is not altered by this filter). Take care of the request size
            when passing a huge number of IDs
          in: query
          name: search_within_ids
          schema:
            type: string
        - $ref: "#/components/parameters/custom_image"
        - description: Whether to output products that are variants. If this parameter is
            omitted, it returns both variants and base products.
          in: query
          name: is_variant
          schema:
            type: boolean
        - description: A comma separated list of one catalog ids for filtering the products.
          in: query
          name: one_catalog_ids
          schema:
            type: string
        - description: Filter for prive_level property (1=tiefpreis)
          in: query
          name: price_level
          schema:
            type: integer
        - $ref: "#/components/parameters/lang"
        - $ref: "#/components/parameters/Accept-Language"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProductCollection"
          description: Returned when successful
        "400":
          $ref: "#/components/responses/400"
        "410":
          $ref: "#/components/responses/410"
      summary: Returns a paged list of products and provides search functionality.
      tags:
        - Products
security:
  - Kong-Api-Key: []
    basicAuth: []
components:
  parameters:
    search:
      description: Simple search string which is fault-tolerant for user-entered text.
      in: query
      name: search
      required: false
      schema:
        type: string
    limit:
      description: Maximum number of results (max 2000).
      in: query
      name: limit
      required: false
      schema:
        default: 10
        maximum: 2000
        minimum: 0
        type: integer
    offset:
      description: Result set offset.
      in: query
      name: offset
      required: false
      schema:
        default: 0
        minimum: 0
        type: integer
    facets:
      description: Selected facet terms as readable string or indexed array by facet
        name, e.g. ?facets[facet_name][]=123&facets[facet_name][]=456.
      in: query
      name: facets
      required: false
      schema:
        type: string
    facet_size:
      description: Maximum number of terms for each facet to include in the response.
        -1 returns no facets at all and 0 returns all terms.
      in: query
      name: facet_size
      required: false
      schema:
        type: integer
    order:
      description: The ordering direction.
      in: query
      name: order
      schema:
        default: asc
        enum:
          - asc
          - desc
        type: string
    custom_image:
      description: Whether to output the custom image format with placeholders for
        width and height.
      in: query
      name: custom_image
      schema:
        default: false
        type: boolean
    lang:
      description: Defines the language (de/fr/it/en) for this request as query
        parameter. Either use the query param "lang" or header
        "Accept-Language", not both.
      in: query
      name: lang
      schema:
        default: de
        enum:
          - de
          - fr
          - it
          - en
        type: string
    Accept-Language:
      description: Defines the language (de/fr/it/en) for this request as request
        header. Either use the query param "lang" or header "Accept-Language",
        not both.
      in: header
      name: Accept-Language
      schema:
        default: de
        enum:
          - de
          - fr
          - it
          - en
        type: string
  schemas:
    ProductCollection:
      allOf:
        - $ref: "#/components/schemas/AbstractFacetedSearchResultCollection"
        - properties:
            products:
              items:
                $ref: "#/components/schemas/Product"
              type: array
          type: object
      description: A collection of Product instances.
      required:
        - products
        - total_hits
      type: object
    AbstractFacetedSearchResultCollection:
      allOf:
        - $ref: "#/components/schemas/AbstractSearchResultCollection"
        - properties:
            facets:
              additionalProperties:
                $ref: "#/components/schemas/Facet"
              deprecated: true
              description: Facets array.
              type: object
          type: object
      description: A collection of search result instances with facets.
      type: object
    Product:
      description: Represents a product in the API.
      properties:
        additional_categories:
          description: Collection of additional category breadcrumbs, where the first
            element is the leaf category and the last one the root.
          items:
            items:
              $ref: "#/components/schemas/BaseCategory"
            type: array
          type: array
        additional_images:
          description: Additional product images.
          items:
            $ref: "#/components/schemas/Image"
          nullable: true
          type: array
        adult_content:
          description: Flag if the product is an adult-only product
          nullable: true
          type: boolean
        assortment_levels:
          description: Collection of assortment level information.
          items:
            $ref: "#/components/schemas/ProductAssortmentLevel"
          nullable: true
          type: array
        attributes:
          additionalProperties:
            $ref: "#/components/schemas/Attribute"
          description: >-
            Hashmap of variant attributes.


            The keys are the attribute labels. There are some known keys: color
            and size.
          type: object
        base_product_id:
          description: The product id of the base product if one exists.
          nullable: true
          type: string
        base_unit:
          description: The base unit of the product.
          nullable: true
          type: string
        boss_number:
          description: >-
            Product "boss number".


            It is represented as string because the number can have leading
            zeros.
          type: string
        brand:
          description: The brand ("Marke") the product belongs to.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Brand"
        bundle:
          description: >-
            Bundle (Gebindetyp) information of a product: Contains information
            about the bundle (Gebinde) in which a product

            is handled/transported in logistic centers.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Bundle"
        care_labels:
          description: List of care labels for this product.
          items:
            $ref: "#/components/schemas/CareLabel"
          nullable: true
          type: array
        categories:
          description: Hierarchy/breadcrumb of main category. The first element is the
            leaf category and the last one the root.
          items:
            $ref: "#/components/schemas/BaseCategory"
          nullable: true
          type: array
        chemicals_declaration:
          description: >-
            Chemicals declaration for this product.


            This is only exported on the product detail view, but not in list
            views.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductChemicalsDeclaration"
        co2_compensation:
          description: CO2 compensation information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Co2Compensation"
        colors:
          deprecated: true
          description: Possible colors of the product.
          items:
            $ref: "#/components/schemas/Color"
          nullable: true
          type: array
        declarations:
          description: Declaration information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductDeclarations"
        description:
          description: Main product description.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Description"
        documents:
          description: Collection of document instances.
          items:
            $ref: "#/components/schemas/Document"
          nullable: true
          type: array
        energy_efficiency:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/EnergyEfficiency"
        esl_additional_information:
          description: >-
            eRPA Text field

            EsField index=false so that the field is not indexed in
            ElasticSearch

            we only need it in the raw data
          nullable: true
          type: string
        eyecatchers:
          deprecated: true
          description: A special collection of pictograms that are to be shown on the
            overview too.
          items:
            $ref: "#/components/schemas/Pictogram"
          nullable: true
          type: array
        features:
          description: Collection of product feature instances.
          items:
            $ref: "#/components/schemas/ProductFeature"
          nullable: true
          type: array
        galaxus_relevant:
          description: |-
            Whether the product in relevant for Galaxus.

            Used in the admin app and for filtering in ElasticSearch.
          nullable: true
          type: boolean
        gpc:
          description: Global Product Classification.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductGpc"
        gtins:
          description: Global Trade Item Number (GTIN).
          items:
            type: string
          type: array
        has_safety_sheet:
          description: |-
            Flag if the product has any Safety-Sheet available.
            This is for internal use only.
          nullable: true
          type: boolean
        id:
          type: string
        image:
          description: Main product image.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        image_transparent:
          description: Main product image, transparent.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        included_recycling_fee:
          deprecated: true
          description: This is the cost of the so called 'vorgezogene Recyclinggebühr', in
            PEx called 'vrgPrice'
          format: float
          nullable: true
          type: number
        internal_features:
          description: Collection of internal feature instances for grouping, sorting.
          items:
            $ref: "#/components/schemas/ProductFeature"
          nullable: true
          type: array
        is_variant:
          description: Whether it is a product variant.
          type: boolean
        item_usage:
          description: Multilingual description of how the product is used, e.g. permanent
            article
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ItemUsage"
        labels:
          description: Collection of labels.
          items:
            $ref: "#/components/schemas/Label"
          nullable: true
          type: array
        language:
          enum:
            - de
            - fr
            - it
            - en
          type: string
        links:
          additionalProperties:
            $ref: "#/components/schemas/Link"
          description: |-
            Hashmap of links indexed by target system id.

            This property holds the data to store in Elasticsearch.
          type: object
        local_certifications:
          description: Local Certifications of a product, needed for the new product title
            structure.
          items:
            $ref: "#/components/schemas/LocalCertification"
          nullable: true
          type: array
        logistical_information:
          description: Logistical information about the product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/LogisticalInformation"
        m_check2:
          description: "MCheck data: product sustainability information."
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MCheck"
        m_data:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductMData"
        main_supplier:
          description: Main supplier (Regellieferant) for this product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductSupplier"
        main_variant_id:
          description: The id of the main variant of this product, if one exists.
          nullable: true
          type: string
        migrolino_data:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MigrolinoData"
        mpid:
          description: The Migros-Product-ID (from Riversand/Pim4Migros project), e.g.
            "MP-169r-xp74-3dba"
          nullable: true
          type: string
        name:
          type: string
        names:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductNames"
        new_product:
          description: Date range when the product is considered new.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/DateRange"
        nutritional_characteristics:
          description: Nutritional Characteristics of a product, needed for the new
            product title structure.
          items:
            $ref: "#/components/schemas/NutritionalCharacteristic"
          nullable: true
          type: array
        one_catalog:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/OneCatalog"
        online_relevant:
          description: Online channels this product is relevant for.
          items:
            $ref: "#/components/schemas/OnlineRelevant"
          nullable: true
          type: array
        online_shop_relevant:
          description: >-
            Whether the product in relevant for Rialto.


            This flag does NOT decide whether the product should currently be
            shown in the shops.

            It merely tells that PIM sees the necessary logistics information
            for this product exist.

            For MAPI, this flag means that rialto is notified about changes on
            this product.


            To decide if a product should be shown in the shop, use the
            retailer_flags visibility field.
          nullable: true
          type: boolean
        origins:
          description: If there are declarations, this is the information from the
            declarations, otherwise the information coming from PEx.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Origins"
        package:
          description: >-
            Package weight and contents.


            Some of this data is duplicated in "package_information", which
            contains information about more package types.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductPackage"
        package_information:
          additionalProperties:
            $ref: "#/components/schemas/ProductPackageInformation"
          description: >-
            Package information indexed by the type of package.


            Some of this data is duplicated in "package", which can contain
            additional information for display purposes.


            Example types of package information:

            - cu: customer unit

            - tu: transport unit

            - lu: logistic unit
          type: object
        parts:
          deprecated: true
          description: List of parts related to this product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Parts"
        pictograms:
          deprecated: true
          description: Collection of pictograms for this product.
          items:
            $ref: "#/components/schemas/Pictogram"
          nullable: true
          type: array
        pop:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Pop"
        pre_supplier:
          description: >-
            Upstream supplier referenced by the main supplier in P4M.

            Contains the supplier ID and, when available from the supplier
            relation lookup, the supplier name.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductPreSupplier"
        price:
          deprecated: true
          description: >-
            Current valid price or discounted price.


            Defaults to national price. If region is given and the price
            differs, the regional price is used.

            Falls back to national if there is no regional price.


            This property is mapped on-the-fly given the region specified in the
            API request by the ProductFilter.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductPrice"
        price_comparison:
          description: Alternative units for pricing comparison
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductPriceComparison"
        procurement_ordering_text:
          deprecated: true
          description: Ordering text of the product that is useful in the procurement
            process.
          nullable: true
          type: string
        product_line:
          nullable: true
        product_specific_properties:
          description: Specific Properties of a product, needed for the new product title
            structure.
          nullable: true
          type: string
        product_type:
          description: Product type name.
          nullable: true
          type: string
        product_type_code:
          description: Product type code.
          nullable: true
          type: string
        quality_responsible:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/QualityResponsible"
        quantity_on_stock:
          deprecated: true
          description: The amount on stock.
          nullable: true
          type: integer
        ratings:
          description: The ratings of the product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ItemRatings"
        receipt_text:
          description: Product receipt text.
          nullable: true
          type: string
        regional_availability:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailabilityMap"
        regional_information:
          deprecated: true
          description: >-
            The regional information with price and discount information.


            Either national is set or the individual regional ones.

            No longer visible by default from version 7 on. If required, use
            region=all to get it.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalInformation"
        reindex_date:
          description: Time when product should be reindexed again because of outdated data.
          format: date-time
          nullable: true
          type: string
        related_products:
          description: List of related products, such as purchase recommendations or
            product references.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RelatedProducts"
        retailer:
          $ref: "#/components/schemas/Retailer"
        retailer_flags:
          description: Retailer flags (Product status fields).
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RetailerFlagsMap"
        sap_created_at:
          description: Time when product was created in SAP.
          format: date-time
          nullable: true
          type: string
        services:
          deprecated: true
          description: Services which are available to this product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Services"
        short_description:
          deprecated: true
          nullable: true
          type: string
        slug:
          description: Unique user-friendly ID.
          type: string
        slugs:
          $ref: "#/components/schemas/Slugs"
        status:
          $ref: "#/components/schemas/ProductStatus"
        tags:
          description: >-
            Tags for flagging certain products.


            The tags property is stored to ES as is, but we use a virtual
            property for M-API output to filter out internal tags.
          items:
            type: string
          nullable: true
          type: array
        test_winner_labels:
          deprecated: true
          items:
            $ref: "#/components/schemas/Image"
          nullable: true
          type: array
        type:
          description: |-
            Product type from PIM or PEx.
            This value is also used properly tag Sammler products.

            00 = Einzelartikel (normal product)
            01 = Sammelartikel (Sammler)
            02 = Variante (variant)
            10 = VK-Set
            11 = Lot
            12 = Display
            20 = Warengruppen-Wertartikel
            21 = Warengruppen-Hierarchiewertartikel
            22 = Gruppen-Wertartikel
            30 = Warengruppen-Vorlageartikel
          nullable: true
          type: string
        updated_at:
          description: >-
            Time when product was last indexed (or partially updated) with
            modifications in Elasticsearch.


            When a product did not change after mapping, it is not re-indexed
            and thus the timestamp is not updated as well.
          format: date-time
          type: string
        variants:
          description: Collection of variants that are of type product as well.
          items:
            $ref: "#/components/schemas/ProductVariant"
          nullable: true
          type: array
        variety:
          nullable: true
          type: string
        vat:
          description: Product VAT percentage.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Vat"
        videos:
          description: Links to videos.
          items:
            type: string
          nullable: true
          type: array
        warranty_extension_price:
          deprecated: true
          format: float
          nullable: true
          type: number
        warranty_months:
          description: The number of months this product has warranty.
          nullable: true
          type: integer
      required:
        - id
        - language
        - name
        - boss_number
        - slug
        - retailer
        - updated_at
      type: object
    AbstractSearchResultCollection:
      allOf:
        - $ref: "#/components/schemas/AbstractCollection"
        - properties:
            ids:
              description: >-
                Ids only.


                Is filled instead of the usual property for content, with only
                the ids when a call is made with verbosity=id on a

                route that supports it.
              items:
                type: string
              type: array
            total_hits:
              description: >-
                The total hits may exceed the actual count of results in the
                collection.


                It represents the total number of results of a search and not
                only the

                potentially paginated subset.
              nullable: true
              type: integer
          type: object
      description: A collection of search result instances.
      type: object
    Facet:
      properties:
        name:
          description: Name of this facet.
          type: string
        terms:
          description: List of terms.
          items:
            $ref: "#/components/schemas/FacetTerm"
          type: array
      required:
        - name
        - terms
      type: object
    BaseCategory:
      description: Represents the category basic information.
      properties:
        abstract:
          description: A short, plain text description, e.g. suitable for the page meta
            element.
          nullable: true
          type: string
        code:
          description: ID of the category.
          type: string
        headline:
          description: The caption to the description.
          nullable: true
          type: string
        image:
          description: Image of the category.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        keywords:
          description: Keywords, e.g. suitable for the page meta element.
          items:
            type: string
          nullable: true
          type: array
        level:
          description: Category level.
          type: integer
        name:
          type: string
        parent_code:
          description: Parent category ID.
          nullable: true
          type: string
        slug:
          description: Unique user-friendly ID.
          type: string
        title:
          description: The title, e.g. suitable for the page title element.
          nullable: true
          type: string
        visible:
          description: Whether the category should be shown to users.
          type: boolean
      required:
        - code
        - name
        - slug
      type: object
    Image:
      description: An image and its properties.
      properties:
        code:
          deprecated: true
          description: Code for the image, useful for pictograms.
          nullable: true
          type: string
        custom:
          deprecated: true
          description: Image URL with placeholders for {width} and {height}.
          type: string
        description:
          deprecated: true
          description: Image description, useful for example as alt attribute.
          nullable: true
          type: string
        end_date:
          deprecated: true
          description: End date of the validity.
          format: date-time
          nullable: true
          type: string
        hash:
          deprecated: true
          description: Sha1 hash of original image.
          nullable: true
          type: string
        original:
          deprecated: true
          description: Full size image.
          type: string
        source:
          deprecated: true
          description: Source where the image comes from originally.
          nullable: true
          type: string
        stack:
          deprecated: true
          description: Image URL with a placeholder for a Rokka {stack}.
          type: string
        start_date:
          deprecated: true
          description: Start date of the validity.
          format: date-time
          nullable: true
          type: string
        tags:
          deprecated: true
          items:
            type: string
          type: array
      type: object
    ProductAssortmentLevel:
      description: Entry in the assortment information list (Sortimentierung in SAP)
      properties:
        distribution_chain_description:
          type: string
        level_code:
          description: Translated description for the distribution chain, e.g. "MGB ZWW
            Kolonial HKS". Vertriebslinie in SAP.
          type: string
        level_description:
          nullable: true
          type: string
      required:
        - level_code
        - distribution_chain_description
      type: object
    Attribute:
      properties:
        code:
          description: >-
            Variant attribute value code.


            A unique identifier of the attribute/value, which the Rialto shops
            need in their data model.
          nullable: true
          type: string
        hex_color:
          description: HTML color code of the value if available.
          nullable: true
          type: string
        name:
          description: Name of the attribute.
          type: string
        value:
          description: Value of the attribute.
          type: string
      required:
        - name
        - value
      type: object
    Brand:
      description: Represents the Brand information.
      properties:
        abstract:
          description: A short, plain text description, e.g. suitable for the page meta
            element.
          nullable: true
          type: string
        class_id:
          description: Brand class code.
          nullable: true
          type: string
        class_type:
          description: Brand class type.
          nullable: true
          type: string
        description:
          description: The long description of the brand (can contain HTML).
          nullable: true
          type: string
        headline:
          description: The caption to the description.
          nullable: true
          type: string
        id:
          type: string
        image:
          description: Image of the brand.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        keywords:
          description: Keywords, e.g. suitable for the page meta element.
          items:
            type: string
          nullable: true
          type: array
        links:
          additionalProperties:
            $ref: "#/components/schemas/Link"
          description: Collection of links indexed by string identifier.
          type: object
        name:
          nullable: true
          type: string
        parent_brand:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/PartialBrand"
        position_for_product_title:
          description: Position of the brand short name for the product title
          nullable: true
          type: string
        short_name_for_product_title:
          description: Short name of brand for the product title
          nullable: true
          type: string
        slug:
          description: Unique user-friendly ID.
          type: string
        sub_brand:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/PartialBrand"
        tags:
          description: Tags for flagging certain brands.
          items:
            type: string
          nullable: true
          type: array
        title:
          description: The title, e.g. suitable for the page title element.
          nullable: true
          type: string
      required:
        - id
        - name
        - slug
      type: object
    Bundle:
      description: >-
        Bundle (Gebindetyp) contains information about the bundle (Gebinde)
        which is used in the logistics center to

        handle/transport the products.
      properties:
        factor_uom:
          description: The maximum number of units (of referenceUom) that fit into the
            bundle type
          format: float
          nullable: true
          type: number
        product_number:
          description: The product ID of the bundle type (Gebindetyp) that is used to
            transport the product
          nullable: true
          type: string
        reference_uom:
          description: The unit reference (e.g. CU, TU) which is handled in the bundle
          nullable: true
          type: string
      required:
        - text
      type: object
    CareLabel:
      description: Represents a care label.
      properties:
        id:
          description: ID of the care label.
          type: string
        image:
          $ref: "#/components/schemas/Image"
        name:
          description: Name of the care label.
          type: string
      required:
        - id
        - name
      type: object
    ProductChemicalsDeclaration:
      description: >-
        Information on chemicals (Gefahrenstoffe).


        The backend decides which statements are to be displayed according to
        additional flags.

        Just show all statements you find.


        http://de.wikipedia.org/wiki/H-_und_P-S%C3%A4tze

        http://de.wikipedia.org/wiki/R-_und_S-S%C3%A4tze
      properties:
        biozid_number_ch:
          description: "PIM: biozidNummerCh."
          nullable: true
          type: string
        chem_voc_concentration:
          description: Concentration of chemical volatile organic compounds, in percent.
          format: float
          nullable: true
          type: number
        chemical_quantity_limit:
          description: |-
            Amount that gets dangerous, for risk analysis.

            PIM: chemMengenSchwelle
          nullable: true
          type: integer
        cleaning_agents:
          description: "PIM: reinigungsinhaltsstoffe."
          items:
            $ref: "#/components/schemas/ChemicalsCleaningAgent"
          nullable: true
          type: array
        cpid_number:
          nullable: true
          type: string
        declaration_required_ingredients:
          description: "PIM: deklarationspflichtigeStoffe."
          items:
            $ref: "#/components/schemas/ChemicalsMaterial"
          nullable: true
          type: array
        eu_hazard_statements:
          description: New GHS european union extra hazard statements.
          items:
            $ref: "#/components/schemas/ChemicalsStatement"
          nullable: true
          type: array
        extra_cleaning_agents:
          description: "PIM: weitereReinigungsInhaltsstoffe."
          items:
            $ref: "#/components/schemas/ChemicalsCleaningAgent"
          nullable: true
          type: array
        extra_hazard_statements:
          description: "PIM: besondereGefahrenSaetze."
          items:
            $ref: "#/components/schemas/ChemicalsStatement"
          nullable: true
          type: array
        hazard_classes:
          description: "PIM: gefahrenGutKlassen."
          items:
            $ref: "#/components/schemas/ChemicalsStatement"
          nullable: true
          type: array
        hazard_pictograms:
          items:
            $ref: "#/components/schemas/Image"
          nullable: true
          type: array
        hazard_statements:
          description: New GHS standard statements.
          items:
            $ref: "#/components/schemas/ChemicalsStatement"
          nullable: true
          type: array
        hazard_symbols:
          items:
            $ref: "#/components/schemas/Image"
          nullable: true
          type: array
        packaging_exceeds_limited_quantity:
          description: >-
            Whether the packaging of this product exceeds the Limited Quantity
            (LQ) that is set by transport agencies.


            PIM: gebindeGroesserLq
          nullable: true
          type: boolean
        poison_cabinet:
          description: "PIM: giftSchrankAufbewahrung."
          nullable: true
          type: boolean
        precautionary_statements:
          description: New GHS standard statements.
          items:
            $ref: "#/components/schemas/ChemicalsStatement"
          nullable: true
          type: array
        preservability_months:
          description: How long this product can be kept, in months.
          nullable: true
          type: integer
        release_date:
          format: date-time
          nullable: true
          type: string
        risk_statements:
          description: Old EWG standard statements.
          items:
            $ref: "#/components/schemas/ChemicalsStatement"
          nullable: true
          type: array
        safety_statements:
          description: Old EWG standard statements.
          items:
            $ref: "#/components/schemas/ChemicalsStatement"
          nullable: true
          type: array
        signal_word:
          description: "PIM: signalwort."
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ChemicalsStatement"
        storage_class:
          description: |-
            Information about storing / transporting the good.

            PIM: lagerKlasse
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ChemicalsStatement"
        supplier_description:
          nullable: true
          type: string
        supplier_id:
          type: string
        transport_category:
          description: "PIM: befoerderungsKategorie."
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ChemicalsStatement"
        tunnel_restriction:
          description: "PIM: tunnelrestriktionen."
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ChemicalsStatement"
        un_number:
          description: |-
            United nations number.

            PIM: unNummer
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ChemicalsStatement"
      required:
        - supplier_id
      type: object
    Co2Compensation:
      description: >-
        CO2 compensation details.


        These are the technical values for selling CO2 compensation. The MCheck
        also provides some carbon footprint

        information, but the MCheck information is only informative.
      properties:
        is_compensated:
          description: Whether the CO2 is already compensated.
          nullable: true
          type: boolean
        kg_co2:
          description: >-
            This is the same information from the same P4M source as MCheck
            carbon footprint kgCo2.


            We duplicate it here because it is used in a different context.
          example: 7.6
          format: float
          nullable: true
          type: number
        kg_co2_compensation:
          description: >-
            How much CO2 needs to be compensated per kg.


            This value might be lower than kgCo2 if some of the CO2 has already
            been compensated.
          example: 7.6
          format: float
          nullable: true
          type: number
        mcheck_enabled:
          description: Whether the CO2 information is allowed to be output in mcheck too.
          nullable: true
          type: boolean
      required:
        - kg_co2
        - kg_co2_compensation
      type: object
    Color:
      description: Represents a possible color for the product.
      properties:
        group:
          description: The simplified color name, used for facetting and grouping similar
            colors together (e.g. "Braun").
          type: string
        group_hex:
          description: The hex code of the group color.
          type: string
        hex:
          description: The hex code of the color.
          type: string
        label:
          description: The name of the specific color (e.g. "Moccabraun").
          type: string
      required:
        - label
        - hex
        - group
        - group_hex
      type: object
    ProductDeclarations:
      description: Declarations information mapped on the product.
      properties:
        alcohol_information:
          description: |-
            For QIM, you can find the following fields here:

            - QIM_GDSN_M545
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/AlcoholInformation"
        cosmetic_ingredients:
          description: Cosmetic ingredients according to INCI (International Nomenclature
            of Cosmetic Ingredients)
          nullable: true
          type: string
        cosmetic_materials:
          description: Cosmetic Materials
          nullable: true
          type: string
        declaration_number:
          description: Unique declaration number.
          nullable: true
          type: string
        distributor:
          description: Distributor details.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Distributor"
        feed_additives_statement:
          description: "Pet feed additives statement (german: Futtermittel Zusatzstoffe)"
          nullable: true
          type: string
        feed_analytical_constituents_statement:
          description: "Pet feed analytical constituents statement (german: Futtermittel
            Analytische Bestandteile)"
          nullable: true
          type: string
        feed_composition:
          description: "Pet feed composition (german: Futtermittel Zusammensetzung)"
          nullable: true
          type: string
        feed_composition_benefits:
          description: "Pet feed composition benefits (german: Futtermittel
            Zusammensetzung Auslobung Mehrwert)"
          nullable: true
          type: string
        feed_life_stage:
          description: "Pet feed life stage (german: Futtermittel Tieralterstufe)"
          nullable: true
          type: string
        feed_regulatory_permit_identification:
          description: "Pet feed regulatory permit identification (german: Futtermittel
            Zulassungsnummer)"
          nullable: true
          type: string
        feed_targeted_consumption_by:
          description: "List of pets targeted by the consumption of the product (german:
            Futtermittel Tierart) e.g. grown dogs"
          items:
            type: string
          nullable: true
          type: array
        feed_type:
          description: "Pet feed type (german: Futtermittelart)"
          nullable: true
          type: string
        feeding_instructions:
          description: "Pet feeding instructions (german: Futtermittel
            Fütterungsempfehlung)"
          nullable: true
          type: string
        feeding_instructions_hint:
          description: "Additional information for pet feeding instructions (german:
            Hinweis Futtermittel Fütterungsempfehlung)"
          nullable: true
          type: string
        general_information:
          description: |-
            General information, warnings, labels and instructions.

            For QIM, you can find the following fields here:

            - QIM_weitereZusatzangabenDeklaration
            - QIM_GDSN_M094
            - QIM_GDSN_M362
            - QIM_KuehlhinweisDeklaration
            - QIM_ProduktionshinweisDeklaration
            - QIM_DataNatuRerechlicheHinweise
            - QIM_GDSN_M127
            - QIM_GDSN_M145
            - QIM_WarnhinweisDeklaration
            - QIM_GDSN_M109
            - QIM_GDSN_M146
            - QIM_Deklaration_Heilmittelkategorie

            From PIM, these are things provided in the PIM `zusatzAngabe` field.
          items:
            $ref: "#/components/schemas/GeneralInformation"
          nullable: true
          type: array
        golden_standard:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/GoldenStandard"
        gtins:
          description: The GTIN that these declarations are about.
          items:
            type: string
          nullable: true
          type: array
        ingredients_information:
          description: Ingredient information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/IngredientsInformation"
        nutrition_facts:
          description: This section groups nutrient information. It contains information
            about the serving size and the portion and standard nutrient
            information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/NutritionFacts"
        origins:
          description: >-
            Product source information.


            For declarations provided on the product, the origins are at the top
            level of the product.

            The reason is that also products that don't have declarations still
            can have origin information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Origins"
        period_after_opening:
          description: Identifies the useful lifetime of a product after its package has
            been opened for the first time.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/PeriodAfterOpening"
        preparation:
          description: Information about preparation.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Preparation"
        product_details:
          description: Detailed information about the product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductDetails"
        product_name:
          description: |-
            Product name as per the declarations information.

            This is not necessarily the same as the name on the related product.
          nullable: true
          type: string
        supplier:
          description: >-
            Information about who is supplying this product to Migros.


            There can be more than one stand-alone declaration for the same
            product id if Migros gets it from multiple suppliers.


            The declarations exposed on the product are always the one of the
            main supplier, so this field is about the same supplier as
            `main_supplier` on the product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Supplier"
        tags:
          description: Tags for flagging declarations.
          items:
            type: string
          nullable: true
          type: array
      type: object
    Description:
      description: A product description and its properties.
      properties:
        source:
          description: Product description source ("PEX", "PIM").
          type: string
        text:
          description: Product description text.
          type: string
      required:
        - text
      type: object
    Document:
      description: Represents a document.
      properties:
        label:
          nullable: true
          type: string
        purpose:
          description: List of purpose items
          items:
            $ref: "#/components/schemas/DocumentPurpose"
          nullable: true
          type: array
        type:
          type: string
        url:
          description: MIME type of the document.
          type: string
      type: object
    EnergyEfficiency:
      description: Represents information about energy efficiency in the API.
      properties:
        arrow:
          description: Small arrow image which represents the efficiency class.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        arrow_alternative:
          description: Small alternative arrow image which represents the efficiency class.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        category_code:
          description: The category code of the energy efficiency category
          nullable: true
          type: string
        class:
          $ref: "#/components/schemas/EnergyEfficiencyClass"
        image:
          $ref: "#/components/schemas/Image"
      required:
        - class
      type: object
    Pictogram:
      description: Represents a Pictogram (or Eyecatcher) on a product.
      properties:
        description:
          nullable: true
          type: string
        image:
          $ref: "#/components/schemas/Image"
        label_code:
          description: Label code of the pictogram or eyecatcher.
          nullable: true
          type: string
        pop_blacklist:
          description: Specifies if this pictogram should not be output on the POP template.
          type: boolean
        pop_order:
          description: >-
            Order in which this pictogram should show up on POP labels, only
            present if popWhitelist is true.


            The sort order is ascending, low number means the feature should
            come early.
          nullable: true
          type: integer
        pop_pictogram:
          description: Specifies if the image for this pictogram should be output on the
            POP template.
          type: boolean
        pop_whitelist:
          description: If this pictogram should be output on the POP template
          nullable: true
          type: boolean
        value_code:
          description: Value code of the pictogram or eyecatcher.
          type: string
      required:
        - value_code
      type: object
    ProductFeature:
      allOf:
        - $ref: "#/components/schemas/Feature"
    ProductGpc:
      description: |-
        Global Product Classification of this product.

        https://www.gs1.org/standards/gpc/how-gpc-works
        https://www.gs1.ch/home/themen/gs1-standards/share/global-product-classification-(gpc)

        This is the model that is mapped onto the product. There is also Migros\Model\Gcp\Gpc for the
        stand-alone GPC information.
      properties:
        id:
          description: The GPC brick ID, see https://www.gs1.org/services/gpc-browser
          type: string
        name:
          type: string
      required:
        - id
        - name
      type: object
    ItemUsage:
      properties:
        id:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
      type: object
    Label:
      description: Represents the Label information in the Product.
      properties:
        abstract:
          description: A short, plain text description, e.g. suitable for the page meta
            element.
          nullable: true
          type: string
        description:
          description: The long description of the label (can contain HTML).
          nullable: true
          type: string
        headline:
          description: The caption to the description.
          nullable: true
          type: string
        id:
          description: ID of the label.
          type: string
        image:
          description: Image of the label.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        keywords:
          description: Keywords, e.g. suitable for the page meta element.
          items:
            type: string
          nullable: true
          type: array
        links:
          additionalProperties:
            $ref: "#/components/schemas/Link"
          description: Collection of links indexed by string identifier.
          type: object
        name:
          description: Name of the label.
          type: string
        position_for_product_title:
          description: Position of label short name for the product title
          nullable: true
          type: string
        short_name_for_product_title:
          description: Short name of label for the product title
          nullable: true
          type: string
        slug:
          description: Unique user-friendly ID.
          type: string
        tags:
          description: Tags for flagging certain labels.
          items:
            type: string
          nullable: true
          type: array
        title:
          description: The title, e.g. suitable for the page title element.
          nullable: true
          type: string
      required:
        - id
        - name
        - slug
      type: object
    Link:
      properties:
        app_url:
          description: URL to a third-party mobile app (only provided on the migros_online
            link).
          nullable: true
          type: string
        canonical:
          description: Canonical link to the product on the third-party website.
          nullable: true
          type: string
        image:
          description: Associated logo.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        mo_product_id:
          deprecated: true
          description: The migros online product id (only provided on the migros_online
            link).
          nullable: true
          type: string
        mobile_url:
          description: URL to a third-party mobile page of the product (optional).
          nullable: true
          type: string
        name:
          deprecated: true
          description: Human readable name of the third-party website (for example
            SportXX, micasa, Migipedia).
          nullable: true
          type: string
        purchasable:
          deprecated: true
          description: Whether this links leads to an onlineshop page where the product
            can be purchased.
          nullable: true
          type: boolean
        tablet_url:
          description: URL to a third-party tablet page of the product (optional).
          nullable: true
          type: string
        type:
          deprecated: true
          description: The link type, one of 'shop' and 'info'.
          nullable: true
          type: string
        url:
          description: URL to a third-party desktop page of the product.
          type: string
      type: object
    LocalCertification:
      properties:
        code:
          description: Translated value of the local certification.
          nullable: true
          type: string
        value:
          type: string
      required:
        - value
      type: object
    LogisticalInformation:
      properties:
        frozen:
          description: Whether this is a frozen product.
          nullable: true
          type: boolean
        frozen_pictogram:
          description: The pictogram image to overlay on frozen products.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        logistics_class:
          items:
            $ref: "#/components/schemas/LogisticsClass"
          nullable: true
          type: array
      type: object
    MCheck:
      description: >-
        MCheck 2.0 information on the product.


        MCheck has been introduced by Migros to show the sustainability of
        products regarding re-traceability, biodiversity

        etc. to the consumers.
      properties:
        air_cargo_relevant:
          nullable: true
          type: boolean
        animal_welfare:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MCheckAnimalWelfare"
        animal_welfare_relevant:
          nullable: true
          type: boolean
        carbon_footprint:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MCheckCarbonFootprint"
        fish:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MCheckFish"
        m_check_relevant:
          nullable: true
          type: boolean
        packaging:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MCheckPackaging"
      type: object
    ProductMData:
      description: This is the MData from PEX and/or PIM.
      properties:
        consumption_days:
          description: |-
            PEX: mDataConsumptionTime
            PIM: MDataFristKonsumation
          nullable: true
          type: integer
        distribution_center_days:
          description: |-
            PEX: mDataVZTime
            PIM: MDataFristVerteilzentrale
          nullable: true
          type: integer
        production_days:
          description: |-
            PEX: mDataProductionTime
            PIM: MDataFristProduktion
          nullable: true
          type: integer
        region_days:
          description: |-
            PEX: mDataGMTime
            PIM: MDataFristGenossenschaft
          nullable: true
          type: integer
        total_durability_days:
          description: >-
            The sum of productionDays, distributionCenterDays, regionDays,
            consumptionDays


            PEX: mDataDurability

            PIM: MDataFristGesamtHaltbarkeit
          nullable: true
          type: integer
      type: object
    ProductSupplier:
      properties:
        id:
          type: string
        name:
          type: string
        supplier_product_id:
          description: The product id that this supplier uses for the product.
          nullable: true
          type: string
      required:
        - id
        - name
      type: object
    MigrolinoData:
      description: Migrolino-specific product data
      properties:
        age_restriction:
          nullable: true
          type: integer
        alternative_gtins:
          items:
            type: string
          nullable: true
          type: array
        base_unit_type:
          nullable: true
          type: string
        boss_number:
          nullable: true
          type: string
        brand_code:
          nullable: true
          type: string
        brand_name:
          nullable: true
          type: string
        brand_type:
          nullable: true
          type: string
        days_until_expiration:
          nullable: true
          type: integer
        gtin:
          nullable: true
          type: string
        label_code:
          nullable: true
          type: string
        label_control_code:
          nullable: true
          type: integer
        label_control_code_content:
          nullable: true
          type: string
        label_name:
          nullable: true
          type: string
        max_order_quantity:
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        name_part1:
          nullable: true
          type: string
        name_part2:
          nullable: true
          type: string
        name_part3:
          nullable: true
          type: string
        origin_country_code1:
          nullable: true
          type: string
        origin_country_code2:
          nullable: true
          type: string
        package:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MigrolinoPackage"
        prices:
          description: Migrolino specific product prices
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MigrolinoPrices"
        product_group_name:
          nullable: true
          type: string
        product_group_number:
          nullable: true
          type: string
        sap_creation_date:
          description: Time when migrolino product data was created in SAP.
          format: date-time
          nullable: true
          type: string
        short_name:
          nullable: true
          type: string
        status_code:
          nullable: true
          type: string
        status_name:
          nullable: true
          type: string
        tax_class:
          nullable: true
          type: integer
        tax_rate:
          format: float
          nullable: true
          type: number
        transport_unit_type:
          nullable: true
          type: string
      type: object
    ProductNames:
      description: This is the data about Product names.
      properties:
        long_name:
          description: Is composed of Brand + Sub-Brand + Label Prio 1 + Local
            Certifications + Product Name + Product Specific Properties +
            Nutritional Characteristics + Label Prio 2
          nullable: true
          type: string
        name_rpa:
          description: Product name RPA.
          nullable: true
          type: string
        name_sap:
          description: Product name SAP.
          nullable: true
          type: string
        short_name:
          description: Is composed of Brand + Label Prio 1 + Product Name + Product
            Specific Properties
          nullable: true
          type: string
      type: object
    DateRange:
      description: Represents an interval.
      properties:
        from:
          description: End date of the range.
          format: date
          type: string
        to:
          format: date
          type: string
      required:
        - from
        - to
      type: object
    NutritionalCharacteristic:
      properties:
        code:
          description: Translated value of the nutritional characteristic.
          nullable: true
          type: string
        value:
          type: string
      required:
        - value
      type: object
    OneCatalog:
      properties:
        mo_product_id:
          nullable: true
          type: string
        one_catalog_id:
          description: |-
            The Migros-Online Product-ID.
            It's not set for physical store only products
          type: string
      type: object
    OnlineRelevant:
      properties:
        code:
          type: string
        name:
          description: Code of the online relevancy channel.
          type: string
      required:
        - code
        - name
      type: object
    Origins:
      description: Collects information about the various source declarations of a product.
      properties:
        catch_areas:
          description: Areas where fish or sea food was caught.
          items:
            type: string
          nullable: true
          type: array
        country_of_origin:
          deprecated: true
          description: Country where the product was originally produced (e.g.
            'Deutschland, Bundesrepublik').
          nullable: true
          type: string
        further_location_details:
          nullable: true
          type: string
        material_country:
          description: >-
            Country where the material of the product is coming from.


            This mostly makes sense for products consisting of one material,
            e.g. wood.
          nullable: true
          type: string
        material_country_code:
          description: >-
            Code of country where the material of the product is coming from.


            This mostly makes sense for products consisting of one material,
            e.g. wood.
          nullable: true
          type: string
        place_of_birth:
          description: Place where this animal was born.
          nullable: true
          type: string
        place_of_provenance:
          description: >-
            Place where the product comes from, can be other things than
            countries like a city or region.


            Used for meat for example.
          nullable: true
          type: string
        place_of_rearing:
          description: Place where this animal was raised.
          nullable: true
          type: string
        place_of_slaughter:
          description: Place where this animal was slaughtered.
          nullable: true
          type: string
        producing_country:
          description: >-
            Name of country where the product is produced.


            For products produced in several countries, this is the country
            where the largest part of the production cost incurred.


            Do not confuse this with the supplierCountry which is the country
            where Migros is importing the product from.
          nullable: true
          type: string
        production_facility_id:
          description: Identifications code of production facility.
          nullable: true
          type: string
        supplier_country:
          description: >-
            Name of country of the supplier, that is which country Migros is
            importing a product from.


            Do not confuse this with the "Herkunftsort" for meat, which can be a
            region or even specific city.
          nullable: true
          type: string
        type_of_rennet:
          items:
            type: string
          nullable: true
          type: array
      type: object
    ProductPackage:
      description: Represents the package information.
      properties:
        average_max:
          format: float
          nullable: true
          type: number
        average_max_unit_code:
          description: The unit code of the average max. (mostly kg).
          nullable: true
          type: string
        average_min:
          format: float
          nullable: true
          type: number
        average_min_unit_code:
          description: The unit code of the average min. (mostly kg).
          nullable: true
          type: string
        brutto_volume:
          description: Volume of the product including the package.
          format: float
          nullable: true
          type: number
        brutto_volume_unit_code:
          description: >-
            The unit code of the brutto volume.


            Potential values: cdm, dm3 (cubic decimeter), ccm (cubic
            centimeter),

            m3 (cubicmeter), hl (hectoliter), gll (US gallon), oza (US fluid
            ounce),

            in3 (cubic inches)
          nullable: true
          type: string
        brutto_weight:
          description: Weight of the product including the package.
          format: float
          nullable: true
          type: number
        brutto_weight_unit_code:
          description: |-
            The unit code of the brutto weight.

            Potential values: kg, g
          nullable: true
          type: string
        content:
          description: |-
            Size of the content.

            For example:
            Cola bottle - 1000 (ml)
            M-Budget Glace Box - 2500 (ml)
          format: float
          nullable: true
          type: number
        content_unit:
          description: The unit value of the content.
          nullable: true
          type: string
        content_unit_code:
          description: The unit code of the content. (l, kg).
          nullable: true
          type: string
        height:
          format: float
          nullable: true
          type: number
        height_unit_code:
          nullable: true
          type: string
        length:
          format: float
          nullable: true
          type: number
        length_unit_code:
          nullable: true
          type: string
        net_weight:
          description: |-
            Net weight. Weight of the content, without package.

            Example values:
            Cola bottle - 1.012 (kg)
            M-Budget Glace Box - 1.15 (kg)
          format: float
          nullable: true
          type: number
        net_weight_unit:
          description: The unit value of the net weight.
          nullable: true
          type: string
        net_weight_unit_code:
          description: The unit code of the net weight. (mostly kg).
          nullable: true
          type: string
        portions_per_package:
          description: The number of portion in a package unit.
          nullable: true
          type: string
        precision:
          description: How precise the portions information is. Either "exact" or
            "approximate".
          nullable: true
          type: string
        price_comparison_content:
          description: Size of the content for price comparison.
          format: float
          nullable: true
          type: number
        size:
          description: The size of the package as a string.
          nullable: true
          type: string
        type:
          description: The type of the package.
          nullable: true
          type: string
        unit_dimension:
          deprecated: true
          nullable: true
          type: string
        width:
          format: float
          nullable: true
          type: number
        width_unit_code:
          nullable: true
          type: string
      type: object
    ProductPackageInformation:
      properties:
        brutto_volume:
          description: Volume of the product including the package.
          format: float
          nullable: true
          type: number
        brutto_volume_unit_code:
          description: >-
            The unit code of the brutto volume.


            Potential values: cdm, dm3 (cubic decimeter), ccm (cubic
            centimeter),

            m3 (cubicmeter), hl (hectoliter), gll (US gallon), oza (US fluid
            ounce),

            in3 (cubic inches)
          nullable: true
          type: string
        brutto_weight:
          description: Weight of the product including the package.
          format: float
          nullable: true
          type: number
        brutto_weight_unit_code:
          description: |-
            The unit code of the brutto weight.

            Potential values are kg, g, etc.
          nullable: true
          type: string
        dimension_unit_code:
          deprecated: true
          description: |-
            Unit code used for height, length and width.

            Potential values are m, cm, etc.
          nullable: true
          type: string
        gtins:
          description: >-
            Gtins specific to this packaging.


            Note that the customer unit (CU) gtins (and only those) are also
            copied

            to the gtins field directly on the product.
          items:
            type: string
          nullable: true
          type: array
        height:
          format: float
          nullable: true
          type: number
        height_unit_code:
          nullable: true
          type: string
        length:
          format: float
          nullable: true
          type: number
        length_unit_code:
          nullable: true
          type: string
        number_of_base_units:
          description: Number of products the package contains (integer until v8, float
            from v9 on).
          nullable: true
          type: integer
        width:
          format: float
          nullable: true
          type: number
        width_unit_code:
          nullable: true
          type: string
      type: object
    Parts:
      properties:
        consists_of:
          description: List of products which are part of this product.
          items:
            $ref: "#/components/schemas/Part"
          nullable: true
          type: array
        included_in:
          description: List of products where this product is included in.
          items:
            $ref: "#/components/schemas/Part"
          nullable: true
          type: array
      type: object
    Pop:
      description: Represents POP Label fields on a product.
      properties:
        approval:
          deprecated: true
          description: If the POP data is validated and allowed to be printed. False by
            default.
          type: boolean
        images:
          deprecated: true
          description: A list of images that can be used for POP labels
          items:
            $ref: "#/components/schemas/Image"
          nullable: true
          type: array
        templates:
          deprecated: true
          description: A list of templates that can be used for POP labels
          items:
            $ref: "#/components/schemas/PopTemplate"
          nullable: true
          type: array
      required:
        - approval
      type: object
    ProductPreSupplier:
      properties:
        id:
          type: string
        name:
          nullable: true
          type: string
      required:
        - id
      type: object
    ProductPrice:
      allOf:
        - $ref: "#/components/schemas/BasePrice"
        - properties:
            base:
              description: The base price, quantity and unit.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceQuantityUnit"
            discount:
              description: The discount for this price.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/BaseDiscount"
            discount_hint:
              nullable: true
              type: string
            estimated_piece_original_price:
              description: The estimated original price of a piece, without discount.
              format: float
              nullable: true
              type: number
          type: object
      description: Singular combined price information including discount if present.
      type: object
    ProductPriceComparison:
      properties:
        comparison_pricing:
          nullable: true
          type: integer
        content_unit_pricing:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ContentUnitPricing"
        net_pricing:
          nullable: true
          type: integer
      type: object
    QualityResponsible:
      description: |-
        Quality responsible of a product
        Examples: MGB, Denner, GM Aare
      properties:
        code:
          type: string
        value:
          nullable: true
          type: string
      type: object
    ItemRatings:
      description: Represents the ratings of an item, e.g. product.
      properties:
        average_all:
          format: float
          type: number
        count_all:
          description: Average rating.
          type: integer
      required:
        - count_all
        - average_all
      type: object
    RegionalAvailabilityMap:
      description: Map of the regional availability of a product in the regions.
      properties:
        gmaa:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        gmbs:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        gmge:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        gmlu:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        gmnf:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        gmos:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        gmti:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        gmvd:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        gmvs:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        gmzh:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
        national:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailability"
      type: object
    RegionalInformation:
      allOf:
        - $ref: "#/components/schemas/BaseRegionalInformation"
        - properties:
            gmaa:
              description: The price and discounts for region Aare.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
            gmbs:
              description: The price and discounts for region Basel.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
            gmge:
              description: The price and discounts for region Geneva.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
            gmlu:
              description: The price and discounts for region Lucerne.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
            gmnf:
              description: The price and discounts for region Neuchâtel-Fribourg.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
            gmos:
              description: The price and discounts for region East.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
            gmti:
              description: The price and discounts for region Ticino.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
            gmvd:
              description: The price and discounts for region Vaud.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
            gmvs:
              description: The price and discounts for region Wallis.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
            gmzh:
              description: The price and discounts for region Zurich.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceAndDiscounts"
          type: object
      description: Represents the regional information of a product in the API.
      type: object
    RelatedProducts:
      description: Represents a collection of product recommendations from all sources.
      properties:
        original_products:
          items:
            $ref: "#/components/schemas/SuccessorProduct"
          nullable: true
          type: array
        rebranded_products:
          items:
            $ref: "#/components/schemas/SuccessorProduct"
          nullable: true
          type: array
        reference_program:
          deprecated: true
          description: The (Micasa) Program reference.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RelatedProductDetails"
        reference_recommendations:
          deprecated: true
          description: These come from PIM/PEx.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RelatedProductDetails"
        spare_parts:
          deprecated: true
          description: The MService spare-parts reference.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RelatedProductDetails"
      type: object
    Retailer:
      description: Retailer information.
      properties:
        id:
          description: ID of the retailer.
          enum:
            - doitgarden
            - micasa
            - melectronics
            - sportxx
            - supermarkt
            - migros_online
            - alnatura
            - bikeworld
            - interio
            - migros_ch
            - mservice
            - mfo
          type: string
        name:
          description: Human readable name of the retailer.
          type: string
      required:
        - id
        - name
      type: object
    RetailerFlagsMap:
      description: Map of all retailers for their retailer flags.
      properties:
        bikeworld:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RetailerFlags"
        doitgarden:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RetailerFlags"
        interio:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RetailerFlags"
        melectronics:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RetailerFlags"
        micasa:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RetailerFlags"
        migros_ch:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RetailerFlags"
        sportxx:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RetailerFlags"
      type: object
    Services:
      description: Represents services.
      properties:
        logistics:
          description: Services for logistics (post delivery etc.).
          items:
            $ref: "#/components/schemas/Service"
          type: array
        others:
          description: Other services (warranty etc.).
          items:
            $ref: "#/components/schemas/Service"
          nullable: true
          type: array
      type: object
    Slugs:
      description: Represents a list of multilingual slugs.
      properties:
        de:
          description: Slug in English.
          type: string
        en:
          type: string
        fr:
          type: string
        it:
          type: string
      required:
        - de
        - fr
        - it
        - en
      type: object
    ProductStatus:
      description: A product status.
      properties:
        active:
          description: Information whether or not the product is active (not exposed).
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductActive"
        description:
          description: Status description text.
          nullable: true
          type: string
        distribution_center:
          description: The pex status of the product.
          items:
            $ref: "#/components/schemas/ProductDistributionCenter"
          nullable: true
          type: array
        id:
          description: >-
            Status identifier (no relation to active field).


            Can be one of these values: available, not-available,
            currently-not-available, liquidation, deleted.
          enum:
            - available
            - not-available
            - currently-not-available
            - liquidation
            - deleted
          type: string
        offline_date:
          description: Date which marks by when a product should not be displayed online
            anymore.
          format: date-time
          nullable: true
          type: string
        online_approval:
          description: Is field available online
          nullable: true
          type: boolean
        online_date:
          description: Date which marks by when a product should be displayed online.
          format: date-time
          nullable: true
          type: string
        pim_status:
          description: The pim status of the product.
          type: string
        price_band_category:
          description: Price band category type.
          nullable: true
          type: string
        price_level:
          description: Information about the price_level (tiefpreis/normalpreis)
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/PriceLevel"
        season_year:
          description: Additional information for seasonal products to identify for which
            year this product is.
          nullable: true
          type: integer
        seasonal:
          description: Seasonal flag.
          nullable: true
          type: boolean
        seasonal_type_code:
          description: |-
            Product's seasonality type code.
            Possible values:
            - '0010': Default
            - 'P': Permanent
            - 'F': Spring
            - 'FW': Spring periodic
            - 'H': Fall
            - 'HW': Fall periodic
            - 'S': Summer
            - 'SW': Summer periodic
            - 'W': Winter
            - 'WW': Winter periodic
          enum:
            - "0010"
            - P
            - F
            - FW
            - H
            - HW
            - S
            - SW
            - W
            - WW
          type: string
      required:
        - id
        - pim_status
      type: object
    ProductVariant:
      description: >-
        Represents a variant mapped onto the base product.


        Variants are also indexed standalone and for that the regular Product
        model is used.

        A ProductVariant is created from that Product when mapping the variant
        onto the base product.
      properties:
        additional_categories:
          description: Collection of additional category breadcrumbs, where the first
            element is the leaf category and the last one the root.
          items:
            items:
              $ref: "#/components/schemas/BaseCategory"
            type: array
          type: array
        additional_images:
          description: Additional product images.
          items:
            $ref: "#/components/schemas/Image"
          nullable: true
          type: array
        assortment_levels:
          description: Collection of assortment level information.
          items:
            $ref: "#/components/schemas/ProductAssortmentLevel"
          nullable: true
          type: array
        attributes:
          additionalProperties:
            $ref: "#/components/schemas/Attribute"
          description: >-
            Hashmap of variant attributes.


            The keys are the attribute labels. There are some known keys: color
            and size.
          type: object
        base_product_id:
          description: The product id of the base product if one exists.
          nullable: true
          type: string
        base_unit:
          description: The base unit of the product.
          nullable: true
          type: string
        boss_number:
          description: >-
            Product "boss number".


            It is represented as string because the number can have leading
            zeros.
          type: string
        brand:
          description: The brand ("Marke") the product belongs to.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Brand"
        bundle:
          description: >-
            Bundle (Gebindetyp) information of a product: Contains information
            about the bundle (Gebinde) in which a product

            is handled/transported in logistic centers.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Bundle"
        care_labels:
          description: List of care labels for this product.
          items:
            $ref: "#/components/schemas/CareLabel"
          nullable: true
          type: array
        categories:
          description: Hierarchy/breadcrumb of main category. The first element is the
            leaf category and the last one the root.
          items:
            $ref: "#/components/schemas/BaseCategory"
          nullable: true
          type: array
        chemicals_declaration:
          description: >-
            Chemicals declaration for this product.


            This is only exported on the product detail view, but not in list
            views.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductChemicalsDeclaration"
        co2_compensation:
          description: CO2 compensation information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Co2Compensation"
        colors:
          deprecated: true
          description: Possible colors of the product.
          items:
            $ref: "#/components/schemas/Color"
          nullable: true
          type: array
        declarations:
          description: Declaration information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductDeclarations"
        description:
          description: Main product description.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Description"
        documents:
          description: Collection of document instances.
          items:
            $ref: "#/components/schemas/Document"
          nullable: true
          type: array
        energy_efficiency:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/EnergyEfficiency"
        esl_additional_information:
          description: >-
            eRPA Text field

            EsField index=false so that the field is not indexed in
            ElasticSearch

            we only need it in the raw data
          nullable: true
          type: string
        eyecatchers:
          deprecated: true
          description: A special collection of pictograms that are to be shown on the
            overview too.
          items:
            $ref: "#/components/schemas/Pictogram"
          nullable: true
          type: array
        features:
          description: Collection of product feature instances.
          items:
            $ref: "#/components/schemas/ProductFeature"
          nullable: true
          type: array
        galaxus_relevant:
          description: |-
            Whether the product in relevant for Galaxus.

            Used in the admin app and for filtering in ElasticSearch.
          nullable: true
          type: boolean
        gpc:
          description: Global Product Classification.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductGpc"
        gtins:
          description: Global Trade Item Number (GTIN).
          items:
            type: string
          type: array
        id:
          type: string
        image:
          description: Main product image.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        image_transparent:
          description: Main product image, transparent.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        included_recycling_fee:
          deprecated: true
          description: This is the cost of the so called 'vorgezogene Recyclinggebühr', in
            PEx called 'vrgPrice'
          format: float
          nullable: true
          type: number
        internal_features:
          description: Collection of internal feature instances for grouping, sorting.
          items:
            $ref: "#/components/schemas/ProductFeature"
          nullable: true
          type: array
        is_variant:
          description: Whether it is a product variant.
          type: boolean
        item_usage:
          description: Multilingual description of how the product is used, e.g. permanent
            article
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ItemUsage"
        labels:
          description: Collection of labels.
          items:
            $ref: "#/components/schemas/Label"
          nullable: true
          type: array
        language:
          enum:
            - de
            - fr
            - it
            - en
          type: string
        links:
          additionalProperties:
            $ref: "#/components/schemas/Link"
          description: |-
            Hashmap of links indexed by target system id.

            This property holds the data to store in Elasticsearch.
          type: object
        local_certifications:
          description: Local Certifications of a product, needed for the new product title
            structure.
          items:
            $ref: "#/components/schemas/LocalCertification"
          nullable: true
          type: array
        logistical_information:
          description: Logistical information about the product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/LogisticalInformation"
        m_check2:
          description: "MCheck data: product sustainability information."
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MCheck"
        m_data:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductMData"
        main_supplier:
          description: Main supplier (Regellieferant) for this product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductSupplier"
        main_variant_id:
          description: The id of the main variant of this product, if one exists.
          nullable: true
          type: string
        mpid:
          description: The Migros-Product-ID (from Riversand/Pim4Migros project), e.g.
            "MP-169r-xp74-3dba"
          nullable: true
          type: string
        name:
          type: string
        names:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductNames"
        new_product:
          description: Date range when the product is considered new.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/DateRange"
        nutritional_characteristics:
          description: Nutritional Characteristics of a product, needed for the new
            product title structure.
          items:
            $ref: "#/components/schemas/NutritionalCharacteristic"
          nullable: true
          type: array
        one_catalog:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/OneCatalog"
        online_shop_relevant:
          description: >-
            Whether the product in relevant for Rialto.


            This flag does NOT decide whether the product should currently be
            shown in the shops.

            It merely tells that PIM sees the necessary logistics information
            for this product exist.

            For MAPI, this flag means that rialto is notified about changes on
            this product.


            To decide if a product should be shown in the shop, use the
            retailer_flags visibility field.
          nullable: true
          type: boolean
        origins:
          description: If there are declarations, this is the information from the
            declarations, otherwise the information coming from PEx.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Origins"
        package:
          description: >-
            Package weight and contents.


            Some of this data is duplicated in "package_information", which
            contains information about more package types.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductPackage"
        package_information:
          additionalProperties:
            $ref: "#/components/schemas/ProductPackageInformation"
          description: >-
            Package information indexed by the type of package.


            Some of this data is duplicated in "package", which can contain
            additional information for display purposes.


            Example types of package information:

            - cu: customer unit

            - tu: transport unit

            - lu: logistic unit
          type: object
        parts:
          deprecated: true
          description: List of parts related to this product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Parts"
        pictograms:
          deprecated: true
          description: Collection of pictograms for this product.
          items:
            $ref: "#/components/schemas/Pictogram"
          nullable: true
          type: array
        pop:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Pop"
        pre_supplier:
          description: >-
            Upstream supplier referenced by the main supplier in P4M.

            Contains the supplier ID and, when available from the supplier
            relation lookup, the supplier name.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductPreSupplier"
        price:
          deprecated: true
          description: >-
            Current valid price or discounted price.


            Defaults to national price. If region is given and the price
            differs, the regional price is used.

            Falls back to national if there is no regional price.


            This property is mapped on-the-fly given the region specified in the
            API request by the ProductFilter.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductPrice"
        price_comparison:
          description: Alternative units for pricing comparison
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ProductPriceComparison"
        procurement_ordering_text:
          deprecated: true
          description: Ordering text of the product that is useful in the procurement
            process.
          nullable: true
          type: string
        product_specific_properties:
          description: Specific Properties of a product, needed for the new product title
            structure.
          nullable: true
          type: string
        product_type:
          description: Product type name.
          nullable: true
          type: string
        product_type_code:
          description: Product type code.
          nullable: true
          type: string
        quality_responsible:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/QualityResponsible"
        quantity_on_stock:
          deprecated: true
          description: The amount on stock.
          nullable: true
          type: integer
        ratings:
          description: The ratings of the product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ItemRatings"
        receipt_text:
          description: Product receipt text.
          nullable: true
          type: string
        regional_availability:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalAvailabilityMap"
        regional_information:
          deprecated: true
          description: >-
            The regional information with price and discount information.


            Either national is set or the individual regional ones.

            No longer visible by default from version 7 on. If required, use
            region=all to get it.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RegionalInformation"
        reindex_date:
          description: Time when product should be reindexed again because of outdated data.
          format: date-time
          nullable: true
          type: string
        related_products:
          description: List of related products, such as purchase recommendations or
            product references.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RelatedProducts"
        retailer:
          $ref: "#/components/schemas/Retailer"
        retailer_flags:
          description: Retailer flags (Product status fields).
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/RetailerFlagsMap"
        sap_created_at:
          description: Time when product was created in SAP.
          format: date-time
          nullable: true
          type: string
        services:
          deprecated: true
          description: Services which are available to this product.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Services"
        short_description:
          deprecated: true
          nullable: true
          type: string
        slug:
          description: Unique user-friendly ID.
          type: string
        slugs:
          $ref: "#/components/schemas/Slugs"
        status:
          $ref: "#/components/schemas/ProductStatus"
        tags:
          description: >-
            Tags for flagging certain products.


            The tags property is stored to ES as is, but we use a virtual
            property for M-API output to filter out internal tags.
          items:
            type: string
          nullable: true
          type: array
        type:
          description: |-
            Product type from PIM or PEx.
            This value is also used properly tag Sammler products.

            00 = Einzelartikel (normal product)
            01 = Sammelartikel (Sammler)
            02 = Variante (variant)
            10 = VK-Set
            11 = Lot
            12 = Display
            20 = Warengruppen-Wertartikel
            21 = Warengruppen-Hierarchiewertartikel
            22 = Gruppen-Wertartikel
            30 = Warengruppen-Vorlageartikel
          nullable: true
          type: string
        updated_at:
          description: >-
            Time when product was last indexed (or partially updated) with
            modifications in Elasticsearch.


            When a product did not change after mapping, it is not re-indexed
            and thus the timestamp is not updated as well.
          format: date-time
          type: string
        variety:
          nullable: true
          type: string
        vat:
          description: Product VAT percentage.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Vat"
        videos:
          description: Links to videos.
          items:
            type: string
          nullable: true
          type: array
        warranty_extension_price:
          deprecated: true
          format: float
          nullable: true
          type: number
        warranty_months:
          description: The number of months this product has warranty.
          nullable: true
          type: integer
      required:
        - id
        - language
        - name
        - retailer
        - updated_at
      type: object
    Vat:
      description: Represents VAT information on a product.
      properties:
        id:
          description: The percentage connected to the code.
          type: integer
        percentage:
          format: float
          type: number
      required:
        - id
        - percentage
      type: object
    AbstractCollection:
      description: A generic collection of elements.
    FacetTerm:
      properties:
        active:
          description: Whether that facet has been used for the current response or not.
          nullable: true
          type: boolean
        count:
          description: Amount of items with that facet.
          type: integer
        name:
          description: Translated name.
          type: string
        slug:
          nullable: true
          type: string
        term:
          description: Term identifier.
          type: string
      required:
        - term
        - count
      type: object
    PartialBrand:
      description: Represents the sub brand and parent brand information.
      properties:
        code:
          type: string
        name:
          nullable: true
          type: string
      type: object
    ChemicalsCleaningAgent:
      description: Information on a cleaning agent in the chemicals declaration..
      properties:
        concentration:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ChemicalsStatement"
        group:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ChemicalsStatement"
        name:
          nullable: true
          type: string
      type: object
    ChemicalsMaterial:
      description: Information on a material in the chemicals declaration.
      properties:
        cas_number:
          nullable: true
          type: string
        einecs_number:
          nullable: true
          type: string
        name:
          type: string
      required:
        - name
      type: object
    ChemicalsStatement:
      description: Standardized information statement about chemical ingredients.
      properties:
        code:
          description: Standard code for this statement.
          type: string
        label:
          description: Natural language for this statement.
          type: string
      required:
        - code
        - label
      type: object
    AlcoholInformation:
      description: Represents alcohol information.
      properties:
        label:
          type: string
        operator:
          nullable: true
          type: string
        value:
          type: string
      required:
        - label
        - value
      type: object
    Distributor:
      properties:
        address:
          description: Address of the distributor.
          nullable: true
          type: string
        name:
          description: Name of the distributor.
          nullable: true
          type: string
        package_disclaimer:
          description: Consumer package disclaimer.
          nullable: true
          type: string
      type: object
    GeneralInformation:
      description: Represents one set of general information.
      properties:
        label:
          type: string
        values:
          description: Some information will only ever have one string, while others can
            have multiple values.
          items:
            type: string
          type: array
      required:
        - label
        - values
      type: object
    GoldenStandard:
      description: Golden Standard.
      properties:
        category:
          nullable: true
          type: string
        compliant:
          nullable: true
          type: boolean
      type: object
    IngredientsInformation:
      properties:
        additives_information:
          description: Information about additives.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/AdditivesInformation"
        allergens_information:
          description: Information about allergens.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/AllergensInformation"
        ingredients_of_concern:
          description: Ingredients of concern.
          items:
            type: string
          nullable: true
          type: array
        ingredients_text:
          description: Ingredients declaration text.
          nullable: true
          type: string
        substances_information:
          description: Information about containing substances.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/SubstancesInformation"
      type: object
    NutritionFacts:
      properties:
        consumption_hint:
          description: Information about amount consumed by adults.
          nullable: true
          type: string
        nutri_score:
          description: Nutri Score information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/NutriScore"
        reference_sizes:
          description: Information about the nutrients per standard size and for one
            portion.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/NutritionReferenceSizes"
        serving_description:
          description: |-
            Serving description.

            Example: "pro 100 ml"
          nullable: true
          type: string
        serving_size_description:
          description: |-
            Serving size description.

            Example: "100 Milliliter"
          nullable: true
          type: string
      type: object
    PeriodAfterOpening:
      properties:
        numeric_value:
          type: integer
        unit:
          type: string
      required:
        - numeric_value
        - unit
        - value
      type: object
    Preparation:
      properties:
        information:
          description: Information about the preparation.
          nullable: true
          type: string
        usage_instructions:
          description: Instructions of the usage of the product.
          nullable: true
          type: string
      type: object
    ProductDetails:
      properties:
        catch_methods:
          description: Methods how fish or sea food was caught.
          items:
            type: string
          nullable: true
          type: array
        certification:
          description: Certification body.
          nullable: true
          type: string
        drained_weight:
          description: Drained weight.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ValueWithUnit"
        fat_percentage_in_dry_matter:
          description: Percentage of fat in dry matter.
          nullable: true
          type: string
        net_filled_quantity:
          description: Net filled quantity.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ValueWithUnit"
        net_weight:
          description: Net weight.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ValueWithUnit"
        package:
          description: Package information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Package"
        product_description:
          description: Product description.
          nullable: true
          type: string
        regulated_description:
          description: A regulated way to describe the product, used mainly for basic
            content descriptions.
          nullable: true
          type: string
        variable_measure:
          description: |-
            Information about variable measure trade item.

            If this is set, the product is a variable measure trade item.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/VariableMeasure"
        weight_with_glazing:
          description: Weight with glazing.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ValueWithUnit"
      type: object
    Supplier:
      properties:
        id:
          description: ID of the supplier.
          nullable: true
          type: string
        main:
          description: Whether or not this is the main supplier for the product.
          type: boolean
        name:
          description: Name of the supplier.
          nullable: true
          type: string
      required:
        - main
      type: object
    DocumentPurpose:
      description: Represents the purposes of a document.
      properties:
        code:
          nullable: true
          type: string
        description:
          type: string
      type: object
    EnergyEfficiencyClass:
      properties:
        hex_color:
          deprecated: true
          description: The hexadecimal color code of the energy efficiency class to create
            your own arrows. This property is deprecated and is removed after
            version 7.
          nullable: true
          type: string
        text:
          description: Name of this facet.
          type: string
      required:
        - text
      type: object
    Feature:
      properties:
        category_code:
          type: string
        facet_pictogram_flag:
          nullable: true
          type: boolean
        label:
          nullable: true
          type: string
        label_code:
          description: >-
            A language-independent code to represent the feature, useful for
            programs to find specific features.


            This field has undetermined lower or uppercase. When checking for a
            specific code, ignore lower/upper case differences.
          type: string
        pop_blacklist:
          deprecated: true
          description: This feature should not be output on the POP template
          type: boolean
        pop_order:
          deprecated: true
          description: >-
            Order in which this feature should show up on POP labels, only
            present if popWhitelist is true.


            The sort order is ascending, low number means the feature should
            come early.
          nullable: true
          type: integer
        pop_pictogram:
          deprecated: true
          description: If the image for this feature should be output on the POP template
          type: boolean
        pop_whitelist:
          deprecated: true
          description: This feature should be output on the POP template, if we only print
            whitelisted ones.
          nullable: true
          type: boolean
        top_fact:
          description: >-
            Top fact flag.


            Top facts are features that are used to highlight the attached
            object (example, different screen or RAM sizes).
          type: boolean
        unit:
          nullable: true
          type: string
        unit_code:
          nullable: true
          type: string
        unit_symbol:
          nullable: true
          type: string
        values:
          items:
            $ref: "#/components/schemas/FeatureValue"
          nullable: true
          type: array
      required:
        - label_code
      type: object
    LogisticsClass:
      properties:
        distribution_center_id:
          nullable: true
          type: string
        distribution_center_name:
          nullable: true
          type: string
        logistics_class_id:
          nullable: true
          type: string
        logistics_class_name:
          nullable: true
          type: string
      type: object
    MCheckAnimalWelfare:
      properties:
        image:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        label:
          description: Translated label to use for this rating.
          example: Tierwohl
          nullable: true
          type: string
        rating:
          description: A star rating between 1 to 5.
          example: 2
          maximum: 5
          minimum: 1
          type: integer
      type: object
    MCheckCarbonFootprint:
      properties:
        air_cargo:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MCheckCargoCarbonFootprint"
        ground_and_sea_cargo:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/MCheckCargoCarbonFootprint"
        image:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
      type: object
    MCheckFish:
      properties:
        image:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        rating:
          description: A star rating between 1 to 5.
          example: 2
          maximum: 5
          minimum: 1
          type: integer
      type: object
    MCheckPackaging:
      properties:
        rating:
          description: A star rating between 1 to 5.
          example: 2
          maximum: 5
          minimum: 1
          type: integer
      type: object
    MigrolinoPackage:
      description: Migrolino-specific package information
      properties:
        content:
          format: float
          nullable: true
          type: number
        content_unit_code:
          nullable: true
          type: string
        net_weight:
          format: float
          nullable: true
          type: number
        net_weight_unit_code:
          nullable: true
          type: string
        price_comparison_content:
          format: float
          nullable: true
          type: number
      type: object
    MigrolinoPrices:
      description: Migrolino-specific product prices
      properties:
        discounted_price:
          description: Discounted price is valid for all channels
          format: float
          nullable: true
          type: number
        discounted_price_per_kg:
          description: Discounted price is valid for all channels
          format: float
          nullable: true
          type: number
        gooods_migrolino_price:
          format: float
          nullable: true
          type: number
        gooods_migrolino_price_per_kg:
          format: float
          nullable: true
          type: number
        migrolino_price:
          format: float
          nullable: true
          type: number
        migrolino_price_per_kg:
          format: float
          nullable: true
          type: number
        mio_shell_price:
          format: float
          nullable: true
          type: number
        mio_shell_price_per_kg:
          format: float
          nullable: true
          type: number
        mio_socar_price:
          format: float
          nullable: true
          type: number
        mio_socar_price_per_kg:
          format: float
          nullable: true
          type: number
        piccadilly_price:
          format: float
          nullable: true
          type: number
        piccadilly_price_per_kg:
          format: float
          nullable: true
          type: number
        shell_price:
          format: float
          nullable: true
          type: number
        shell_price_per_kg:
          format: float
          nullable: true
          type: number
        socar_price:
          format: float
          nullable: true
          type: number
        socar_price_per_kg:
          format: float
          nullable: true
          type: number
      type: object
    Part:
      properties:
        position:
          description: Status of the related product.
          type: string
        product_id:
          type: string
        product_status:
          type: string
        quantity:
          format: float
          type: number
        unit:
          type: string
      type: object
    PopTemplate:
      description: Represents a POP template on a product.
      properties:
        catalog:
          description: The catalog this template belongs to.
          nullable: true
          type: string
        code:
          description: The field that is called "code" on the pop template. This field can
            be used to identify the template.
          type: string
        language:
          nullable: true
          type: string
        print_only_whitelist_features:
          description: If we should only print the whitelisted ones, or also other ones.
          nullable: true
          type: boolean
      required:
        - code
      type: object
    BasePrice:
      description: |-
        Represents a price basic information in the Product.

        This is not used for the base price property.
      properties:
        currency:
          nullable: true
          type: string
        estimated_piece_price:
          description: >-
            The estimated price of a piece.


            Some products that are usually sold by weight (fruit, vegetables,
            meat). But aMigos

            needs to know the estimated price based on the average weight of one
            piece as it

            is added to the cart by number and not by weight.
          format: float
          nullable: true
          type: number
        estimated_piece_weight:
          description: |-
            The estimated weight of a piece (in grams).

            The average weight that the estimated piece price is calculated on.
          format: float
          nullable: true
          type: number
        item:
          description: The items price, quantity and unit.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/PriceQuantityUnit"
        no_price_hint:
          description: The price hint if no price is set.
          nullable: true
          type: string
        source:
          nullable: true
          type: string
        valid_from:
          format: date
          type: string
        valid_to:
          format: date
          type: string
      required:
        - valid_from
        - valid_to
      type: object
    PriceQuantityUnit:
      description: Represents the current price and quantity (within a region).
      properties:
        display_quantity:
          description: The quantity and unit to display in the frontend.
          nullable: true
          type: string
        original_price:
          description: The original price value if price is the discounted value.
          format: float
          nullable: true
          type: number
        price:
          description: The price value.
          format: float
          nullable: true
          type: number
        quantity:
          description: The quantity the price is based on.
          format: float
          nullable: true
          type: number
        unit:
          description: The price unit.
          nullable: true
          type: string
        varying_quantity:
          description: Whether the quantity is flexible or fixed.
          nullable: true
          type: boolean
      type: object
    BaseDiscount:
      description: Represents the Discount information.
      properties:
        additional_description:
          description: |-
            Description text for a discount

            E.g.
            Zucht aus Dänemark
          nullable: true
          type: string
        additional_text:
          description: Additional information about the discount, e.g. 'in Selbstbedienung
            und Bedienung'
          nullable: true
          type: string
        advertisement_type_id:
          description: >-
            ID of how to advertise this discount.


            An example usage is to distinguish if the price or the percentage
            should be promoted more.
          nullable: true
          type: string
        badge:
          description: >-
            The currently active badge.


            This field is only available when using the Discount model to
            consume MAPI data.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Badge"
        boss_number:
          description: The BoSS number.
          nullable: true
          type: string
        campaign_ids:
          description: >-
            List of campaign ID's this discount is in.


            These campaign ID's are delivered by the M-Promo system, used for
            promotions.
          items:
            type: string
          nullable: true
          type: array
        channel:
          nullable: true
          type: string
        collective_discount:
          description: Collective discount (Sammelaktion).
          type: boolean
        conditions:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/DiscountConditions"
        cooperative:
          description: Cooperative which created this discount. "Erfassergruppe"
          nullable: true
          type: string
        cumulus_points:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/DiscountCumulusPoints"
        description:
          description: May contain HTML tags.
          nullable: true
          type: string
        disclaimer:
          nullable: true
          type: string
        discount_amount:
          nullable: true
          type: string
        discount_events:
          description: |-
            List of events this discount is in.

            These events are created in the M-Promo system, used for promotions.
          items:
            $ref: "#/components/schemas/DiscountEvent"
          nullable: true
          type: array
        discount_hint:
          description: May contain HTML tags.
          nullable: true
          type: string
        discount_regions:
          description: List of regions in which the discount is valid in.
          items:
            type: string
          type: array
        discount_role_id:
          description: Discount role id.
          nullable: true
          type: string
        discount_role_label:
          description: Discount role label.
          nullable: true
          type: string
        discount_type:
          description: |-
            Discount type: "neuheit" or "aktion".

            See DISCOUNT_* constants.
          enum:
            - neuheit
            - aktion
          type: string
        discount_type_id:
          description: Discount type id.
          nullable: true
          type: string
        discount_type_label:
          description: Label for discount type id.
          nullable: true
          type: string
        end_date:
          format: date-time
          nullable: true
          type: string
        example_text:
          description: >-
            Information text about an example product of a discount for multiple
            products.


            Examples include

            M-Classic, Wildfang aus dem Nordostatlantik
          nullable: true
          type: string
        example_unit:
          description: >-
            Information about the unit of the package of an example product of a
            discount for multiple products.


            The 'unit' (see field above) is used for discounts for one specific
            product.

            The 'exampleUnit' is used for discounts for multiple products.

            Only one of the two fields contains a value.


            Examples include:

            200 g

            16 Stück, 216 g

            12 x 50 g
          nullable: true
          type: string
        high_performer:
          description: High performing discount.
          type: boolean
        id:
          description: Pex discounts do not have an id, so this field has to be optional.
          nullable: true
          type: string
        image:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        image_transparent:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        instead_of:
          nullable: true
          type: string
        last_imported:
          description: Time of last import.
          format: date-time
          nullable: true
          type: string
        last_mapped:
          description: Time of last mapping to Elasticsearch.
          format: date-time
          nullable: true
          type: string
        location_planning_type:
          description: Location planning type. "Planungsart" on M-Promo. Usually either
            "national" or "regional" or "lokal".
          nullable: true
          type: string
        logo:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        newsletter_image:
          nullable: true
          type: string
        organisation:
          description: smvm, fm...
          nullable: true
          type: string
        original_price:
          description: The original price.
          format: float
          nullable: true
          type: number
        package_description:
          description: |-
            Information about the package.

            Examples include:
            4er-Pack
            Im Duo-Pack
            Im 12er-Pack
          nullable: true
          type: string
        price:
          description: The discounted price.
          format: float
          nullable: true
          type: number
        profit:
          nullable: true
          type: integer
        publication_date:
          description: Publication date of the discount.
          format: date-time
          nullable: true
          type: string
        reduction:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/DiscountReduction"
        reduction_type_id:
          description: |-
            The reduction type id of the discount.

            01 - "Relativer Rabatt"
            02 - "Absoluter Rabatt"
            03 - "X für Y"
            04 - "Absolute CUMULUS Punkte"
            05 - "X-Fach Punkte"
            06 - "Rabattpreis = CHF"
            07 - "HIT"
            08 - "Preisabschlag"
          nullable: true
          type: string
        reference_product_id:
          description: ID of the reference product of this discount.
          nullable: true
          type: string
        region:
          description: |-
            The region (Migros Genossenschaft).

            See regions in RegionalInformation.
          nullable: true
          type: string
        secondary_image:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        secondary_logo:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        source:
          type: string
        special_advertisement:
          description: Whether or not it's a "Zusatzauslobung".
          type: boolean
        start_date:
          format: date-time
          nullable: true
          type: string
        tags:
          description: Tags for flagging certain discounts.
          items:
            type: string
          nullable: true
          type: array
        unit:
          description: |-
            Information about the unit of the sold package.

            Examples include:
            Mödeli, 4 x 250 g
            per 100 g, in Selbstbedienung
          nullable: true
          type: string
        visibility:
          description: Whether the discount visibility is overridden, can be 'blacklist'
            or 'whitelist'.
          nullable: true
          type: string
      required:
        - id
        - last_mapped
      type: object
    ContentUnitPricing:
      properties:
        code:
          type: string
        value:
          nullable: true
          type: string
      type: object
    RegionalAvailability:
      description: Represents the availability of a product in a specific region in the API.
      properties:
        probability:
          description: >-
            The probability of finding the product in the region, expressed as a
            percentage.


            This is calculated per region as number of stores with availability
            divided by the total number of stores.

            If there is at least one store in a region that has the product
            available, the probability will be at least 1, never 0.
          type: integer
      required:
        - probability
      type: object
    BaseRegionalInformation:
      description: >-
        Represents the base regional information (containing only the national
        region) of a product in the API.


        This is used in the MService product.
      properties:
        national:
          description: The national price and discounts.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/PriceAndDiscounts"
      type: object
    PriceAndDiscounts:
      description: Represents the regions price and discount information.
      properties:
        discounted_prices:
          description: Collection of discounted prices.
          items:
            $ref: "#/components/schemas/DiscountedPrice"
          nullable: true
          type: array
        prices:
          description: Collection of prices.
          items:
            $ref: "#/components/schemas/Price"
          nullable: true
          type: array
        se_original_prices:
          description: Collection of sellout original prices.
          items:
            $ref: "#/components/schemas/Price"
          nullable: true
          type: array
      type: object
    SuccessorProduct:
      properties:
        mpid:
          type: string
        product_id:
          type: string
      type: object
    RelatedProductDetails:
      description: >-
        Represents related products from a single source.

        This model can be enhanced with new fields when necessary, for example
        when we start handling the Micasa Program data.
      properties:
        name:
          description: |-
            Name of the relationship with the related products.

            This is used for Micasa Program data.
          nullable: true
          type: string
        product_ids:
          description: Ids of related products.
          items:
            type: string
          type: array
      type: object
    RetailerFlags:
      description: Represents the "status fields" of the product for a given retailer.
      properties:
        exclude_cross_channel:
          deprecated: true
          description: >-
            The list of "excludeCrossChannel" processes for the product.


            This property stores the list of logistic processes which are
            excluded for a product by a specific retailer;

            there are currently eight logistic processes defined by Migros from
            'P1' to 'P8'.


            Example value: ['P3', 'P4', 'P7']
          items:
            type: string
          nullable: true
          type: array
        orderable:
          deprecated: true
          description: The "orderable" flag of the product.
          type: boolean
        reservable:
          deprecated: true
          description: The "reservable" flag of the product.
          type: boolean
        stock_request:
          deprecated: true
          description: The "stock request" flag of the product.
          type: boolean
        visible:
          description: The "visible" flag of the product.
          type: boolean
      required:
        - orderable
        - reservable
        - stock_request
        - visible
      type: object
    Service:
      description: Represents a service.
      properties:
        code:
          description: Defines whether that service is mandatory when selling the product
            or not.
          type: string
        mandatory:
          nullable: true
          type: boolean
        max:
          nullable: true
          type: integer
        min:
          nullable: true
          type: integer
      type: object
    ProductActive:
      allOf:
        - $ref: "#/components/schemas/DateRange"
        - properties:
            active:
              description: Whether the product is marked as active.
              type: boolean
          type: object
      description: Information whether or not a product is active.
      type: object
    ProductDistributionCenter:
      properties:
        center_id:
          nullable: true
          type: string
        center_name:
          nullable: true
          type: string
        status_code:
          nullable: true
          type: string
        status_description:
          nullable: true
          type: string
      type: object
    PriceLevel:
      properties:
        level:
          type: integer
        name:
          type: string
      type: object
    AdditivesInformation:
      properties:
        additives:
          description: List of additives.
          items:
            $ref: "#/components/schemas/Additive"
          nullable: true
          type: array
        declaration_obligatory:
          description: Declaration obligatory.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/AdditivesDeclarationObligatory"
      type: object
    AllergensInformation:
      properties:
        allergens:
          description: List of allergens.
          items:
            $ref: "#/components/schemas/Allergen"
          nullable: true
          type: array
        trace_allergens_text:
          description: Trace information.
          nullable: true
          type: string
      type: object
    SubstancesInformation:
      properties:
        fish_catch_zones:
          description: Ingredient/substance fish catch zones.
          items:
            type: string
          nullable: true
          type: array
        origins:
          description: Ingredient/substance countries of origin.
          items:
            type: string
          nullable: true
          type: array
        substances:
          description: Ingredient/substance names.
          items:
            type: string
          nullable: true
          type: array
      type: object
    NutriScore:
      properties:
        image:
          $ref: "#/components/schemas/Image"
        value:
          description: Value of the Nutri-Score (A-E).
          type: string
      required:
        - value
        - image
      type: object
    NutritionReferenceSizes:
      properties:
        portion:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/NutritionReferenceSize"
        standard:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/NutritionReferenceSize"
      type: object
    ValueWithUnit:
      properties:
        numeric_value:
          description: Value as number for calculation or custom display.
          format: float
          nullable: true
          type: number
        unit:
          description: Unit of the value.
          nullable: true
          type: string
        value:
          description: Value as a string for display.
          nullable: true
          type: string
      type: object
    Package:
      properties:
        number_of_portions:
          description: Number of portions per package.
          nullable: true
          type: string
        number_of_portions_operator:
          description: Operator for the number of portions per package.
          nullable: true
          type: string
        type:
          description: Type of package.
          nullable: true
          type: string
      type: object
    VariableMeasure:
      properties:
        from:
          description: Maximum of the variable range.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ValueWithUnit"
        to:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ValueWithUnit"
      type: object
    FeatureValue:
      properties:
        boolean_value:
          description: Value as boolean if applicable.
          nullable: true
          type: boolean
        image:
          $ref: "#/components/schemas/Image"
        numeric_value:
          description: Value as a number if applicable.
          format: float
          nullable: true
          type: number
        value:
          description: Readable and language-specific value of the feature.
          nullable: true
          type: string
        value_code:
          description: Not language-specific and better machine-processable code for lookup.
          nullable: true
          type: string
      type: object
    MCheckCargoCarbonFootprint:
      properties:
        co2_in_car_km:
          description: |-
            Calculated value to illustrate the CO2 consumption.
            Value is expressed in kilometers.
          example: 42
          nullable: true
          type: integer
        kg_co2:
          example: 7.6
          format: float
          type: number
        kg_co2_range:
          description: The CO2 value is just an approximation. Customers should only be
            shown the range, not the "exact" value.
          example: 6.0 - 14.8 kg CO2/kg
          nullable: true
          type: string
        packaging_in_percent:
          format: float
          nullable: true
          type: number
        production_in_percent:
          format: float
          nullable: true
          type: number
        rating:
          description: A star rating between 1 to 5 based on the kg CO2.
          example: 3
          maximum: 5
          minimum: 1
          type: integer
        transport_in_percent:
          format: float
          nullable: true
          type: number
      required:
        - kg_co2
        - rating
      type: object
    Badge:
      allOf:
        - $ref: "#/components/schemas/AbstractBadge"
        - properties:
            description:
              nullable: true
              type: string
            signet:
              description: An optional signet for the badge (used for "Neuheiten").
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/BadgeSignet"
          type: object
      description: A badge image and its properties.
      type: object
    DiscountConditions:
      properties:
        minimum_pieces:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/DiscountConditionsMinimumPieces"
        minimum_purchase_price:
          example: 10
          format: float
          nullable: true
          type: number
      type: object
    DiscountCumulusPoints:
      properties:
        relative:
          example: true
          type: boolean
        value:
          example: 20
          type: integer
      required:
        - value
        - relative
      type: object
    DiscountEvent:
      description: >-
        Represents a discount event on a discount. These events are created in
        the M-Promo system, used for promotions.


        product_ids are only available on stand alone discount events, if there
        are any specified.


        discount_id and campaign_id are only set on stand alone discount events.
        When it is nested inside a discount,

        refer to the containing object to find the id and campaign ids.
      properties:
        advertising_material_id:
          description: The id of the advertising material. "Werbemittel".
          nullable: true
          type: string
        advertising_material_type_id:
          description: The id of the advertising material type. "Werbemittelart".
          nullable: true
          type: string
        campaign_ids:
          description: Campaigns of the discount that contains this event.
          items:
            type: string
          nullable: true
          type: array
        discount_id:
          description: The id of the discount this event is part of.
          nullable: true
          type: string
        end_date:
          description: When the event ends.
          format: date-time
          type: string
        event_id:
          description: The id of the event.
          type: string
        product_ids:
          description: List of product ids this event applies to.
          items:
            type: string
          nullable: true
          type: array
        publication_date:
          description: >-
            When the event was published online.


            The API does not output events when the publication date is in the
            future.
          format: date-time
          type: string
        start_date:
          description: When the event starts.
          format: date-time
          type: string
      required:
        - event_id
        - advertising_material_type_id
        - advertising_material_id
        - start_date
        - end_date
        - publication_date
      type: object
    DiscountReduction:
      properties:
        amount:
          example: 32.5
          format: float
          type: number
        relative:
          example: true
          type: boolean
        suffix:
          example: günstiger
          nullable: true
          type: string
        unit:
          example: "%"
          nullable: true
          type: string
      required:
        - amount
        - relative
      type: object
    DiscountedPrice:
      allOf:
        - $ref: "#/components/schemas/BasePrice"
        - properties:
            base:
              description: The base price, quantity and unit.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceQuantityUnit"
            discount:
              description: The discount for this price.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/BaseDiscount"
            discount_hint:
              nullable: true
              type: string
            estimated_piece_original_price:
              description: The estimated original price of a piece, without discount.
              format: float
              nullable: true
              type: number
          type: object
      description: Represents a discounted price in the Product.
      type: object
    Price:
      allOf:
        - $ref: "#/components/schemas/BasePrice"
        - properties:
            base:
              description: The base price, quantity and unit.
              nullable: true
              oneOf:
                - $ref: "#/components/schemas/PriceQuantityUnit"
          type: object
      description: The price of a product that is mapped on the product model.
      type: object
    Additive:
      description: An additive with its level of containment.
      properties:
        code:
          description: Descriptive label.
          type: string
        containment_code:
          type: string
        containment_label:
          type: string
        label:
          type: string
      required:
        - code
        - label
      type: object
    AdditivesDeclarationObligatory:
      properties:
        code:
          description: Descriptive label.
          type: string
        label:
          type: string
      required:
        - code
        - label
      type: object
    Allergen:
      properties:
        code:
          type: string
        contamination_code:
          description: Code of the contamination.
          nullable: true
          type: string
        contamination_label:
          description: Label of the contamination.
          nullable: true
          type: string
        label:
          description: Descriptive label.
          type: string
      required:
        - code
        - label
      type: object
    NutritionReferenceSize:
      properties:
        additional_nutrients:
          description: List of additional nutrients.
          items:
            $ref: "#/components/schemas/Nutrient"
          nullable: true
          type: array
        base:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Base"
        nutrients:
          description: List of nutrients.
          items:
            $ref: "#/components/schemas/Nutrient"
          nullable: true
          type: array
        package_type:
          deprecated: true
          description: Type of package.
          nullable: true
          type: string
        portions_per_package:
          deprecated: true
          description: Number of portions per package.
          nullable: true
          type: string
        portions_per_package_precision:
          deprecated: true
          description: Operator for the number of portions per package.
          nullable: true
          type: string
        preparation_description:
          description: Preparation used for calculating the nutrition facts.
          nullable: true
          type: string
        preparation_state:
          description: Preparation state.
          nullable: true
          type: string
      type: object
    AbstractBadge:
      properties:
        custom:
          description: Image URL with placeholders for {width} and {height}.
          type: string
        hex_color:
          description: The hexadecimal color code for this badge.
          nullable: true
          type: string
        original:
          description: Full size image.
          type: string
        stack:
          description: Image URL with a placeholder for a Rokka {stack}.
          type: string
        vector:
          description: Vector image.
          type: string
      type: object
    BadgeSignet:
      allOf:
        - $ref: "#/components/schemas/AbstractBadge"
      description: A badge signet and its properties.
    DiscountConditionsMinimumPieces:
      properties:
        prefix:
          example: ab
          type: string
        value:
          example: 2
          type: integer
      required:
        - value
        - prefix
      type: object
    Nutrient:
      description: Represents an entry in the nutrition facts.
      properties:
        category:
          description: |-
            Category of nutrient.

            Examples: "BIG9", "MINERALSTOFFE_SPURENELEMENTE" or "SONSTIGE"
          nullable: true
          type: string
        code:
          description: |-
            The MAPI nutrient code.

            See https://wiki.migros.net/spaces/MAPI/pages/355021332/Order+nutrition+facts for a full list of the codes and further documentation.
          type: string
        name:
          type: string
        operator:
          nullable: true
          type: string
        pictogram_name:
          description: Name of nutrient for display in the pictogram.
          nullable: true
          type: string
        quantity:
          description: Quantity information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/NutrientQuantity"
        rating:
          description: >-
            FSA rating information for this nutrient.


            This is only set on the "standard" nutrition facts (not "portion")
            and only for selected nutrients, e.g. sugar, salt, fat.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/NutrientRating"
        rda:
          description: Information about Recommended Dietary Allowances (RDA).
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/NutrientRda"
        source_code:
          description: |-
            Code from source system.

            Used for legacy version output and debugging.
          nullable: true
          type: string
      required:
        - code
        - name
      type: object
    Base:
      properties:
        description:
          description: Base description.
          nullable: true
          type: string
        operator:
          description: Base operator.
          nullable: true
          type: string
        quantity:
          description: Base quantity.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ValueWithUnit"
      type: object
    NutrientQuantity:
      properties:
        alternate:
          description: Alternate quantity information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ValueWithUnit"
        numeric_value:
          example: 0.1
          format: float
          type: number
        unit:
          example: g
          nullable: true
          type: string
        value:
          description: >-
            Quantity of the nutrient.


            To display the information, "value" is preferred to respect the
            regulated precision.
          example: 0.10 g
          type: string
      type: object
    NutrientRating:
      description: Nutrition guidance about a nutrient.
      properties:
        hex_color:
          description: The hexadecimal color code for this rating that is also used in the
            icon.
          nullable: true
          type: string
        icon:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/Image"
        text:
          type: string
        value:
          description: The icon
          type: integer
      required:
        - value
        - text
        - hex_color
      type: object
    NutrientRda:
      description: Represents an entry in the nutrition facts.
      properties:
        operator:
          description: Recommended daily allowance operator.
          nullable: true
          type: string
        percent:
          description: Recommended daily allowance in percent.
          format: float
          type: number
        quantity:
          description: Quantity information.
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/ValueWithUnit"
      required:
        - percent
      type: object
  responses:
    "400":
      description: If the request parameters are invalid.
    "410":
      description: If an endpoint is requested that no longer exists for the requested
        version.
  securitySchemes:
    Kong-Api-Key:
      description: Kong key-auth authentication
      in: header
      name: X-Api-Key
      type: apiKey
    basicAuth:
      scheme: basic
      type: http
```
