---
title: Coleção Moda
slug: colecao-moda
docTags: 
createdAt: 2024-10-07T17:20:37.502Z
---

## Objetivo/Resumo

Coleção moda é uma empresa de inovação que oferece soluções tecnológicas por meio de um software para empresas do ramo têxtil e da moda.

### Criando um fluxo utilizando o conector Coleção Moda

Para utilizar o conector da conexão moda, é necessário incluir no cabeçalho o Authorization com o Bearer Token do cliente dentro da Coleção Moda.

### Configurando fluxo Coleção Moda

Crie um fluxo e arraste o conector Coleção Moda para o canvas.
OBS: Clique aqui e acesse nosso passo a passo para saber como criar um fluxo.
Selecione o conector e na aba de Parametrização preencha os seguintes parâmetros de configuração:
• Recurso: entidade para qual será realizada a ação. No momento o conector dispões quatro recursos sendo eles, Fluxos de Execução, Fornecedores, Produtos e Tecidos;

```text
• Operação: ação que será realizada para o recurso selecionado.
• Operações disponíveis para recurso Fluxos de Execução:
    ◦ Atualizar Fluxo de Execução: requer o um body com a mensagem a ser atualizada no workflow e requer também o ID do Workflow a ser atualizado;

• Operações disponiveis para recurso Fornecedores:
• Criar ou Atualizar Fornecedor: requer um body com o json que contém as informações dos fornecedores a ser criados ou atualizados, aceita até 10 fornecedores por body.

• Operações disponiveis para recurso Produto:
• Buscar Produto: requer o ID do produto.

• Operações disponiveis para recurso Tecidos:
• Criar ou Atualizar Tecidos: requer um body com o json que contém as informações dos fornecedores a ser criados ou atualizados, aceita até 100 tecidos por body.

```

Em Cabeçalhos inclua o Authorization com o Bearer Token do cliente dentro da Coleção Moda.

## Na prática

Neste tópico criaremos dois exemplos de fluxos utilizando o conector da Coleção Moda.

### Produto

O fluxo terá apenas um passo que será responsável pela busca de um produto na Coleção Moda.



::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/gD1CodFj4ymXrRrq6_UBZ_image.png" size="50" width="491" height="310" position="center" darkWidth="491" darkHeight="310" showCaption="false"}

### Passo 'busca-produto'

Este primeiro e único passo irá realizar a busca de um produto na Coleção Moda. Assim ficará a Parametrização do busca-pedido:

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/q29h9BOtTBfg_jtVJx-P6_image-1.png" size="50" width="422" height="643" position="center" darkWidth="422" darkHeight="643" showCaption="false"}

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/kMT-sb1uh6UCjCDMevkek_image-2.png" size="78" width="971" height="272" position="center" darkWidth="971" darkHeight="272" showCaption="false"}

### Conclusão

Com o passo configurado basta disparar o fluxo:

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/FKBpf-adQz_4xPoyM_rvz_image-3.png)

Após o disparo, o resultado do fluxo aparecerá em realtime no canvas:

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/K-4WX6PLdaQqMSdBhdGhf_image-4.png)

Ao clicar em detalhes, temos a requisição e a resposta retornada pela Coleção Moda:

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/SguQhcASacs608AgEgxRb_image-5.png)

## Fornecedores e Tecidos

O fluxo terá 10 passos, porém 2 são os os enviam os dados para a Coleção Moda, os quais serão exemplificados abaixo:

### Passo “envia-fornecedores”

Este passo insere ou atualiza o cadastro de fornecedores na Coleção Moda. Assim ficará a Parametrização do envia-fornecedores:

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/rmSftlCLFWX21z1lS2Dgz_image-6.png" size="50" width="422" height="664" position="center" showCaption="false"}

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/N2UgnY2tHnyQYK-FzNmHW_image-2.png" size="78" width="971" height="272" position="center" showCaption="false"}

Para tratar os dados e montar json da requisição que a operação espera utilizamos o Template:
Assim ficou o Template:

```json
{{$i := add1 .steps.loopf.body.index | int64 -}}
{{$inicio := sub (mul 10 $i) 10 -}}
{{$fim := sub (mul 10 $i) 1 -}}
{{$corpo := .steps.payload.body.suppliers -}}
{{$suppliers := list -}}
{
    "suppliers": [
        {{range $index, $val := $corpo -}}
            {{if ge $index $inicio}}
                {{if le $index $fim -}}
	                {{$suppliers = append $suppliers $val -}}
            {   {end -}}
	    {   {end -}}
	    {{end -}}
        {{range $index, $forncedor := $suppliers -}}
            {{if ne $i 0}}
                {{if $index -}}
                    ,
                {{end -}}
                {{$forncedor | toJson -}}
            {{end -}}
        {{end -}}
  ]
}
```

### Passo “envia-insumos”

Este passo insere ou atualiza o cadastro de tecidos na Coleção Moda. Assim ficará a Parametrização do envia-insumos:

