# ProductProperties

ProductProperties

## Get list of variants for a product

> Get list of variants for a product

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"ProductProperties","description":"ProductProperties"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Accesstoken recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"parameters":{"pageNumberQuery":{"description":"Reference to a specific page in a result set.","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},"pageSizeQuery":{"description":"The number of items per page in a result set.","in":"query","name":"pageSize","required":false,"schema":{"type":"integer"}},"sortByQuery":{"description":"Defines which field the resource list is sorted by.","in":"query","name":"sortBy","required":false,"schema":{"type":"string"}},"sortDirectionQuery":{"description":"Reference to a sort direction","explode":false,"in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/SortDirectionENUM"},"style":"form"}},"schemas":{"SortDirectionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| ASC | Sort in ascending order|\n| DESC | Sort in descending order|\n","enum":["ASC","DESC"],"title":"SortDirectionENUM","type":"string"},"ProductVariantResponseSchema":{"title":"ProductVariantResponseSchema","allOf":[{"type":"object","properties":{"productVariantUid":{"$ref":"#/components/schemas/UID"}},"required":["productVariantUid"]},{"$ref":"#/components/schemas/ProductResponseSchema"}]},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"ProductResponseSchema":{"title":"ProductResponseSchema","type":"object","required":["allowAddon","allowCredit","allowPurchase","allowQuantity","allowSale","allowSaleDate","allowDelivery","allowDeliveryDate","availableForWeb","brandUid","brandName","calculationFactor","categoryUids","createdAt","customerAgeRestriction","description","discontinuedFrom","externalId","externalInfo","externalUrl","gtins","height","internalInfo","lastModifiedAt","ledgerNumber","length","name","optionProperties","priceOverride","productGroupUid","productGroupPath","productUid","productType","recommendedRetailPrice","requiredVariantPropertyUids","serialNoRequired","shortDescription","sku","manufacturerSku","suppliers","textProperties","unitLabel","variantProductUids","variantParentProductUid","variants","vatCodeUid","weight","width","links","parents","requirements","coverImage","imageCount","relevance","visibility","commission","productWarrantyUid","excludeFromStatistics","purchasePrice","numberOfPieces","limitToStoreUids"],"properties":{"allowAddon":{"type":"boolean"},"allowCredit":{"type":"boolean"},"allowPurchase":{"type":"boolean"},"allowQuantity":{"type":"boolean"},"allowSale":{"$ref":"#/components/schemas/AllowSaleENUM"},"allowSaleDate":{"format":"date-time","type":"string"},"allowDelivery":{"$ref":"#/components/schemas/AllowDeliveryENUM"},"allowDeliveryDate":{"format":"date-time","type":"string"},"availableForWeb":{"type":"boolean","description":"The product is available for web sale"},"brandUid":{"$ref":"#/components/schemas/UID"},"brandName":{"type":"string"},"calculationFactor":{"type":"integer"},"categoryUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}},"createdAt":{"format":"date-time","type":"string"},"customerAgeRestriction":{"type":"integer","description":"Age restriction for the customer. 0 = no restriction"},"description":{"type":"string"},"discontinuedFrom":{"type":"string","format":"date-time","nullable":true},"externalId":{"type":"string"},"externalInfo":{"type":"string"},"externalUrl":{"type":"string"},"gtins":{"type":"array","items":{"$ref":"#/components/schemas/ProductGtinResponseSchema"}},"height":{"type":"integer"},"internalInfo":{"type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"ledgerNumber":{"description":"Ledger number must be a valid number with possible leading zeros","type":"string"},"length":{"type":"integer"},"name":{"type":"string"},"optionProperties":{"description":"A list or propertyUids that extends the product with new properties.","type":"array","items":{"$ref":"#/components/schemas/ProductPropertyResponseSchema"}},"priceOverride":{"type":"boolean"},"productGroupUid":{"$ref":"#/components/schemas/UID"},"productGroupPath":{"type":"array","items":{"$ref":"#/components/schemas/ProductGroupPathSchema"}},"productUid":{"$ref":"#/components/schemas/UID"},"productType":{"$ref":"#/components/schemas/ProductTypeENUM"},"recommendedRetailPrice":{"type":"integer"},"requiredVariantPropertyUids":{"description":"A list of propertyUids that are required for each variant of this product.","type":"array","items":{"type":"string"}},"serialNoRequired":{"$ref":"#/components/schemas/SerialNoRequiredENUM"},"shortDescription":{"type":"string"},"sku":{"type":"string"},"manufacturerSku":{"type":"string"},"suppliers":{"type":"array","items":{"$ref":"#/components/schemas/ProductSupplierResponseSchema"}},"textProperties":{"description":"A list or propertyUids that extends the product with new properties.","type":"array","items":{"$ref":"#/components/schemas/ProductPropertyResponseSchema"}},"unitLabel":{"type":"string"},"variantProductUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}},"variantParentProductUid":{"$ref":"#/components/schemas/UID"},"variants":{"description":"A list of productUids that make up variants of this product.","type":"array","deprecated":true,"items":{"type":"string"}},"vatCodeUid":{"$ref":"#/components/schemas/UID"},"weight":{"type":"integer"},"width":{"type":"integer"},"links":{"type":"array","description":"List of links owned by this product","items":{"$ref":"#/components/schemas/ProductLinkResponseSchema"}},"parents":{"type":"array","description":"List of parents to this product","items":{"$ref":"#/components/schemas/ProductLinkResponseSchema"}},"requirements":{"$ref":"#/components/schemas/ProductRequirementResponseSchema"},"coverImage":{"$ref":"#/components/schemas/CoverImageSchema"},"imageCount":{"type":"integer"},"relevance":{"type":"number"},"visibility":{"$ref":"#/components/schemas/ProductVisibilityENUM"},"commission":{"type":"integer","description":"A commission to be paid to the supplier after delivery."},"productWarrantyUid":{"$ref":"#/components/schemas/UID"},"excludeFromStatistics":{"type":"boolean"},"purchasePrice":{"type":"integer"},"numberOfPieces":{"type":"integer","description":"Indicates how many packages/parts the product consists of."},"requireCustomer":{"type":"boolean","deprecated":true},"limitToStoreUids":{"$ref":"#/components/schemas/LimitToStoreUidsSchema"}}},"AllowSaleENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| YES | Allow the product to be sold|\n| NO | Do not allow the product to be sold|\n| NOT_BEFORE_DATE | Do not allow the product to be sold before a specified date|","enum":["YES","NO","NOT_BEFORE_DATE"],"title":"AllowSaleENUM","type":"string"},"AllowDeliveryENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| YES | Allow the product to be delivered|\n| NO | Do not allow the product to be delivered|\n| NOT_BEFORE_DATE | Do not allow the product to be delivered before a specified date|","enum":["YES","NO","NOT_BEFORE_DATE"],"title":"AllowDeliveryENUM","type":"string"},"ProductGtinResponseSchema":{"title":"ProductGtinResponseSchema","type":"object","required":["gtin","primary","type"],"properties":{"gtin":{"type":"string"},"primary":{"type":"boolean"},"type":{"type":"string"}}},"ProductPropertyResponseSchema":{"title":"ProductPropertyResponseSchema","type":"object","required":["productPropertyUid","propertyName","propertyOptionName","propertyType","propertyUid","propertyOptionUid","required"],"properties":{"productPropertyUid":{"$ref":"#/components/schemas/UID"},"propertyName":{"type":"string"},"propertyOptionName":{"type":"string"},"propertyType":{"$ref":"#/components/schemas/PropertyTypeENUM"},"propertyText":{"type":"string","description":"Only in use with TEXT properties."},"propertyUid":{"$ref":"#/components/schemas/UID"},"propertyOptionUid":{"$ref":"#/components/schemas/UID"},"required":{"type":"boolean"}}},"PropertyTypeENUM":{"description":"Describes the type of property a product can have.\n\n|ENUM      | Description |\n| ---------------- | ------------ |\n| TEXT | A single text line such as an URL to a product manual or a reminder to the cashier/salesperson.|\n| SINGLESELECT | A list of values where a product can only have one at any given time.|\n| MULTISELECT | A list of values where a product can have none or several at any given time.|","enum":["TEXT","SINGLESELECT","MULTISELECT"],"title":"PropertyTypeENUM","type":"string"},"ProductGroupPathSchema":{"title":"ProductGroupPathSchema","type":"object","properties":{"name":{"type":"string"},"parentUid":{"$ref":"#/components/schemas/UID"},"productGroupUid":{"$ref":"#/components/schemas/UID"}},"required":["name","parentUid","productGroupUid"]},"ProductTypeENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| STOCK | Price*quantity|\n| NO_STOCK | No quantity|\n| CONFIGURABLE | Master configurable product|\n| FLOWGIFTCARD | Flow Giftcard product|\n| NON_PHYSICAL | Non physical product|\n| PACKAGE_FIXED | Packaged product with fixed content|\n| PACKAGE_DYNAMIC | Packaged product with dynamic content|","enum":["STOCK","NO_STOCK","CONFIGURABLE","FLOWGIFTCARD","NON_PHYSICAL","PACKAGE_FIXED","PACKAGE_DYNAMIC"],"minLength":1,"title":"ProductTypeENUM","type":"string"},"SerialNoRequiredENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| NO | No Serial number required|\n| ON_SALE | Can register serial number when selling a product (Serial number is optional)|\n| ON_RECEIVE | Must register serial number when receiving and selling product (Serial number is required)|","enum":["NO","ON_SALE","ON_RECEIVE"],"title":"SerialNoRequiredENUM","type":"string"},"ProductSupplierResponseSchema":{"title":"ProductSupplierResponseSchema","type":"object","properties":{"name":{"type":"string"},"supplierUid":{"$ref":"#/components/schemas/UID"}},"required":["name","supplierUid"]},"ProductLinkResponseSchema":{"title":"ProductLinkResponseSchema","allOf":[{"properties":{"productLinkUid":{"$ref":"#/components/schemas/UID"}},"required":["productLinkUid"],"type":"object"},{"$ref":"#/components/schemas/ProductLinkRequestSchema"}]},"ProductLinkRequestSchema":{"title":"ProductLinkRequestSchema","type":"object","properties":{"linkType":{"$ref":"#/components/schemas/ProductLinkTypeENUM"},"productUid":{"$ref":"#/components/schemas/UID"},"productLinkUid":{"$ref":"#/components/schemas/UID"}},"required":["linkType","productUid"]},"ProductLinkTypeENUM":{"enum":["INSURANCE","ALTERNATIVE","ACCESSORY","SPARE_PART","SERVICE"],"title":"ProductLinkTypeENUM","type":"string"},"ProductRequirementResponseSchema":{"title":"ProductRequirementResponseSchema","type":"object","description":"ProductRequirementResponseSchema","required":["requireCustomer","requireCustomerMobile","requireCustomerEmail","requireCustomerDeliveryAddress"],"properties":{"requireCustomer":{"type":"boolean"},"requireCustomerMobile":{"type":"boolean"},"requireCustomerEmail":{"type":"boolean"},"requireCustomerDeliveryAddress":{"type":"boolean"}}},"CoverImageSchema":{"title":"CoverImageSchema","type":"object","properties":{"productMediaUid":{"$ref":"#/components/schemas/UID"},"mainUrl":{"type":"string"},"thumbnailUrl":{"type":"string"}},"required":["productMediaUid","mainUrl","thumbnailUrl"]},"ProductVisibilityENUM":{"type":"string","title":"ProductVisibilityENUM","enum":["ALWAYS_VISIBLE","NOT_VISIBLE"]},"LimitToStoreUidsSchema":{"title":"LimitToStoreUidsSchema","type":"array","description":"Limit the product to be used for a list of storeUids.","items":{"$ref":"#/components/schemas/UID"}},"Paging":{"description":"totalCount The total number of items in the result set.\n\npageSize The number of items per page.\n\npageNumber The current page in the result set.","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["totalCount","pageSize","pageNumber"],"title":"Paging","type":"object"}},"responses":{"ProductVariantListResponse":{"description":"Example response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProductVariantResponseSchema"}},"paging":{"$ref":"#/components/schemas/Paging"}},"required":["items","paging"]}}}}}},"paths":{"/tenants/{tenantUid}/products/{productUid}/variants":{"get":{"description":"Get list of variants for a product","operationId":"get-tenant-product-variants","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"}],"responses":{"200":{"$ref":"#/components/responses/ProductVariantListResponse"}},"summary":"Get list of variants for a product","tags":["ProductProperties"]}}}}
```

## Add a product as variant on a configurable product

> Add a product as variant on a configurable product\
> \
> The productUid in the path should be the configurable product.\
> The productUid in the request body is the product that you want to add as a variant

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"ProductProperties","description":"ProductProperties"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Accesstoken recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"ProductVariantResponse":{"description":"Example response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductVariantResponseSchema"}}}}},"schemas":{"ProductVariantResponseSchema":{"title":"ProductVariantResponseSchema","allOf":[{"type":"object","properties":{"productVariantUid":{"$ref":"#/components/schemas/UID"}},"required":["productVariantUid"]},{"$ref":"#/components/schemas/ProductResponseSchema"}]},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"ProductResponseSchema":{"title":"ProductResponseSchema","type":"object","required":["allowAddon","allowCredit","allowPurchase","allowQuantity","allowSale","allowSaleDate","allowDelivery","allowDeliveryDate","availableForWeb","brandUid","brandName","calculationFactor","categoryUids","createdAt","customerAgeRestriction","description","discontinuedFrom","externalId","externalInfo","externalUrl","gtins","height","internalInfo","lastModifiedAt","ledgerNumber","length","name","optionProperties","priceOverride","productGroupUid","productGroupPath","productUid","productType","recommendedRetailPrice","requiredVariantPropertyUids","serialNoRequired","shortDescription","sku","manufacturerSku","suppliers","textProperties","unitLabel","variantProductUids","variantParentProductUid","variants","vatCodeUid","weight","width","links","parents","requirements","coverImage","imageCount","relevance","visibility","commission","productWarrantyUid","excludeFromStatistics","purchasePrice","numberOfPieces","limitToStoreUids"],"properties":{"allowAddon":{"type":"boolean"},"allowCredit":{"type":"boolean"},"allowPurchase":{"type":"boolean"},"allowQuantity":{"type":"boolean"},"allowSale":{"$ref":"#/components/schemas/AllowSaleENUM"},"allowSaleDate":{"format":"date-time","type":"string"},"allowDelivery":{"$ref":"#/components/schemas/AllowDeliveryENUM"},"allowDeliveryDate":{"format":"date-time","type":"string"},"availableForWeb":{"type":"boolean","description":"The product is available for web sale"},"brandUid":{"$ref":"#/components/schemas/UID"},"brandName":{"type":"string"},"calculationFactor":{"type":"integer"},"categoryUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}},"createdAt":{"format":"date-time","type":"string"},"customerAgeRestriction":{"type":"integer","description":"Age restriction for the customer. 0 = no restriction"},"description":{"type":"string"},"discontinuedFrom":{"type":"string","format":"date-time","nullable":true},"externalId":{"type":"string"},"externalInfo":{"type":"string"},"externalUrl":{"type":"string"},"gtins":{"type":"array","items":{"$ref":"#/components/schemas/ProductGtinResponseSchema"}},"height":{"type":"integer"},"internalInfo":{"type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"ledgerNumber":{"description":"Ledger number must be a valid number with possible leading zeros","type":"string"},"length":{"type":"integer"},"name":{"type":"string"},"optionProperties":{"description":"A list or propertyUids that extends the product with new properties.","type":"array","items":{"$ref":"#/components/schemas/ProductPropertyResponseSchema"}},"priceOverride":{"type":"boolean"},"productGroupUid":{"$ref":"#/components/schemas/UID"},"productGroupPath":{"type":"array","items":{"$ref":"#/components/schemas/ProductGroupPathSchema"}},"productUid":{"$ref":"#/components/schemas/UID"},"productType":{"$ref":"#/components/schemas/ProductTypeENUM"},"recommendedRetailPrice":{"type":"integer"},"requiredVariantPropertyUids":{"description":"A list of propertyUids that are required for each variant of this product.","type":"array","items":{"type":"string"}},"serialNoRequired":{"$ref":"#/components/schemas/SerialNoRequiredENUM"},"shortDescription":{"type":"string"},"sku":{"type":"string"},"manufacturerSku":{"type":"string"},"suppliers":{"type":"array","items":{"$ref":"#/components/schemas/ProductSupplierResponseSchema"}},"textProperties":{"description":"A list or propertyUids that extends the product with new properties.","type":"array","items":{"$ref":"#/components/schemas/ProductPropertyResponseSchema"}},"unitLabel":{"type":"string"},"variantProductUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}},"variantParentProductUid":{"$ref":"#/components/schemas/UID"},"variants":{"description":"A list of productUids that make up variants of this product.","type":"array","deprecated":true,"items":{"type":"string"}},"vatCodeUid":{"$ref":"#/components/schemas/UID"},"weight":{"type":"integer"},"width":{"type":"integer"},"links":{"type":"array","description":"List of links owned by this product","items":{"$ref":"#/components/schemas/ProductLinkResponseSchema"}},"parents":{"type":"array","description":"List of parents to this product","items":{"$ref":"#/components/schemas/ProductLinkResponseSchema"}},"requirements":{"$ref":"#/components/schemas/ProductRequirementResponseSchema"},"coverImage":{"$ref":"#/components/schemas/CoverImageSchema"},"imageCount":{"type":"integer"},"relevance":{"type":"number"},"visibility":{"$ref":"#/components/schemas/ProductVisibilityENUM"},"commission":{"type":"integer","description":"A commission to be paid to the supplier after delivery."},"productWarrantyUid":{"$ref":"#/components/schemas/UID"},"excludeFromStatistics":{"type":"boolean"},"purchasePrice":{"type":"integer"},"numberOfPieces":{"type":"integer","description":"Indicates how many packages/parts the product consists of."},"requireCustomer":{"type":"boolean","deprecated":true},"limitToStoreUids":{"$ref":"#/components/schemas/LimitToStoreUidsSchema"}}},"AllowSaleENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| YES | Allow the product to be sold|\n| NO | Do not allow the product to be sold|\n| NOT_BEFORE_DATE | Do not allow the product to be sold before a specified date|","enum":["YES","NO","NOT_BEFORE_DATE"],"title":"AllowSaleENUM","type":"string"},"AllowDeliveryENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| YES | Allow the product to be delivered|\n| NO | Do not allow the product to be delivered|\n| NOT_BEFORE_DATE | Do not allow the product to be delivered before a specified date|","enum":["YES","NO","NOT_BEFORE_DATE"],"title":"AllowDeliveryENUM","type":"string"},"ProductGtinResponseSchema":{"title":"ProductGtinResponseSchema","type":"object","required":["gtin","primary","type"],"properties":{"gtin":{"type":"string"},"primary":{"type":"boolean"},"type":{"type":"string"}}},"ProductPropertyResponseSchema":{"title":"ProductPropertyResponseSchema","type":"object","required":["productPropertyUid","propertyName","propertyOptionName","propertyType","propertyUid","propertyOptionUid","required"],"properties":{"productPropertyUid":{"$ref":"#/components/schemas/UID"},"propertyName":{"type":"string"},"propertyOptionName":{"type":"string"},"propertyType":{"$ref":"#/components/schemas/PropertyTypeENUM"},"propertyText":{"type":"string","description":"Only in use with TEXT properties."},"propertyUid":{"$ref":"#/components/schemas/UID"},"propertyOptionUid":{"$ref":"#/components/schemas/UID"},"required":{"type":"boolean"}}},"PropertyTypeENUM":{"description":"Describes the type of property a product can have.\n\n|ENUM      | Description |\n| ---------------- | ------------ |\n| TEXT | A single text line such as an URL to a product manual or a reminder to the cashier/salesperson.|\n| SINGLESELECT | A list of values where a product can only have one at any given time.|\n| MULTISELECT | A list of values where a product can have none or several at any given time.|","enum":["TEXT","SINGLESELECT","MULTISELECT"],"title":"PropertyTypeENUM","type":"string"},"ProductGroupPathSchema":{"title":"ProductGroupPathSchema","type":"object","properties":{"name":{"type":"string"},"parentUid":{"$ref":"#/components/schemas/UID"},"productGroupUid":{"$ref":"#/components/schemas/UID"}},"required":["name","parentUid","productGroupUid"]},"ProductTypeENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| STOCK | Price*quantity|\n| NO_STOCK | No quantity|\n| CONFIGURABLE | Master configurable product|\n| FLOWGIFTCARD | Flow Giftcard product|\n| NON_PHYSICAL | Non physical product|\n| PACKAGE_FIXED | Packaged product with fixed content|\n| PACKAGE_DYNAMIC | Packaged product with dynamic content|","enum":["STOCK","NO_STOCK","CONFIGURABLE","FLOWGIFTCARD","NON_PHYSICAL","PACKAGE_FIXED","PACKAGE_DYNAMIC"],"minLength":1,"title":"ProductTypeENUM","type":"string"},"SerialNoRequiredENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| NO | No Serial number required|\n| ON_SALE | Can register serial number when selling a product (Serial number is optional)|\n| ON_RECEIVE | Must register serial number when receiving and selling product (Serial number is required)|","enum":["NO","ON_SALE","ON_RECEIVE"],"title":"SerialNoRequiredENUM","type":"string"},"ProductSupplierResponseSchema":{"title":"ProductSupplierResponseSchema","type":"object","properties":{"name":{"type":"string"},"supplierUid":{"$ref":"#/components/schemas/UID"}},"required":["name","supplierUid"]},"ProductLinkResponseSchema":{"title":"ProductLinkResponseSchema","allOf":[{"properties":{"productLinkUid":{"$ref":"#/components/schemas/UID"}},"required":["productLinkUid"],"type":"object"},{"$ref":"#/components/schemas/ProductLinkRequestSchema"}]},"ProductLinkRequestSchema":{"title":"ProductLinkRequestSchema","type":"object","properties":{"linkType":{"$ref":"#/components/schemas/ProductLinkTypeENUM"},"productUid":{"$ref":"#/components/schemas/UID"},"productLinkUid":{"$ref":"#/components/schemas/UID"}},"required":["linkType","productUid"]},"ProductLinkTypeENUM":{"enum":["INSURANCE","ALTERNATIVE","ACCESSORY","SPARE_PART","SERVICE"],"title":"ProductLinkTypeENUM","type":"string"},"ProductRequirementResponseSchema":{"title":"ProductRequirementResponseSchema","type":"object","description":"ProductRequirementResponseSchema","required":["requireCustomer","requireCustomerMobile","requireCustomerEmail","requireCustomerDeliveryAddress"],"properties":{"requireCustomer":{"type":"boolean"},"requireCustomerMobile":{"type":"boolean"},"requireCustomerEmail":{"type":"boolean"},"requireCustomerDeliveryAddress":{"type":"boolean"}}},"CoverImageSchema":{"title":"CoverImageSchema","type":"object","properties":{"productMediaUid":{"$ref":"#/components/schemas/UID"},"mainUrl":{"type":"string"},"thumbnailUrl":{"type":"string"}},"required":["productMediaUid","mainUrl","thumbnailUrl"]},"ProductVisibilityENUM":{"type":"string","title":"ProductVisibilityENUM","enum":["ALWAYS_VISIBLE","NOT_VISIBLE"]},"LimitToStoreUidsSchema":{"title":"LimitToStoreUidsSchema","type":"array","description":"Limit the product to be used for a list of storeUids.","items":{"$ref":"#/components/schemas/UID"}},"ProductVariantRequestSchema":{"title":"ProductVariantRequestSchema","type":"object","properties":{"productUid":{"$ref":"#/components/schemas/UID"},"productVariantUid":{"$ref":"#/components/schemas/UID"}},"required":["productUid"]}},"requestBodies":{"ProductVariantRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductVariantRequestSchema"}}}}}},"paths":{"/tenants/{tenantUid}/products/{productUid}/variants":{"post":{"summary":"Add a product as variant on a configurable product","operationId":"post-tenant-product-variants","responses":{"200":{"$ref":"#/components/responses/ProductVariantResponse"}},"description":"Add a product as variant on a configurable product\n\nThe productUid in the path should be the configurable product.\nThe productUid in the request body is the product that you want to add as a variant","requestBody":{"$ref":"#/components/requestBodies/ProductVariantRequest"},"tags":["ProductProperties"]}}}}
```

## Delete a product variant

> Deletes a product variant.

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"ProductProperties","description":"ProductProperties"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Accesstoken recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}}},"paths":{"/tenants/{tenantUid}/products/{productUid}/variants/{productVariantUid}":{"delete":{"description":"Deletes a product variant.","operationId":"delete-tenant-product-variant-details","responses":{"204":{"description":"No Content"}},"summary":"Delete a product variant","tags":["ProductProperties"]}}}}
```

## Get list of properties for a product

> Get list of properties for a product

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"ProductProperties","description":"ProductProperties"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Accesstoken recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"parameters":{"pageNumberQuery":{"description":"Reference to a specific page in a result set.","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},"pageSizeQuery":{"description":"The number of items per page in a result set.","in":"query","name":"pageSize","required":false,"schema":{"type":"integer"}},"sortByQuery":{"description":"Defines which field the resource list is sorted by.","in":"query","name":"sortBy","required":false,"schema":{"type":"string"}},"sortDirectionQuery":{"description":"Reference to a sort direction","explode":false,"in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/SortDirectionENUM"},"style":"form"}},"schemas":{"SortDirectionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| ASC | Sort in ascending order|\n| DESC | Sort in descending order|\n","enum":["ASC","DESC"],"title":"SortDirectionENUM","type":"string"},"ProductPropertyResponseSchema":{"title":"ProductPropertyResponseSchema","type":"object","required":["productPropertyUid","propertyName","propertyOptionName","propertyType","propertyUid","propertyOptionUid","required"],"properties":{"productPropertyUid":{"$ref":"#/components/schemas/UID"},"propertyName":{"type":"string"},"propertyOptionName":{"type":"string"},"propertyType":{"$ref":"#/components/schemas/PropertyTypeENUM"},"propertyText":{"type":"string","description":"Only in use with TEXT properties."},"propertyUid":{"$ref":"#/components/schemas/UID"},"propertyOptionUid":{"$ref":"#/components/schemas/UID"},"required":{"type":"boolean"}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"PropertyTypeENUM":{"description":"Describes the type of property a product can have.\n\n|ENUM      | Description |\n| ---------------- | ------------ |\n| TEXT | A single text line such as an URL to a product manual or a reminder to the cashier/salesperson.|\n| SINGLESELECT | A list of values where a product can only have one at any given time.|\n| MULTISELECT | A list of values where a product can have none or several at any given time.|","enum":["TEXT","SINGLESELECT","MULTISELECT"],"title":"PropertyTypeENUM","type":"string"},"Paging":{"description":"totalCount The total number of items in the result set.\n\npageSize The number of items per page.\n\npageNumber The current page in the result set.","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["totalCount","pageSize","pageNumber"],"title":"Paging","type":"object"}},"responses":{"ProductPropertyListResponse":{"description":"Example response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProductPropertyResponseSchema"}},"paging":{"$ref":"#/components/schemas/Paging"}},"required":["items","paging"]}}}}}},"paths":{"/tenants/{tenantUid}/products/{productUid}/properties":{"get":{"description":"Get list of properties for a product","operationId":"get-tenant-product-properties","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"}],"responses":{"200":{"$ref":"#/components/responses/ProductPropertyListResponse"}},"summary":"Get list of properties for a product","tags":["ProductProperties"]}}}}
```

