# Cria novo atributo Cria um novo atributo de produto. Endpoint: POST /api/v3/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 - `Idempotency-Key` (string, required) UUID aleatório gerado por você. Nós utilizamos esse header para evitar duplicidade de registros, ou seja, caso você não tenha recebido a resposta de alguma requisição e mandar o mesmo UUID, nós não duplicaremos o registro. ## Request fields (application/json): - `name` (string, required) Nome do atributo. Example: "Nome do atributo" - `code` (string) Código do atributo. Esse código deve ser único. Exemplo: COD-CP-01 Example: "COD-CP-01" - `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" - `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. - `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 - `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. - `position` (integer) Indica a posição de ordenação do atributo em listagens Example: 1 - `product_count` (integer) Indica a quantidade de produtos que possuem esse atributo Example: 4 - `options` (array) Lista de opções do atributo. - `options.name` (string, required) Nome da opção. Example: "Nome da opção" - `options.code` (string) Código da opção. Esse código deve ser único. Exemplo: COD-CP-01 Example: "COD-CP-01" - `options.description` (string) Descrição da opção. Example: "Descrição da opção" - `options.unitary_value` (object) Valor unitário da opção. - `options.unitary_value.amount` (number, required) Valor expresso como um número decimal das principais unidades monetárias Example: 99.95 - `options.unitary_value.currency` (string, required) Código de moeda de 3 letras conforme definido pela ISO-4217 Example: "BRL" - `options.image_url` (null,string) URL da imagem da opção (mande este parâmetro vazio para excluir a imagem). Example: "https://images.connectplug.com.br/4f01c1252eea.jpg" - `options.position` (integer) Indica a posição de ordenação da opção em listagens. Example: 1 ## Response 201 fields (application/json): - `id` (integer, required) Identificador único do atributo. Example: 123 - `name` (string, required) Nome do atributo. Example: "Nome do atributo" - `code` (string) Código do atributo. Esse código deve ser único. Exemplo: COD-CP-01 Example: "COD-CP-01" - `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" - `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. - `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 - `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. - `position` (integer) Indica a posição de ordenação do atributo em listagens Example: 1 - `product_count` (integer) Indica a quantidade de produtos que possuem esse atributo Example: 4 - `options` (array) Lista de opções do atributo. - `options.id` (integer, required) Identificador único da opção. Example: 123 - `options.name` (string, required) Nome da opção. Example: "Nome da opção" - `options.code` (string) Código da opção. Esse código deve ser único. Exemplo: COD-CP-01 Example: "COD-CP-01" - `options.description` (string) Descrição da opção. Example: "Descrição da opção" - `options.unitary_value` (object) Valor unitário da opção. - `options.unitary_value.amount` (number, required) Valor expresso como um número decimal das principais unidades monetárias Example: 99.95 - `options.unitary_value.currency` (string, required) Código de moeda de 3 letras conforme definido pela ISO-4217 Example: "BRL" - `options.image_url` (null,string) URL da imagem da opção (mande este parâmetro vazio para excluir a imagem). Example: "https://images.connectplug.com.br/4f01c1252eea.jpg" - `options.position` (integer) Indica a posição de ordenação da opção em listagens. Example: 1 - `options.created_at` (string) Data da última criação. Example: "2020-01-01T09:00:00-03:00" - `options.updated_at` (string) Data da última atualização. Example: "2020-01-01T09:00:00-03:00" ## 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