Para tratar os dados e montar json da requisição que a operação espera utilizamos o Template:
Assim ficou o Template:

```json
{{$corpo := .steps.select.body -}}
{{$i := add1 .steps.loopm.body.index -}}
{{$inicio := sub (mul 100 $i) 100 -}}
{{$fim := sub (mul 100 $i) 1 -}}
{{$materials := list -}}
  {{range $index, $val := $corpo -}}
    {{if ge $index $inicio}}
      {{if le $index $fim -}}
	      {{$materials = append $materials $val -}}
      {{end -}}
	  {{end -}}
	{{end -}}
{
	"materials": [
    {{range $index, $material := $materials -}}
      {{if ne $i 0 -}}
        {{if $index -}}
          ,
        {{end -}}
        {{$input_type := ""}}
          {{ if eq ($material.GRUPO | trim ) "AVIAMENTO" -}}
            {{$input_type = "trim"}}
          {{else -}}
            {{$input_type = "fabric" -}}
          {{end -}}
        {{$lista_composicao := splitList "," (regexFindAll `\d+%\s*([A-Za-z]+)` (trim ($material.DESC_COMPOSICAO)) -1 | toString | replace "%" "," | replace " " "," | replace "%" "" | replace "[" "" | replace "]" "") -}}
        {{$texto_inicial := regexFindAll `\d+%\s*([A-Za-z]+)` (trim ($material.DESC_COMPOSICAO)) -1 | toString | replace "%" " " | replace "[" "" | replace "]" "" -}}

{
      "code":  "{{$material.MATERIAL | trim}}",
      "integration_id": "{{trim (cat $material.MATERIAL $material.COR_MATERIAL )}}",
      "colors": [
        {
          "code": "{{trim ($material.COR_MATERIAL)}}",
          "hex": "fffffe", 
          "integration_id": "{{trim ($material.COR_MATERIAL)}}",
          "name": "{{trim ($material.DESC_COR_MATERIAL)}}",
          "pantone": ""
        }
      ],
      "compositions": [
          {{if gt (len $lista_composicao) 1 -}}
          
          {{$list_quantity := regexFindAll `\b\d+(\.\d+)?\b` ($texto_inicial) -1 -}}
          {{$list_name := splitList "," (trim (trimAll "," (regexReplaceAll (regexFindAll `\b\d+(\.\d+)?\b` $texto_inicial -1 | toString | replace " " "$") $texto_inicial ",") | replace ",," "," | replace ",," "," | replace ",," "," | replace ",," "," | replace ",," "," | replace " ," ",")) -}}
          
          {{range $index, $val := $list_name -}} {{if $index -}},{{end -}}
          {
          "name": "{{trim (index $list_name $index) -}}",
          "quantity": {{trim (index $list_quantity $index) -}}
          }
          {{end -}}
          {{else -}}
          {
          "name": "{{trim (index $lista_composicao 0) -}}",
          "quantity": 0
          }
          {{end -}}
      ],
      "description": "", 
      "input_type": "{{$input_type -}}",
      "name": "{{$material.DESC_MATERIAL | trim -}}",
      "supplier_integration_ids": ["{{$material.COD_FORNECEDOR -}}"],
      "weight": 0,
      "width": {{regexFindAll `\d+(\.\d+)?` ($material.LARGURA | replace "," "." ) -1 | toString | replace "[" "" | replace "]" "" | float64 -}},
      "prices" : [
        {
          "type": "{{if eq ( and (eq ($material.UNID_ESTOQUE | trim) ("KG")) (eq ($input_type) ("fabric")) ) true -}}{{"kg" -}}{{else -}}{{if eq ($input_type) ("fabric") -}}{{"meter" -}}{{else -}}{{if eq ( and (eq ($material.UNID_ESTOQUE | trim) ("MT")) (eq ($input_type) ("trim")) ) true -}}{{"meter" -}}{{else -}}{{if eq ( and (eq ($material.UNID_ESTOQUE | trim) ("PAR")) (eq ($input_type) ("trim")) ) true -}}{{"pair" -}}{{else -}}{{if eq ($input_type) ("trim") }}{{"quantity" -}}{{end -}}{{end -}}{{end -}}{{end -}}{{end -}}",
          "value": {{$material.CUSTO_A_VISTA -}}
        }
      ]
    }
{{end -}}
{{end -}}
  ]
}
```

## Conclusão

Com o passo configurado basta disparar o fluxo, não é preciso enviar body, pois os dados serão pegos de passos anteriores que fazem select no banco de dados do cliente e montará o body para envio a CM, abaixo exemplos dos bodys e retornos da CM:

### Passo “envia-fornecedores”

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/Kz0Z6mx21_mGVA7ibC1kV_image-8.png)

### Passo “envia-insumos”

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/86NcIJFbY-0xscLd-q2gV_image-9.png)

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/l9gWw74p0WjQ9n9qx_ro-_image-10.png)

