# Cria ou atualiza produtos Cria ou atualiza produtos em um aplicativo. Endpoint: PUT /api/v3/apps/{appId}/items 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. ## Path parameters: - `appId` (integer, required) ID do aplicativo. ## Request fields (application/json): - `items` (array) Representa a lista de produtos em um aplicativo a serem criados ou atualizados. - `items.id` (integer, required) Identificador único do produto. Você pode localizar os IDs dos produtos no _endpoint_ de [lista de produtos](#tag/Products/operation/get-products). Example: 123 - `items.position` (integer, required) Posição deste produto que irá aparecer no aplicativo. Example: 1 - `items.shifts` (array) Lista de horário que está disponível este produto no aplicativo. - `items.shifts.week_day` (string, required) Dia da semana do turno de horário de disponibilidade. - sunday: Domingo; - monday: Segunda-feira; - tuesday: Terça-feira; - wednesday: Quarta-feira; - thursday: Quinta-feira; - friday: Sexta-feira; - saturday: Sábado; Example: "tuesday" - `items.shifts.start` (string, required) Hora de início do turno de horário de disponibilidade no formato H:i. Example: "09:00" - `items.shifts.end` (string, required) Hora de fim do turno de horário de disponibilidade no formato H:i. Example: "18:00" - `items.category_id` (integer) Identificador único da categoria de um produto. Você pode localizar os IDs das categorias de produto no _endpoint_ de [lista de categorias](#tag/Categories/operation/get-categories). Example: 456 - `items.is_available_for_sale` (boolean) Indica se está disponível para a venda ou não deste produto no aplicativo. Example: true ## Response 200 fields (application/json): - `data` (object) - `data.items` (array) Representa a lista de produtos em um aplicativo a serem criados ou atualizados. - `data.items.product` (object) Informações sobre o produto. - `data.items.product.id` (integer, required) Identificador único do produto. Você pode localizar os IDs dos produtos no _endpoint_ de [lista de produtos](#tag/Products/operation/get-products). Example: 123 - `data.items.product.name` (string, required) Nome do produto. Example: "Banana" - `data.items.product.sku` (string, required) Código do produto. Example: "COD001" - `data.items.product.category` (object) Categoria do produto. - `data.items.product.category.id` (integer) Identificador único da categoria. Example: 1 - `data.items.product.category.name` (string) Nome da categoria. Example: "Nome da categoria" - `data.items.product.image_url` (null,string) URL da imagem principal do produto. Example: "https://images.connectplug.com.br/4f01c1252eea.jpg" - `data.items.product.stock_settings` (object) Configurações de estoque do produto. - `data.items.product.stock_settings.is_stock_control` (boolean) Se este produto possui um controle de estoque. Example: true - `data.items.product.unitary_value` (object, required) Preço do produto. Esse campo pode ser opcional quando o produto for do tipo "Combo". - `data.items.product.unitary_value.amount` (number, required) Valor expresso como um número decimal das principais unidades monetárias Example: 99.95 - `data.items.product.unitary_value.currency` (string, required) Código de moeda de 3 letras conforme definido pela ISO-4217 Example: "BRL" - `data.items.category` (object) Representa uma categoria de um produto. - `data.items.category.id` (integer) Identificador único do produto. Example: 123 - `data.items.category.name` (string) Nome do aplicativo. Example: "Totem" - `data.items.position` (integer, required) Posição deste produto que irá aparecer no aplicativo. Example: 1 - `data.items.shifts` (array) Lista de horário que está disponível este produto no aplicativo. - `data.items.shifts.week_day` (string, required) Dia da semana do turno de horário de disponibilidade. - sunday: Domingo; - monday: Segunda-feira; - tuesday: Terça-feira; - wednesday: Quarta-feira; - thursday: Quinta-feira; - friday: Sexta-feira; - saturday: Sábado; Example: "tuesday" - `data.items.shifts.start` (string, required) Hora de início do turno de horário de disponibilidade no formato H:i. Example: "09:00" - `data.items.shifts.end` (string, required) Hora de fim do turno de horário de disponibilidade no formato H:i. Example: "18:00" - `data.items.is_available_for_sale` (boolean) Indica se está disponível para a venda ou não deste produto no aplicativo. Example: true - `data.items.option_type` (object) Informações sobre as opções do produto relacionado ao aplicativo. - `data.items.option_type.type` (string) Tipo de opção do produto. - simple: Produto sem variações ou grades. - composition: Produto com variações. - grid: Produto com grades. Enum: "simple", "composition", "grid" - `data.items.option_type.count` (integer) Quantidade de opções disponíveis para este produto. Para cada type temos: - simple: Sempre será 0 - composition: Será a quantidade de variações disponíveis para este produto. - grid: Será a quantidade de grades disponíveis para este produto. - `data.items.unitary_value` (object) Preço do produto vinculado ao aplicativo. - `data.items.created_at` (string) Data da última criação do produto no aplicativo. Example: "2020-01-01T09:00:00-03:00" - `data.items.updated_at` (string) Data da última atualização do produto no aplicativo. 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