## Set a property to a product

> Set a property to a product

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"ProductProperties","description":"ProductProperties"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Accesstoken recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"ProductPropertyResponse":{"description":"Example response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPropertyResponseSchema"}}}}},"schemas":{"ProductPropertyResponseSchema":{"title":"ProductPropertyResponseSchema","type":"object","required":["productPropertyUid","propertyName","propertyOptionName","propertyType","propertyUid","propertyOptionUid","required"],"properties":{"productPropertyUid":{"$ref":"#/components/schemas/UID"},"propertyName":{"type":"string"},"propertyOptionName":{"type":"string"},"propertyType":{"$ref":"#/components/schemas/PropertyTypeENUM"},"propertyText":{"type":"string","description":"Only in use with TEXT properties."},"propertyUid":{"$ref":"#/components/schemas/UID"},"propertyOptionUid":{"$ref":"#/components/schemas/UID"},"required":{"type":"boolean"}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"PropertyTypeENUM":{"description":"Describes the type of property a product can have.\n\n|ENUM      | Description |\n| ---------------- | ------------ |\n| TEXT | A single text line such as an URL to a product manual or a reminder to the cashier/salesperson.|\n| SINGLESELECT | A list of values where a product can only have one at any given time.|\n| MULTISELECT | A list of values where a product can have none or several at any given time.|","enum":["TEXT","SINGLESELECT","MULTISELECT"],"title":"PropertyTypeENUM","type":"string"},"ProductPropertyRequestSchema":{"description":"Add a new product option to a product. If a property is of type TEXT, propertyText is mandatory, else propertyOptionUid is mandatory","title":"ProductPropertyRequestSchema","type":"object","properties":{"propertyUid":{"$ref":"#/components/schemas/UID"},"propertyOptionUid":{"$ref":"#/components/schemas/UID"},"propertyText":{"type":"string"},"productPropertyUid":{"$ref":"#/components/schemas/UID"}},"required":["propertyUid"]}},"requestBodies":{"ProductPropertyRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPropertyRequestSchema"}}}}}},"paths":{"/tenants/{tenantUid}/products/{productUid}/properties":{"post":{"summary":"Set a property to a product","operationId":"post-tenant-product-properties","responses":{"200":{"$ref":"#/components/responses/ProductPropertyResponse"}},"description":"Set a property to a product","requestBody":{"$ref":"#/components/requestBodies/ProductPropertyRequest"},"tags":["ProductProperties"]}}}}
```

## Remove a product property from a product

> Deletes a property from a product.

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"ProductProperties","description":"ProductProperties"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Accesstoken recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}}},"paths":{"/tenants/{tenantUid}/products/{productUid}/properties/{productPropertyUid}":{"delete":{"description":"Deletes a property from a product.","operationId":"delete-tenant-product-property-details","responses":{"204":{"description":"No Content"}},"summary":"Remove a product property from a product","tags":["ProductProperties"]}}}}
```

