# Atualiza os atributos Atualiza os atributos associados ao produto. Endpoint: PUT /api/v3/products/{productId}/attributes Version: 3.0.0 Security: OAuth2 ## Header parameters: - `CPlug-Company-Id` (number, required) Id da Empresa (Company). Você pode localizar os IDs das empresas no _endpoint_ de listagem de empresas. Example: 12 ## Path parameters: - `productId` (integer, required) ID do produto. ## Request fields (application/json): - `attributes` (array) - `attributes.attribute_id` (integer) Identificador único do atributo. Example: 123 - `attributes.price_calculation_type` (string) Tipo de calculo de preço a ser aplicado nas opções do atributo. - highest: calcula pelo maior valor. - average: calcula pela média dos valores. - proportional: calcula proporcionalmente os valores. - cumulative: calcula a soma dos valores. Enum: "highest", "average", "proportional", "cumulative" - `attributes.min_choices` (integer) Número mínimo de opções que devem ser seleciona no atributo. Se o número mínimo for 0 torna a seleção de atributos opcional, se o número for maior que 0 torna a seleção de atributos obrigatória até o número mínimo de opções selecionadas. - `attributes.max_choices` (integer) Número máximo de opções que devem ser seleciona no atributo. O número máximo deve ser igual ou maior que o número mínimo. Example: 1 - `attributes.charge_from_quantity` (integer) Indica a partir de qual quantidade de atributos deve iniciar o calculo de cobrança pelo atributo selecionado. Se charge_from_quantity for 2, e o forem seleciona 3 opções para o atributo no valor de 10 BRL com o tipo de calculo cumulative, o valor do atributo será equivalente à 10 BRL, e não 30 BRL, pois ele só começa a ser calculado a partir da opção número 3. - `attributes.position` (integer) Indica a posição de ordenação do atributo em listagens Example: 1 - `attributes.options` (array) Lista de opções do atributo. - `attributes.options.option_id` (integer) Identificador único da opção. Example: 123 - `attributes.options.barcode` (string) Código de barras da opção do atributo. Example: "1234567890123" - `attributes.options.unitary_value` (object) Valor unitário da opção na associação do atributo com o produto. Esse valor pode ser diferente do valor do template da opção. - `attributes.options.unitary_value.amount` (number, required) Valor expresso como um número decimal das principais unidades monetárias Example: 99.95 - `attributes.options.unitary_value.currency` (string, required) Código de moeda de 3 letras conforme definido pela ISO-4217 Example: "BRL" - `attributes.options.position` (integer) Indica a posição de ordenação da opção em listagens. Example: 1 - `attributes.options.components` (array) Lista de opções do atributo. - `attributes.options.components.component_id` (integer) Identificador único do componente. Example: 123 - `attributes.options.components.amount` (integer) Quantidade de componentes associados à opção. Example: 1 - `attributes.options.components.is_optional` (boolean) Indica se a opção é opcional. ## Response 200 fields (application/json): - `data` (object) - `data.attributes` (array) - `data.attributes.attribute_id` (integer) Identificador único do atributo. Example: 123 - `data.attributes.name` (string) Nome do atributo. Example: "Nome do atributo" - `data.attributes.code` (string) Código do atributo. Esse código deve ser único. Exemplo: COD-CP-01 Example: "COD-CP-01" - `data.attributes.price_calculation_type` (string) Tipo de calculo de preço a ser aplicado nas opções do atributo. - highest: calcula pelo maior valor. - average: calcula pela média dos valores. - proportional: calcula proporcionalmente os valores. - cumulative: calcula a soma dos valores. Enum: "highest", "average", "proportional", "cumulative" - `data.attributes.min_choices` (integer) Número mínimo de opções que devem ser seleciona no atributo. Se o número mínimo for 0 torna a seleção de atributos opcional, se o número for maior que 0 torna a seleção de atributos obrigatória até o número mínimo de opções selecionadas. - `data.attributes.max_choices` (integer) Número máximo de opções que devem ser seleciona no atributo. O número máximo deve ser igual ou maior que o número mínimo. Example: 1 - `data.attributes.charge_from_quantity` (integer) Indica a partir de qual quantidade de atributos deve iniciar o calculo de cobrança pelo atributo selecionado. Se charge_from_quantity for 2, e o forem seleciona 3 opções para o atributo no valor de 10 BRL com o tipo de calculo cumulative, o valor do atributo será equivalente à 10 BRL, e não 30 BRL, pois ele só começa a ser calculado a partir da opção número 3. - `data.attributes.position` (integer) Indica a posição de ordenação do atributo em listagens Example: 1 - `data.attributes.options` (array) Lista de opções do atributo. - `data.attributes.options.option_id` (integer) Identificador único da opção. Example: 123 - `data.attributes.options.barcode` (string) Código de barras da opção do atributo. Example: "1234567890123" - `data.attributes.options.name` (string) Nome da opção. Example: "Nome da opção" - `data.attributes.options.code` (string) Código da opção. Esse código deve ser único. Exemplo: COD-CP-01 Example: "COD-CP-01" - `data.attributes.options.description` (string) Descrição da opção. Example: "Descrição da opção" - `data.attributes.options.unitary_value` (object) Valor unitário da opção na associação do atributo com o produto. Esse valor pode ser diferente do valor do template da opção. - `data.attributes.options.unitary_value.amount` (number, required) Valor expresso como um número decimal das principais unidades monetárias Example: 99.95 - `data.attributes.options.unitary_value.currency` (string, required) Código de moeda de 3 letras conforme definido pela ISO-4217 Example: "BRL" - `data.attributes.options.image_url` (null,string) URL da imagem da opção. Example: "https://images.connectplug.com.br/4f01c1252eea.jpg" - `data.attributes.options.position` (integer) Indica a posição de ordenação da opção em listagens. Example: 1 - `data.attributes.options.created_at` (string) Data da última criação. Example: "2020-01-01T09:00:00-03:00" - `data.attributes.options.updated_at` (string) Data da última atualização. Example: "2020-01-01T09:00:00-03:00" - `data.attributes.options.components` (array) Lista de opções do atributo. - `data.attributes.options.components.amount` (integer) Quantidade de componentes associados à opção. Example: 1 - `data.attributes.options.components.is_optional` (boolean) Indica se a opção é opcional. - `data.attributes.options.components.product` (object) Componente associado à opção. - `data.attributes.options.components.product.id` (integer) Identificador único do componente. Example: 123 - `data.attributes.options.components.product.name` (string) Nome do componente. Example: "Componente 1" ## Response 400 fields (application/json): - `code` (string, required) Código de erro. Example: "missing_headers" - `message` (string) Descrição do erro. Example: "error message" - `meta` (array) Dados adicionais sobre o erro. ## Response 422 fields (application/json): - `code` (string, required) Código de erro. Example: "uneditable_entity" - `message` (string) Descrição do erro. Example: "description error" - `meta` (array) Dados adicionais sobre o erro. - `meta.field` (string, required) Nome do campo no qual existe um erro de validação. Example: "name" - `meta.validations` (array) - `meta.validations.type` (string, required) Tipo da validação aplicada. Example: "Required" - `meta.validations.value` (array) Tipo de valor aplicável (esse campo pode ser vazio). ## Response 401 fields ## Response 404 fields