Erply Matrix Product Variation API

The Matrix Product Variation API from Erply — 4 operation(s) for matrix product variation.

OpenAPI Specification

erply-matrix-product-variation-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: "\n\n## Overview\n\n\n\nThis application offers an API for managing assignments and tasks.\n\n\n\nGraphQL endpoint for the same API is [also available](/graph)\n\n\n\n<details><summary>Authentication</summary>\n\n\n\n> \n\n> Authenticate using your Erply credentials and get a sessionKey. This sessionKey and your Erply clientCode must be provided in the HTTP headers of every request. You do not have to authenticate against this API - valid Erply sessionKey-s from other sources are also acceptable. To authenticate using this API, use the `POST /api/v1/auth` endpoint.\n\n>\n\n</details>\n\n"
  title: assignments Assortment Matrix Product Variation API
  contact: {}
  version: 2.36.5
host: ''
basePath: ''
schemes: []
tags:
- name: Matrix Product Variation
paths:
  /v1/matrix/product/variation/bulk:
    post:
      security:
      - sk: []
      - cc: []
      - jwt: []
      description: Each request body is a variation to create. The parameters to generate the product code/code2 automatically is embedded into the request body as the `generateCodeAutomatically` & `generateCode2Automatically` fields.
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - Matrix Product Variation
      summary: Create variations in bulk
      parameters:
      - description: bulk create request
        name: request
        in: body
        required: true
        schema:
          $ref: '#/definitions/matrixmodels.VariationBulkCreateRequest'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/responses.BulkResponseWithResults'
    patch:
      security:
      - sk: []
      - cc: []
      - jwt: []
      description: each request item contains the updated resource data
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - Matrix Product Variation
      summary: Change variation parents in bulk
      parameters:
      - description: requests have the parameters that the original get request has, but in json format. This way you can apply the parameters to each request separately.
        name: request
        in: body
        required: true
        schema:
          $ref: '#/definitions/matrixmodels.VariationBulkChangeParentRequest'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/responses.BulkResponseWithResults'
  /v1/matrix/product/{id}/variation:
    post:
      security:
      - sk: []
      - cc: []
      - jwt: []
      description: 'Create specific variations (color/size combinations), each one as a separate product.

        `parent_product_id` field can be left empty on the variation.'
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - Matrix Product Variation
      summary: Create Matrix Product Variation
      parameters:
      - type: integer
        description: matrix product ID
        name: id
        in: path
        required: true
      - description: Variation product and dimension value IDs
        name: product
        in: body
        required: true
        schema:
          $ref: '#/definitions/matrixmodels.CreateVariationRequest'
      - type: boolean
        description: generate code automatically based on the preconfigured starting code or based on a generated code. If the code is not blank in the request, will override.
        name: generateCodeAutomatically
        in: query
        required: true
      - type: boolean
        description: generate code2 (EAN/UPC) automatically based on the preconfigured starting code or based on a generated code. If the code is not blank in the request, will override.
        name: generateCode2Automatically
        in: query
        required: true
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/responses.Response'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/responses.MessageResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/responses.MessageResponse'
  /v1/matrix/product/{productID}/variation/{variationID}/dimension-values:
    patch:
      security:
      - sk: []
      - cc: []
      - jwt: []
      description: Update variation's dimensions values
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - Matrix Product Variation
      summary: Update a matrix product variation's dimension values
      parameters:
      - type: integer
        description: matrix product ID
        name: productID
        in: path
        required: true
      - type: integer
        description: matrix product variation ID
        name: variationID
        in: path
        required: true
      - description: dimension value IDs
        name: product
        in: body
        required: true
        schema:
          $ref: '#/definitions/matrixmodels.ChangeVariationParentRequest'
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/responses.Response'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/responses.MessageResponse'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/responses.MessageResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/responses.MessageResponse'
  /v1/matrix/product/{productID}/variation/{variationID}/parent:
    patch:
      security:
      - sk: []
      - cc: []
      - jwt: []
      description: 'This endpoint solves 3 problems:

        1) the user can modify a variation product and REMOVE it''s matrix product (set it to 0),

        2) the user can move the variation to different matrix product, in that case attach dimension values (same or new)

        3) the user can associate a regular product with a matrix one (turn it into a variation) - in this case attach dimension values'
      consumes:
      - application/json
      produces:
      - application/json
      tags:
      - Matrix Product Variation
      summary: Change Matrix Product Variation Parent
      parameters:
      - type: integer
        description: matrix product ID
        name: productID
        in: path
        required: true
      - type: integer
        description: matrix product variation ID
        name: variationID
        in: path
        required: true
      - description: dimension value IDs - the same as were on the variation, or new
        name: dimensionValueIDs
        in: body
        required: true
        schema:
          $ref: '#/definitions/matrixmodels.ChangeVariationParentRequest'
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/responses.Response'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/responses.MessageResponse'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/responses.MessageResponse'
definitions:
  responses.Response:
    type: object
    properties:
      id:
        type: integer
        example: 73
  products.ProductRequest:
    type: object
    properties:
      age_restriction:
        type: integer
      alcohol_percentage:
        type: string
      alcohol_registry_number:
        type: string
      backup_id:
        type: integer
      batches:
        type: string
      brand_id:
        description: ID of product brand. To get the list of brandmodels, use getBrands.
        type: integer
      cashier_must_enter_price:
        description: boolean flag 0 or 1
        type: integer
      category_id:
        type: integer
      code:
        description: Product's code. Must be UNIQUE, unless the account is configured otherwise.
        type: string
      code2:
        description: Product's second code (by convention, EAN barcode). Must be UNIQUE, unless the account is configured otherwise.
        type: string
      code3:
        description: Third code of the item (note that this field may not be visible on product card by default).
        type: string
      code5:
        type: string
      code6:
        type: string
      code7:
        type: string
      code8:
        type: string
      cost:
        description: Cost is Product cost
        type: number
      country_of_origin_id:
        type: integer
      delivery_time:
        type: string
      deposit_fee_amount:
        type: integer
      deposit_fee_id:
        description: ContainerID is ID of another product, a beverage container that is always sold together with this item.
        type: integer
      description:
        $ref: '#/definitions/Description'
      displayed_in_webshop:
        description: 0 or 1
        type: integer
      excise_declaration_number:
        type: string
      extra_field1_id:
        type: integer
      extra_field2_id:
        type: integer
      extra_field3_id:
        type: integer
      extra_field4_id:
        type: integer
      family_id:
        type: integer
      formula_identifier:
        type: string
      gross_weight:
        description: GrossWeight is Item's gross weight (with packaging). Unit depends on region, check your Erply account (typically lbs or kg).
        type: number
      group_id:
        description: ID of product group. To get the list of product groups, use getProductGroups.
        type: integer
      group_package_ferrous_metal:
        type: number
      group_package_metal:
        type: number
      group_package_non_ferrous_metal:
        type: number
      group_package_paper:
        type: number
      group_package_plastic:
        type: number
      group_package_wood:
        type: number
      has_serial_numbers:
        type: integer
      height:
        type: number
      is_gift_card:
        description: 0 or 1
        type: integer
      is_lot_product:
        type: boolean
      is_regular_gift_card:
        description: boolean flag 0 or 1
        type: integer
      is_used_product:
        type: boolean
      labels_not_needed:
        description: boolean flag 0 or 1
        type: integer
      length:
        description: Length is Item's physical dimensions.
        type: number
      location_in_warehouse_id:
        description: LocationInWarehouseID is ID of selected location in warehouse.
        type: integer
      location_in_warehouse_text:
        description: LocationInWarehouseText is Product's specific text added to location in warehouse.
        type: string
      manufacturer_name:
        type: string
      name:
        description: /This field supports more languages. Please read Translatable names and descriptions block in the documentation.
        $ref: '#/definitions/Translatable'
      net_weight:
        description: NetWeight is Item's net weight. Unit depends on region, check your Erply account (typically lbs or kg).
        type: number
      non_discountable:
        description: 0 or 1
        type: integer
      non_refundable:
        description: 0 or 1
        type: integer
      non_stock_product:
        description: boolean flag 0 or 1
        type: integer
      packaging_type:
        type: string
      packing_not_required:
        type: integer
      parent_product_id:
        description: Parent product ID. Only for matrix variations (specific colors/sizes of a matrix item). See guidelines below.
        type: integer
      price:
        description: 'Price is just the default price of a product and the actual price applied in a particular location, to a particular customer, depends on price lists and promotions: https://learn-api.erply.com/concepts/pricing'
        type: number
      priority_group_id:
        type: integer
      product_item_level_promotions_disabled:
        type: integer
      product_reorder_multiples:
        type: integer
      revenue_account:
        type: string
      reward_points_not_allowed:
        description: boolean flag 0 or 1
        type: integer
      sales_package_cardboard:
        type: number
      sales_package_clear_brown_glass:
        type: number
      sales_package_green_other_glass:
        type: number
      sales_package_metal_al:
        type: number
      sales_package_metal_fe:
        type: number
      sales_package_other_metal:
        type: number
      sales_package_paper_and_cardboard_mono:
        description: Product package materials
        type: number
      sales_package_plastic_pet:
        type: number
      sales_package_plastic_pp_pe:
        type: number
      sales_package_wood:
        type: number
      serial_number:
        type: string
      shelf_life_days:
        type: integer
      sold_in_packages:
        type: integer
      status:
        description: 'Status is a classifier with four possible values: ''ACTIVE'' (DEFAULT), ''NO_LONGER_ORDERED'', ''NOT_FOR_SALE'' and ''ARCHIVED''.'
        type: string
        example: ACTIVE
      suggested_retail_price:
        type: number
      supplier_code:
        description: Supplier's product code
        type: string
      supplier_id:
        type: integer
      tax_free:
        description: boolean flag 0 or 1
        type: integer
      tax_rate_id:
        description: 'TaxRateID is just the default tax rate of a product and the actual tax applied in a particular location depends on multiple rules: https://learn-api.erply.com/concepts/taxes.'
        type: integer
      transport_package_cardboard:
        type: number
      transport_package_ferrous_metal:
        type: number
      transport_package_non_ferrous_metal:
        type: number
      transport_package_plastic:
        type: number
      transport_package_wood:
        type: number
      type:
        description: Product type, possible types are 'PRODUCT', 'BUNDLE', 'MATRIX', 'ASSEMBLY'. By default 'PRODUCT'.
        type: string
      unit_id:
        description: ID of product unit. To get the list of units, use getProductUnits.
        type: integer
      volume:
        description: Volume is Item's fluid volume, eg. for beverages or perfumery. Unit depends on locale, check your Erply account (typically mL or fl oz).
        type: number
      webshop_description:
        type: string
      webshop_keywords:
        type: string
      webshop_title:
        type: string
      webshop_url_slug:
        type: string
      width:
        type: number
  matrixmodels.VariationBulkChangeParentRequest:
    type: object
    properties:
      requests:
        type: array
        items:
          $ref: '#/definitions/matrixmodels.VariationBulkChangeParentRequestItem'
  Description:
    type: object
    properties:
      en:
        description: Description supports more languages. Please read Translatable names and descriptions block in the documentation.
        $ref: '#/definitions/ProductDescription'
  ProductDescription:
    type: object
    properties:
      html:
        description: Description supports more languages. Please read Translatable names and descriptions block in the documentation.
        type: string
        example: <b>Very good product!</b>
      plain_text:
        description: Description supports more languages. Please read Translatable names and descriptions block in the documentation.
        type: string
        example: Very good product!
  matrixmodels.VariationBulkChangeParentRequestItem:
    type: object
    properties:
      dimension_value_ids:
        description: Matrix variation can have up to 3 dimension values
        type: array
        items:
          type: integer
        example:
        - 1
        - 2
        - 3
      productID:
        type: integer
      variationID:
        type: integer
  matrixmodels.ChangeVariationParentRequest:
    type: object
    properties:
      dimension_value_ids:
        description: Matrix variation can have up to 3 dimension values
        type: array
        items:
          type: integer
        example:
        - 1
        - 2
        - 3
  responses.MessageResponse:
    type: object
    properties:
      message:
        type: string
        example: some message
  matrixmodels.CreateVariationRequest:
    type: object
    properties:
      dimension_value_ids:
        description: Matrix variation can have up to 3 dimension values
        type: array
        items:
          type: integer
        example:
        - 1
        - 2
        - 3
      variation_product:
        description: product, type must be PRODUCT
        $ref: '#/definitions/products.ProductRequest'
  matrixmodels.VariationBulkCreateRequestItem:
    type: object
    properties:
      dimension_value_ids:
        description: Matrix variation can have up to 3 dimension values
        type: array
        items:
          type: integer
        example:
        - 1
        - 2
        - 3
      generateCode2Automatically:
        description: if true, the product code1 will be generated based on the user configuration or will generate the conde in case there is none
        type: boolean
      generateCodeAutomatically:
        description: if true, the product code will be generated based on the user configuration or will generate the conde in case there is none
        type: boolean
      matrixProductID:
        type: integer
      variation_product:
        description: product, type must be PRODUCT
        $ref: '#/definitions/products.ProductRequest'
  Translatable:
    type: object
    properties:
      en:
        description: This field supports more languages. Please read Translatable names and descriptions block in the documentation.
        type: string
  responses.BulkResult:
    type: object
    properties:
      message:
        type: string
        example: some message
      resourceId:
        description: identifier of the REST-ful response
        type: integer
        example: 2
      resultId:
        description: identifier of the result item
        type: integer
        example: 2
  matrixmodels.VariationBulkCreateRequest:
    type: object
    properties:
      requests:
        type: array
        items:
          $ref: '#/definitions/matrixmodels.VariationBulkCreateRequestItem'
  responses.BulkResponseWithResults:
    type: object
    properties:
      results:
        type: array
        items:
          $ref: '#/definitions/responses.BulkResult'
securityDefinitions:
  AccessToken:
    type: apiKey
    name: accessToken
    in: header
  ErplyClientCode:
    type: apiKey
    name: clientCode
    in: header
  ErplyJWT:
    type: apiKey
    name: jwt
    in: header
  ErplySession:
    type: apiKey
    name: sessionKey
    in: header
  RequestKey:
    type: apiKey
    name: requestKey
    in: header