## Update a text property for a product

> Update a text property for a product

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"ProductProperties","description":"ProductProperties"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Accesstoken recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"ProductPropertyResponse":{"description":"Example response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPropertyResponseSchema"}}}}},"schemas":{"ProductPropertyResponseSchema":{"title":"ProductPropertyResponseSchema","type":"object","required":["productPropertyUid","propertyName","propertyOptionName","propertyType","propertyUid","propertyOptionUid","required"],"properties":{"productPropertyUid":{"$ref":"#/components/schemas/UID"},"propertyName":{"type":"string"},"propertyOptionName":{"type":"string"},"propertyType":{"$ref":"#/components/schemas/PropertyTypeENUM"},"propertyText":{"type":"string","description":"Only in use with TEXT properties."},"propertyUid":{"$ref":"#/components/schemas/UID"},"propertyOptionUid":{"$ref":"#/components/schemas/UID"},"required":{"type":"boolean"}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"PropertyTypeENUM":{"description":"Describes the type of property a product can have.\n\n|ENUM      | Description |\n| ---------------- | ------------ |\n| TEXT | A single text line such as an URL to a product manual or a reminder to the cashier/salesperson.|\n| SINGLESELECT | A list of values where a product can only have one at any given time.|\n| MULTISELECT | A list of values where a product can have none or several at any given time.|","enum":["TEXT","SINGLESELECT","MULTISELECT"],"title":"PropertyTypeENUM","type":"string"},"ProductTextPropertyUpdateRequestSchema":{"description":"Update a new text option to a product","title":"ProductTextPropertyUpdateRequestSchema","type":"object","properties":{"propertyText":{"type":"string"}},"required":["propertyText"]}},"requestBodies":{"ProductTextPropertyUpdateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductTextPropertyUpdateRequestSchema"}}}}}},"paths":{"/tenants/{tenantUid}/products/{productUid}/text-properties/{propertyUid}":{"put":{"summary":"Update a text property for a product","operationId":"put-tenant-product-text-property-details","responses":{"200":{"$ref":"#/components/responses/ProductPropertyResponse"}},"description":"Update a text property for a product","requestBody":{"$ref":"#/components/requestBodies/ProductTextPropertyUpdateRequest"},"tags":["ProductProperties"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flowretail.com/docs/developers/api-documentation/productproperties.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
