> ## Documentation Index
> Fetch the complete documentation index at: https://docs.teceo.co/llms.txt
> Use this file to discover all available pages before exploring further.

# integração de produtos

> a integração de produtos na API envolve a importação, consulta e atualização de informações de produtos

## fluxo de importação

<Steps>
  <Step title="iniciar importação">
    envie os produtos para a fila de processamento assíncrono.
  </Step>

  <Step title="verificar status">
    consulte o status da importação até que seja concluída.
  </Step>

  <Step title="consultar produtos">
    liste os produtos importados e obtenha detalhes específicos.
  </Step>

  <Step title="atualizar se necessário">
    atualize informações dos produtos já cadastrados.
  </Step>
</Steps>

## endpoints

### importar produtos

```
PATCH /v1/products/import-products
```

adiciona o processo de importação a uma fila para processamento assíncrono.

#### resposta

```json theme={null}
{
  "integrationImportId": "01224f72-f21c-4fd4-8f73-e1bd77f5261b"
}
```

<Note>
  como o processo é assíncrono, o tempo de conclusão depende do volume de produtos enviados.
</Note>

### verificar status da importação

```
GET /v1/imports/{integrationImportId}
```

<ParamField path="integrationImportId" type="string" required>
  ID do processo de importação retornado na etapa anterior.
</ParamField>

#### resposta de sucesso

```json theme={null}
{
  "integrationImportId": "01224f72-f21c-4fd4-8f73-e1bd77f5261b",
  "message": null,
  "status": "SUCCESS",
  "processedAt": "2025-01-22T17:07:36",
  "type": "PRODUCT"
}
```

<ResponseField name="integrationImportId" type="string">
  ID do processo de importação.
</ResponseField>

<ResponseField name="message" type="string">
  detalhes adicionais em caso de erro.
</ResponseField>

<ResponseField name="status" type="string">
  estado do processo: `SUCCESS`, `ERROR`, etc.
</ResponseField>

<ResponseField name="processedAt" type="string">
  data e hora de conclusão do processo.
</ResponseField>

<ResponseField name="type" type="string">
  tipo da importação (`PRODUCT`).
</ResponseField>

### listar produtos

```
GET /v1/products
```

após a conclusão da importação, os produtos criados podem ser listados. a listagem suporta paginação.

### obter detalhes do produto

```
GET /v1/products/{refId}
```

<ParamField path="refId" type="string" required>
  campo `code` do produto.
</ParamField>

retorna um objeto contendo todas as informações detalhadas do produto.

<Accordion title="exemplo de resposta">
  ```json theme={null}
  {
    "id": "000b97d9-4052-4e24-81b7-e8639ea4dfc4",
    "createdAt": "2024-01-01T00:00:00.000Z",
    "updatedAt": "2024-01-02T00:00:00.000Z",
    "code": "00 0000 000000",
    "name": "example product name",
    "active": false,
    "hasManyColors": false,
    "hasManySizes": false,
    "wholesalePrice": 0.0,
    "retailPrice": 0.0,
    "description": "example description",
    "resume": "example resume",
    "availableForPreOrder": false,
    "preOrderMinimumProduct": 0,
    "preOrderMinimumItem": 0,
    "readyForDeliveryMinimumProduct": 0,
    "readyForDeliveryMinimumItem": 0,
    "integrationCode": "00 0000 000000",
    "collection": {
      "id": "f29bd1eb-9755-43b8-a1dd-94c72949cb80",
      "code": "00000",
      "name": "example collection"
    },
    "category": {
      "id": "8eb333b7-aabf-492a-a9ff-9796075d2c8d",
      "name": "example category",
      "code": "00000"
    },
    "colors": [
      {
        "id": "65eaefbf-fa34-4d94-bf43-96653ff7779b",
        "code": "0079",
        "name": "ROXO",
        "productColorCode": "12 0025 0000350079"
      }
    ]
  }
  ```
</Accordion>

para mais detalhes, consulte o [swagger](https://integration.teceo.co/swagger#/Products%3A/ProductsController_findOneByRef).

### atualizar produto

```
PATCH /v1/products/{productId}
```

<ParamField path="productId" type="string" required>
  UUID do produto.
</ParamField>

<Warning>
  apenas as informações do "cabeçalho" do produto podem ser atualizadas. propriedades como cores, tamanhos e SKUs não são alteráveis por este endpoint.
</Warning>

#### payload

```json theme={null}
{
  "product": {
    "code": "string",
    "name": "string",
    "active": true,
    "barcode": "string",
    "wholesalePrice": 0,
    "retailPrice": 0,
    "description": "string",
    "resume": "string",
    "collectionId": "string",
    "categoryId": "string"
  }
}
```

para mais detalhes, consulte a [documentação no swagger](https://integration.teceo.co/swagger#/Products%3A/ProductsController_patchProductById).
