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
Authentication\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
\n\n" title: assignments Assortment Matrix Product API contact: {} version: 2.36.5 host: '' basePath: '' schemes: [] tags: - name: Matrix Product paths: /v1/matrix/product: get: security: - sk: [] - cc: [] - jwt: [] description: Products are returned from the request only if they are a matrix variation. As an input there are 2 options. You can provide One or more product IDs, or one or more matrix product IDs. consumes: - application/json produces: - application/json tags: - Matrix Product summary: API call for retrieving matrix variations parameters: - type: array items: type: integer description: 'Limit: 1500 ids. Expected usage: API client has a matrix product ID and wants to get a complete list of variations. Format: 1 or many comma separated matrix product IDs.' name: matrixProductIDs in: query - type: array items: type: integer description: 'Limit: 1500 ids. Expected usage: API client will get a bunch of products from GET /v1/product and will want to fetch variation descriptions for the same items. Format: 1 or many comma separated product IDs.' name: productIDs in: query - type: integer description: skip n records name: skip in: query - type: integer description: 'items to take, default: 20, max: 100000' name: take in: query responses: '200': description: OK schema: type: array items: $ref: '#/definitions/matrixmodels.ProductVariationJSON' '400': description: Bad Request schema: $ref: '#/definitions/responses.MessageResponse' '500': description: Internal Server Error schema: $ref: '#/definitions/responses.MessageResponse' post: security: - sk: [] - cc: [] - jwt: [] description: 'Matrix items have 1...3 dimensions - color, size etc. Matrix dimensions can be defined in Erply backend A dimension has a name (eg. "Letter Sizes" or Spring 2013 Colors") and a list of possible values (eg. S, M, L or Lime, Yellow, Fuchsia). To create a matrix product, first pick the dimension(s) that apply to this particular product, eg "Waist Size" and "Length" for jeans. A matrix can have up to 3 dimensions.' consumes: - application/json produces: - application/json tags: - Matrix Product summary: Create Matrix Product parameters: - description: Product info & matrix dimension IDs name: product in: body required: true schema: $ref: '#/definitions/matrixmodels.CreateProductRequest' - 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 (UPC/EAN automatically based on the preconfigured starting code + user's country 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/bulk: post: security: - sk: [] - cc: [] - jwt: [] description: 'Matrix items have 1...3 dimensions - color, size etc. Matrix dimensions can be defined in Erply backend A dimension has a name (eg. "Letter Sizes" or Spring 2013 Colors") and a list of possible values (eg. S, M, L or Lime, Yellow, Fuchsia). To create a matrix product, first pick the dimension(s) that apply to this particular product, eg "Waist Size" and "Length" for jeans. A matrix can have up to 3 dimensions. Each request contains the created resource data. 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 summary: Create matrix products in bulk parameters: - description: bulk request name: request in: body required: true schema: $ref: '#/definitions/matrixmodels.ProductBulkCreateRequest' responses: '200': description: OK schema: $ref: '#/definitions/responses.BulkResponseWithResults' /v1/matrix/product/bulk/get: post: security: - sk: [] - cc: [] - jwt: [] consumes: - application/json produces: - application/json tags: - Matrix Product summary: Get matrix variations 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.ProductBulkReadRequest' responses: '200': description: OK schema: $ref: '#/definitions/matrixmodels.ProductBulkReadResponse' '400': description: Bad Request schema: $ref: '#/definitions/responses.MessageResponse' '500': description: Internal Server Error schema: $ref: '#/definitions/responses.MessageResponse' /v1/matrix/product/dimensions/bulk: put: security: - sk: [] - cc: [] - jwt: [] description: each request contains the updated resource data consumes: - application/json produces: - application/json tags: - Matrix Product summary: Update matrix products dimensions in bulk parameters: - description: bulk request name: request in: body required: true schema: $ref: '#/definitions/matrixmodels.DimensionsBulkUpdateRequest' responses: '200': description: OK schema: $ref: '#/definitions/responses.BulkResponseWithResults' /v1/matrix/product/dimensions/bulk/get: post: security: - sk: [] - cc: [] - jwt: [] description: each request contains the matrix product ID consumes: - application/json produces: - application/json tags: - Matrix Product summary: Read matrix products dimensions in bulk parameters: - description: bulk request name: request in: body required: true schema: $ref: '#/definitions/matrixmodels.DimensionsBulkReadRequest' responses: '200': description: OK schema: $ref: '#/definitions/matrixmodels.DimensionsByMatrixProductIDBulkReadResponse' /v1/matrix/product/with-variations: get: security: - sk: [] - cc: [] - jwt: [] consumes: - application/json produces: - application/json tags: - Matrix Product summary: API call for retrieving matrix products with variations parameters: - type: integer description: skip n records name: skip in: query - type: integer description: 'items to take, default: 20, max: 100000' name: take in: query - type: string description: Sorting is applied to the matrix products only. The sort parameter is explained in the `Filtering & Sorting` section on top of the Swagger documentation name: sort in: query - type: string description: Filtering is applied to the matrix products only. The filter parameter is explained in the `Filtering & Sorting` section on top of the Swagger documentation name: filter in: query responses: '200': description: OK schema: type: array items: $ref: '#/definitions/matrixmodels.ProductWithVariations' '400': description: Bad Request schema: $ref: '#/definitions/responses.MessageResponse' '500': description: Internal Server Error schema: $ref: '#/definitions/responses.MessageResponse' /v1/matrix/product/{id}/dimensions: get: security: - sk: [] - cc: [] - jwt: [] description: Matrix items have 1...3 dimensions - color, size etc. Matrix dimensions can be defined in Erply backend A dimension has a name (eg. "Letter Sizes" or Spring 2013 Colors") and a list of possible values (eg. S, M, L or Lime, Yellow, Fuchsia). consumes: - application/json produces: - application/json tags: - Matrix Product summary: Read Matrix Product Dimensions parameters: - type: integer description: matrix product id name: id in: path required: true - type: integer description: skip n records name: skip in: query - type: integer description: 'items to take, default: 20, max: 100000' name: take in: query responses: '200': description: OK schema: $ref: '#/definitions/matrixmodels.DimensionIDs' '400': description: Bad Request schema: $ref: '#/definitions/responses.MessageResponse' '500': description: Internal Server Error schema: $ref: '#/definitions/responses.MessageResponse' put: security: - sk: [] - cc: [] - jwt: [] description: 'Matrix items have 1...3 dimensions - color, size etc. Matrix dimensions can be defined in Erply backend. A dimension has a name (eg. "Letter Sizes" or Spring 2013 Colors") and a list of possible values (eg. S, M, L or Lime, Yellow, Fuchsia). To update the matrix product dimensions, first pick the dimension(s) that apply to this particular product, eg "Waist Size" and "Length" for jeans and pass them to the request body. A matrix can have up to 3 dimensions' consumes: - application/json produces: - application/json tags: - Matrix Product summary: Update Matrix Product Dimensions parameters: - type: integer description: matrix product id name: id in: path required: true - description: matrix dimension IDs name: product in: body required: true schema: $ref: '#/definitions/matrixmodels.UpdateProductDimensionsRequest' responses: '200': description: OK 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: matrixmodels.UpdateProductDimensionsRequest: type: object properties: dimension_ids: description: up to 3 dimensions. If you want to specify only 2nd or 3rd dimension, leave the first and/or second as 0 type: array items: type: integer example: - 1 - 2 - 3 matrixmodels.ProductWithVariations: type: object properties: product: $ref: '#/definitions/products.ProductResponse' variations: type: array items: $ref: '#/definitions/matrixmodels.ProductVariationJSON' matrixmodels.DimensionsByMatrixProductIDBulkReadResponse: type: object properties: results: type: array items: $ref: '#/definitions/matrixmodels.DimensionsByMatrixProductIDBulkReadResponseItem' matrixmodels.ProductBulkReadRequest: type: object properties: requests: type: array items: $ref: '#/definitions/matrixmodels.ProductBulkReadRequestItem' Translatable: type: object properties: en: description: This field supports more languages. Please read Translatable names and descriptions block in the documentation. type: string matrixmodels.VariationDescription: type: object properties: dimension_id: type: integer dimension_name: $ref: '#/definitions/Translatable' dimension_value_code: type: string dimension_value_id: type: integer dimension_value_name: $ref: '#/definitions/Translatable' dimension_value_order: type: integer responses.Response: type: object properties: id: type: integer example: 73 ProductDescription: type: object properties: html: description: Description supports more languages. Please read Translatable names and descriptions block in the documentation. type: string example: Very good product! plain_text: description: Description supports more languages. Please read Translatable names and descriptions block in the documentation. type: string example: Very good product! matrixmodels.CreateProductRequest: type: object properties: dimension_ids: description: up to 3 dimensions. If you want to specify only 2nd or 3rd dimension, leave the first and/or second as 0 type: array items: type: integer example: - 1 - 2 - 3 matrix_product: description: Matrix product can have up to 3 dimensions $ref: '#/definitions/products.ProductRequest' matrixmodels.ProductBulkCreateRequest: type: object properties: requests: type: array items: $ref: '#/definitions/matrixmodels.ProductBulkCreateRequestItem' matrixmodels.ProductBulkReadRequestItem: type: object properties: matrix_product_ids: description: 'Expected usage: API client has a matrix product ID and wants to get a complete list of variations. Format: 1 or many matrix product IDs.' type: array items: type: integer paginationParameters: $ref: '#/definitions/parammodels.PaginationParameters' product_ids: description: 'Expected usage: API client will get a bunch of products from GET /v1/product and will want to fetch variation descriptions for the same items. Format: 1 or many product IDs.' type: array items: type: integer matrixmodels.DimensionsBulkReadRequest: type: object properties: matrix_product_ids: type: array items: type: integer paginationParameters: $ref: '#/definitions/parammodels.PaginationParameters' matrixmodels.ProductVariationJSON: type: object properties: code: type: string code2: type: string code3: type: string code5: type: string code6: type: string code7: type: string code8: type: string displayed_in_webshop: description: 0 or 1 type: integer id: type: integer name: description: /This field supports more languages. Please read Translatable names and descriptions block in the documentation. $ref: '#/definitions/Translatable' parent_product_id: type: integer parent_product_name: $ref: '#/definitions/Translatable' price: type: number price_with_tax: type: number status: type: string tax_rate_id: type: integer variation_description: type: array items: $ref: '#/definitions/matrixmodels.VariationDescription' matrixmodels.DimensionsByMatrixProductIDBulkReadResponseItem: type: object properties: dimension_ids: type: array items: type: integer example: - 1 - 2 - 3 message: type: string example: some message resourceId: description: matrix product ID type: integer resultId: type: integer matrixmodels.DimensionIDs: type: object properties: dimension_ids: description: up to 3 dimensions. If you want to specify only 2nd or 3rd dimension, leave the first and/or second as 0 type: array items: type: integer example: - 1 - 2 - 3 responses.MessageResponse: type: object properties: message: type: string example: some message matrixmodels.ProductBulkCreateRequestItem: type: object properties: dimension_ids: description: up to 3 dimensions. If you want to specify only 2nd or 3rd dimension, leave the first and/or second as 0 type: array items: type: integer example: - 1 - 2 - 3 generateCode2Automatically: description: if true, the product code2 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 matrix_product: description: Matrix product can have up to 3 dimensions $ref: '#/definitions/products.ProductRequest' matrixmodels.ProductBulkReadResponse: type: object properties: results: type: array items: $ref: '#/definitions/matrixmodels.ProductBulkReadResponseItem' 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.DimensionsBulkUpdateRequest: type: object properties: requests: type: array items: $ref: '#/definitions/matrixmodels.DimensionsBulkUpdateRequestItem' matrixmodels.ProductBulkReadResponseItem: type: object properties: message: type: string example: some message resultId: type: integer variations: type: array items: $ref: '#/definitions/matrixmodels.ProductVariationJSON' responses.BulkResponseWithResults: type: object properties: results: type: array items: $ref: '#/definitions/responses.BulkResult' 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 Description: type: object properties: en: description: Description supports more languages. Please read Translatable names and descriptions block in the documentation. $ref: '#/definitions/ProductDescription' parammodels.PaginationParameters: type: object properties: skip: type: integer take: type: integer products.ProductResponse: type: object properties: added: description: Unix timestamp type: integer example: 1595230999 addedby: description: username type: string example: k@erp.xyz age_restriction: type: integer alcohol_percentage: type: string alcohol_registry_number: type: string batches: type: string brand_id: type: integer cashier_must_enter_price: description: boolean flag 0 or 1 type: integer category_id: type: integer changed: description: Unix timestamp type: integer example: 1595230999 changedby: description: username type: string example: k@erp.xyz code: type: string code2: type: string code3: type: string code5: type: string code6: type: string code7: type: string code8: type: string cost: type: number country_of_origin_id: type: integer delivery_time: type: string deposit_fee_amount: type: integer deposit_fee_id: 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: 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 id: type: integer 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: type: integer location_in_warehouse_text: 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: 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: type: integer price: type: number price_with_tax: 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: type: string supplier_id: type: integer tax_free: description: boolean flag 0 or 1 type: integer tax_rate_id: 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: type: string unit_id: type: integer volume: type: number webshop_description: type: string webshop_keywords: type: string webshop_title: type: string webshop_url_slug: type: string width: type: number matrixmodels.DimensionsBulkUpdateRequestItem: type: object properties: dimension_ids: description: up to 3 dimensions. If you want to specify only 2nd or 3rd dimension, leave the first and/or second as 0 type: array items: type: integer example: - 1 - 2 - 3 matrix_product_id: type: integer 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