Árvore de páginas


CONTEÚDO

01. VISÃO GERAL

O conector do TOTVS Moda é divido em 2 módulos dos TOTVS Omni.

Conector para Produtos:

O componente que captura informações sobre produtos (atributos, estoque e preço) está disponível no integrador, na forma de um pré processo de uma integração. Veja Modulo Integrador.

O pré processo (conector) realizar uma consulta na API REST do TOTVS Moda por produto, preço e/ou estoque, e a cada página de resultado (no formato JSON) é gerado um arquivo convertido para o formato que o Omni consegue ler e armazenado no FTP.
Ao final da execução do pré processo (depois de tantas páginas quanto forem o resultado da consulta à API do TOTVS Moda) o integrador consome estes arquivos gerando o dado relativo à integração (produto, preço ou estoque).

A parametrização deste componente é feita através da base de dados do Omni, ou via API.


Conector para Pedidos:

O componente que envia os pedidos ao TOTVS Moda está disponível no módulo ERP do TOTVS Omni, e é acionado durante o ciclo de vida do pedido. Veja Ciclo de Vida de Pedido.

A parametrização deste componente é feita pelas propriedades da administração de sites (site principal) 

Para parametrizar o conector TOTVS Moda para o site de um cliente são necessários os seguintes procedimentos.

02. PRODUTO

Para parametrizar o conector TOTVS Moda para produtos é necessário acessar o banco de dados do Omni conforme o procedimento abaixo:

Parâmetros do Conector TOTVS Moda Produtos:

Nome do Parâmetro

Descrição

Formato do Parâmetro e Exemplo

totvsmoda.authn.endpoint

URL do serviço de autenticação do TOTVS Moda.

Campo obrigatório.

Formato: URL

Exemplohttps://treino.bhan.com.br:9443/api/totvsmoda/authorization/v2/token

totvsmoda.authn.clientid

Client ID criado no TOTVS Moda para acesso do TOTVS Omni para consultar produto e informações de preço e estoque.

Campo obrigatório.

Formato: Texto
totvsmoda.authn.clientsecret

Client Secret criado no TOTVS Moda para acesso do TOTVS Omni para consultar produto e informações de preço e estoque.

Campo obrigatório.

Formato: Texto
totvsmoda.authn.username

Usuário criado no TOTVS Moda para acesso do TOTVS Omni para consultar produto e informações de preço e estoque.

Criar este usuário através do componente ADMFM026 do Moda (usuário com o tipo de privilégio “Padrão” e liberar as empresas as quais ele poderá ter acesso.)

Campo obrigatório.

Formato: Texto

totvsmoda.authn.password

Senha do usuário criado no TOTVS Moda para acesso do TOTVS Omni para consultar produto e informações de preço e estoque.

Campo obrigatório

Formato: Texto
totvsmoda.authn.granttype

Tipo de autenticação utilizado pelo serviço de autenticação do TOTVS Moda.

Campo não obrigatório.

Formato: Texto

Caso não seja especificado o valor padrão é password

totvsomni.ftp.base.folder

Diretório base do FTP onde serão armazenados os arquivos de produto, preço e estoque que serão processados pela integração.

Este diretório é a base dos sub diretórios onde serão gerados os arquivos vindos do Moda e convertidos pelo Omni.

Campo não obrigatório.totvsmoda.pedidos.dados.por.channelID

Formato: Texto

Caso não seja especificado o valor padrão é /

totvsomni.ftp.hostHost do servidor de FTP utilizado para armazenar os arquivos de produto, preço e estoque que serão processados pela integração.

Formato: Texto

totvsomni.ftp.user

Usuário do servidor de FTP.

Campo obrigatório.

Formato: Texto 

totvsomni.ftp.pass

Senha do usuário do servidor de FTP.

Campo obrigatório.

Formato: Texto

totvsmoda.produtos.endpoint

URL do serviço de consulta de produtos do TOTVS Moda.

Campo obrigatório.

totvsmoda.produtos.body.message.json

JSON de consulta de produtos no TOTVS Moda que será utilizado como body message da requisição à API do Moda.

Este JSON deve ser confeccionado conforme a documentação da API do TOTVS Moda.

Veja https://www30.bhan.com.br:9443/api/totvsmoda/product/v2/swagger/index.html
Endpoing /api/totvsmoda/product/v2/references/search

Campo obrigatório.

Formato: Objeto JSON

Exemplo

JSON
{
	"filter": {
		"classifications": [
			{
				"type": 523,
				"codelist": [
					"001"
				]
			}
		],
		"change": {
			"startDate": "2021-01-01T00:00:01.831Z",
			"endDate": "2021-03-20T00:00:01.831Z",
			"inProduct": true
		}
	},
	"option": {
		"branchinfocode": 20,
		"BranchCodeList": [
			20
		],
		"pricecode": 1
	},
	"expand": "details,classifications,composition,additionalFields",
	"pagesize": 500,
	"page": 1
}
totvsmoda.campos.pmm.categoria.omni

Nome das classificações do TOTVS Moda que serão compostas (concatenadas) para compor um novo atributos, chamado categoriaOmni, nos arquivos JSON de produtos que serão convertidos pelo conector.

Cada nome de classificação deve ser separado pelo valor definido pelo parâmetro totvsmoda.separador.pmm.categoria.omni.

Campo obrigatório.

Formato: Texto

Exemplo: FAMILIA-GENERO-FASE-GRUPO

No exemplo acima os valores das classificações FAMILIA, GENERO, FASE e GRUPO serão concatenados, utilizando o separador - 

totvsmoda.separador.pmm.categoria.omni

Separador dos campos de categorias definido no parâmetro totvsmoda.campos.pmm.categoria.omni

Campo não obrigatório.

Formato: Texto

Exemplo-

No exemplo acima o caractere - (menos) será utilizado para identificar as classificações e concatenar os valores das classificações no atributo categoriaOmni.

Caso não seja especificado o valor padrão é -

totvsmoda.produtos.filtro.startdate.voltar.dias

Quantidade de dias que será diminuído da data atual para realizar a consulta de produtos.

Este parâmetro somente é utilizado caso a query (definida no parâmetro totvsmoda.produtos.body.message.json) contenha filtro de data:
"startDate": "2021-01-01T00:00:01.831Z",
"endDate": "2021-03-20T00:00:01.831Z",

A data a ser utilizada para o endDate será sempre a data da execução da integração acrescida de 1 dia, a fim de evitar diferença de fuso horário entre o TOTVS Moda e o Omni).

A data a ser utilizada para o startDate obedece à seguinte regra:

  • Caso o parâmetro esteja com valor maior que 0 (zero), o startDate será a data atual diminuída da quantidade de dias definida no parâmetro.
  • Caso esteja igual a 0 (zero) ou não configurado o startDate será a data de alteração do ultimo registro do produto. Ao executar a integração de produto o sistema grava a maior data de alteração do produto obtida no resultado da requisição com o moda.

Campo não obrigatório.

Formato: Número

Exemplo: 3

Caso não seja especificado o valor padrão é 0

totvsmoda.estoque.endpoint

URL do serviço de consulta de estoque do TOTVS Moda.

Campo obrigatório.

totvsmoda.estoque.body.message.json

JSON de consulta de estoque no TOTVS Moda que será utilizado como body message da requisição à API do Moda.

Este JSON deve ser confeccionado conforme a documentação da API do TOTVS Moda.

Veja https://www30.bhan.com.br:9443/api/totvsmoda/product/v2/swagger/index.html
Endpoint /api/totvsmoda/product/v2/balances/search

Campo obrigatório.


É possível dentro da estrutura de balances passar valores simplificados de forma a diminiuir o tamanho total do JSON (em números de caracteres), conforme a seguinte regra:

  •  BC = BranchCode
  • sCL = stockCodeList
  • iT = isTransaction

Exemplo:
...
"balances"
: [
            {
                "BC": 20,
                "sCL": [
                    1
                ],
                "iT": true
            }
        ],
...

Formato: Objeto JSON

Exemplo

JSON
{
	"filter": {
		"classifications": [
			{
				"type": 523,
				"codelist": [
					"001"
				]
			}
		],
		"change": {
			"startDate": "2021-01-12T08:13:11.211Z",
			"endDate": "2021-01-13T08:13:11.211Z",
			"inStock": true,
			"inProduct": true,
			"branchStockCodeList": [				
				20
			],
			"stockCodeList": [
				1
			]
		}
	},
	"option": {
		"balances": [
			{
				"BranchCode": 20,
				"stockCodeList": [
					1
				],
				"isTransaction": true
			}
		]
	},
	"pagesize": 500,
	"page": 1
}
totvsmoda.produtos.remove.estoque.zero

Indica para o conector de estoque para incluir (valor FALSE) ou não incluir (valor TRUE) produtos com estoque zero no JSON que será convertido e lido pela integração.

Campo não obrigatório.

Formato: Texto, informar TRUE ou FALSE

Exemplo: TRUE

Caso não seja especificado o valor padrão é FALSE

totvsmoda.estoque.campo.desconto.estoque

Nome do campo da API de estoque do TOTVS Moda usado para descontar a quantidade de estoque.

O campo precisa vir com valor inteiro, não nulo, para poder ser usado no desconto.

É possível passar mais de um campo, separados por vírgula.

Formato: Texto


Caso não seja especificado o valor padrão é outputTransaction

totvsmoda.estoque.filtro.startdate.voltar.dias

Quantidade de dias que será diminuído da data atual para realizar a consulta de estoque.

Este parâmetro somente é utilizado caso a query (definida no parâmetro totvsmoda.estoque.body.message.json) contenha filtro de data:
"startDate": "2021-01-01T00:00:01.831Z",
"endDate": "2021-03-20T00:00:01.831Z",

A data a ser utilizada para o endDate será sempre a data da execução da integração acrescida de 1 dia, a fim de evitar diferença de fuso horário entre o TOTVS Moda e o Omni).

A data a ser utilizada para o startDate obedece à seguinte regra:

  • Caso o parâmetro esteja com valor maior que 0 (zero), o startDate será a data atual diminuída da quantidade de dias definido no parâmetro.
  • Caso esteja igual a 0 (zero) ou não configurado o startDate será a data de alteração do ultimo registro do estoque. Ao executar a integração de estoque o sistema grava a maior data de alteração do estoque obtida no resultado da requisição com o moda.

Campo não obrigatório.

Formato: Número

Exemplo: 3

Caso não seja especificado o valor padrão é 0

totvsmoda.precos.endpoint

URL do serviço de consulta de preço do TOTVS Moda.

Campo obrigatório.

totvsmoda.precos.body.message.json

JSON de consulta de preço no TOTVS Moda que será utilizado como body message da requisição à API do Moda.

Este JSON deve ser confeccionado conforme a documentação da API do TOTVS Moda.

Veja https://www30.bhan.com.br:9443/api/totvsmoda/product/v2/swagger/index.html
Endpoint /api/totvsmoda/product/v2/prices/search

Campo obrigatório.

Formato: Objeto JSON

Exemplo

JSON
{
	"filter": {
		"classifications": [
			{
				"type": 5223,
				"codelist": [
					"001"
				]
			}
		],
		"change": {
			"startDate": "2020-03-19T00:00:01.831Z",
			"endDate": "2021-03-20T00:00:01.831Z",
			"inPrice": true,
			"inPromotionalPrice": true,
			"branchPriceCodeList": [20],
			"priceCodeList": [1,3]
		}
	},
	"option": {
		"prices": [
			{
				"branchCode": 20,
				"priceCodeList": [
					1
				],
				"isPromotionalPrice": true
			},
			{
				"branchCode": 20,
				"priceCodeList": [
					3
				],
				"isPromotionalPrice": true
			}
		]
	},
	"pagesize": 500,
	"page": 1
}
totvsmoda.precos.modelo.dados

Indica com o conector irá trabalhar para identificar os preços dentro do JSON de resposta do serviço de consulta de preço.

No modelo PRECOLOJA utilizará os códigos de preço (priceCodes) identificados pelos parâmetros totvsmoda.precos.pricecode.preco.original totvsmoda.precos.pricecode.preco.promocional para identificar o código do preço Original e descontado dentro do JSON de retorno do serviço de consulta de preço do TOTVS Moda.

No modelo TABELAPRECO utiliza os campos originalprice price para associar o preço Original e descontado no TOTVS Omni.

Campo não obrigatório.

Formato: Texto, informar TABELAPRECO ou PRECOLOJA

Exemplo: PRECOLOJA

Caso não seja especificado o valor padrão é PRECOLOJA

totvsmoda.precos.pricecode.preco.original

Indica qual é o código do preço (priceCode) do TOTVS Moda a ser utilizado como o preço original (ou preço cheio) do produto no Omni.

Campo obrigatório.

Formato: Número

Exemplo: 1

totvsmoda.precos.pricecode.preco.promocional

Indica qual é o código do preço (priceCode) do TOTVS Moda a ser utilizado como o preço promocional (ou preço descontado) do produto no Omni.

Campo obrigatório.

Formato: Número

Exemplo: 3

totvsmoda.precos.campo.preco.original

Identifica qual é o campo do objeto de preços no JSON de resposta da consulta que tem o valor do preço original (preço cheio ou full price) do produto.

O valor retornado para este campo no JSON será cadastrado no preço original dentro do Omni.

Campo não obrigatório.

Formato: Texto

Exemploprice

Exemplo do retorno da consulta de preço:
"prices": [
                {
                    "branchCode"1,
                    "priceCode"1,
                    "price"89.99,
                    "promotionalPrice"49.99
                }
...

Com o exemplo acima, indica que o valor 89.99 será designado como o preço original do produto.

Caso não seja especificado o valor padrão é price

totvsmoda.precos.campo.preco.promocional

Identifica qual é o campo do objeto de preços no JSON de resposta da consulta que tem o valor do preço com desconto do produto.

O valor retornado para este campo no JSON será cadastrado no preço rebaixado (com desconto) dentro do Omni.

OBS1: Caso o valor do campo relativo ao preço promocional não estiver preenchido ou estiver preenchido com valor zero, então é utilizado o valor do campo preço original.
Isto é devido ao fato do TOTVS Omni somente considerar para fins de publicação produtos com preço diferente de zero.

Campo não obrigatório.

OBS2: As promoções por SKU criadas no TOTVS Moda obedecem às seguintes regras:

1) O SKU associado à promoção aparecerá na consulta de preço no dia de início da promoção. O valor da promoção aparecerá no campo "promotionalPrice".

2) O SKU associado à promoção não aparecerá na consulta de preço durante a vigência, portanto não alterando seu preço.

3) O SKU associado à promoção aparecerá na consulta de preço no dia posterior ao fim da promoção. O valor do campo "promotionalPrice" aparecerá como 0 (zero), indicando ao conector para obedecer ao comportamento da observação 1.

4) Embora configurado no TOTVS Moda a nível de SKU, a promoção no TOTVS Omni é associado ao produto, isto é, Código de Referencia + cor.

5) Se dois SKUs de um mesmo Código de Referencia + cor forem colocados em promoções distintas, não há como garantir qual será o preço da promoção para o produto no TOTVS Omni.

Formato: Texto

ExemplopromotionalPrice

Exemplo do retorno da consulta de preço:
"prices": [
                {
                    "branchCode"1,
                    "priceCode"1,
                    "price"89.99,
                    "promotionalPrice"49.99
                }
...

Com o exemplo acima, indica que o valor 49.99 será designado como o preço promocional do produto, caso o valor promotionalPrice seja configurado.

Caso não seja especificado o valor padrão é price

totvsmoda.precos.filtro.startdate.voltar.dias

Quantidade de dias que será diminuído da data atual para realizar a consulta de preços.

Este parâmetro somente é utilizado caso a query (definida no parâmetro totvsmoda.precos.body.message.json) contenha filtro de data:
"startDate": "2021-01-01T00:00:01.831Z",
"endDate": "2021-03-20T00:00:01.831Z",

A data a ser utilizada para o endDate será sempre a data da execução da integração acrescida de 1 dia, a fim de evitar diferença de fuso horário entre o TOTVS Moda e o Omni).

A data a ser utilizada para o startDate obedece à seguinte regra:

  • Caso o parâmetro esteja com valor maior que 0 (zero), o startDate será a data atual diminuída da quantidade de dias definido no parâmetro.
  • Caso esteja igual a 0 (zero) ou não configurado o startDate será a data de alteração do ultimo registro do preço. Ao executar a integração de preço o sistema grava a maior data de alteração do preço obtida no resultado da requisição com o moda.

Campo não obrigatório.

Formato: Número

Exemplo: 3

Caso não seja especificado o valor padrão é 0

totvsmoda.ftp.produtos.convertedjson.fileprefix

Prefixo a ser utilizado nos arquivos de produto convertidos pelo conector e gravados no FTP. 

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é PRODUTOS_OMNI_

totvsmoda.ftp.produtos.convertedjson.subfolder

Sub diretório do diretório raiz definido no parâmetro totvsomni.ftp.base.folder que será utilizado para armazenar arquivos convertidos de produto.

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é PRODUTO

totvsmoda.ftp.produtos.originaljson.fileprefix

Prefixo a ser utilizado nos arquivos de produto originais do TOTVS Moda e gravados no FTP. 

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é PRODUTOS_MODA_

totvsmoda.ftp.produtos.originaljson.subfolder

Sub diretório do diretório raiz definido no parâmetro totvsomni.ftp.base.folder que será utilizado para armazenar arquivos originais de produtos do TOTVS Moda.

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é PRODUTO/original_json

totvsmoda.ftp.estoque.convertedjson.fileprefix

Prefixo a ser utilizado nos arquivos de estoque convertidos pelo conector e gravados no FTP. 

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é ESTOQUE_OMNI_

totvsmoda.ftp.estoque.convertedjson.subfolder

Sub diretório do diretório raiz definido no parâmetro totvsomni.ftp.base.folder que será utilizado para armazenar arquivos convertidos de estoque.

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é ESTOQUE

totvsmoda.ftp.estoque.originaljson.fileprefix

Prefixo a ser utilizado nos arquivos de estoque originais do TOTVS Moda e gravados no FTP. 

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é ESTOQUE_MODA_

totvsmoda.ftp.estoque.originaljson.subfolder

Sub diretório do diretório raiz definido no parâmetro totvsomni.ftp.base.folder que será utilizado para armazenar arquivos originais de estoque do TOTVS Moda.

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é ESTOQUE/original_json

totvsmoda.ftp.precos.convertedjson.fileprefix

Prefixo a ser utilizado nos arquivos de preçoconvertidos pelo conector e gravados no FTP. 

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é PRECO_OMNI_

totvsmoda.ftp.precos.convertedjson.subfolder

Sub diretório do diretório raiz definido no parâmetro totvsomni.ftp.base.folder que será utilizado para armazenar arquivos convertidos de preço.

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é PRECO

totvsmoda.ftp.precos.originaljson.fileprefix

Prefixo a ser utilizado nos arquivos de preço originais do TOTVS Moda e gravados no FTP. 

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é PRECO_MODA_

totvsmoda.ftp.precos.originaljson.subfolder

Sub diretório do diretório raiz definido no parâmetro totvsomni.ftp.base.folder que será utilizado para armazenar arquivos originais de preço do TOTVS Moda.

Campo não obrigatório

Formato: Texto

Caso não seja especificado o valor padrão é PRECO/original_json

totvsmoda.estoque.endpoint.versionCaso esteja preenchido com qualquer valor diferente de 1 utiliza os novos endpoints de estoque do TOTVS Moda.
Caso não tenha valor, usa o endpoint antigo do Moda.

Formato: Número

Exemplo: 2

Caso não seja especificado o valor padrão é 1



Alteração de Parâmetros e Limpeza de Cache

Ao ser alterado algum parâmetro do conector de produto, preço ou estoque para que o novo valor seja utilizado na próxima execução é necessário limpar o cache.

A limpeza do cache é realizada através do browser, logado no TOTVS Omni, acessando o integrador e chamando a seguinte URL:

https://moddointegrador-co.moddoplatform.com/integrador/caches/clear-all-caches


03. PEDIDO

  1. Na tela de configuração de site, selecionar o ERP como TOTVS Moda.

    1. Logado no Omni > Configurações > Sites > Selecione o Site Principal do Cliente (Vide Conceito de Sites, Lojas e Estrutura de Pedidos) e clique em Alterar.
    2. No conjunto de configurações Site, selecione TOTVS Moda da lista de ERPs disponíveis

      image2021-3-17_9-27-27.png




     2. Preencher os parametros do conector TOTVS Moda.

    1. Logado no Omni > Configurações > Sites > Selecione o Site Principal do Cliente (Vide TOTVS Omni - Estrutura Pedidos Sites e Fluxos) e clique em Alterar.

    2. No conjunto de configurações Propriedades de Configuração, expanda o grupo Conector ERP Pedidos - TOTVS Moda e preencha os parâmetros conforme abaixo:
      image2021-3-17_9-34-17.png


      Parâmetros do Conector TOTVS Moda Pedidos:
      OBS: Todos os campos são obrigatórios de preenchimento, salvo informado ao contrário. Caso um array não tenha valor deve ser passado o valor [].

      OBS: Para mais detalhes sobre a API REST de criação de clientes e pedidos do Moda, vide:
      https://www30.bhan.com.br:9443/api/totvsmoda/person/v2/swagger/index.html (endpoint /api/totvsmoda/person/v2/individual-customers)
      https://www30.bhan.com.br:9443/api/totvsmoda/sales-order/v2/swagger/index.html (endpoint /api/totvsmoda/sales-order/v2/b2c-orders)


Nome do Parâmetro

Descrição

Formato do Parâmetro, Exemplo e Observações

totvsmoda.base.url

Base da URL de acesso ao TOTVS Moda do cliente (de acordo com o site principal - Teste ou Produção).

Formato: https:// <HOST> : <PORTA>

Exemplohttps://treino.bhan.com.br:9443

totvsmoda.authn.clientid

Client ID que deve ser criado no TOTVS Moda para acesso de criação de pedidos nas branchs do cliente.

Formato: Texto
totvsmoda.authn.clientsecret

Cliente Secret que deve ser criado no TOTVS Moda para acesso de criação de pedidos nas branchs do cliente.

Formato: Texto
totvsmoda.authn.granttype

Tipo de Grant utilizado para o Cliente ID e Cliente Secret configurado.

Campo não obrigatório.

Formato: Texto

Caso não seja especificado o valor padrão é password

totvsmoda.authn.username

Usuário criado no TOTVS Moda para acesso à pedidos.

Formato: Texto
totvsmoda.authn.password

Senha do usuário criado no TOTVS Moda para acesso à pedidos.

Formato: Texto

totvsmoda.clientes.config

Indica se o cliente que realizou a compra será criado no TOTVS Moda Ativo ou Inativo e bloqueado ou não.

O valor para este parâmetro deve ser analisado juntamente com a equipe TOTVS Moda do projeto.

Formato: Objeto JSON

Exemplo

JSON
{
	"isInactive": "false",
	"isBloqued": "false"
}
totvsmoda.clientes.addressTypeCode

Indica qual é o código do tipo de endereço que será passado na criação do cliente que realizou a compra no TOTVS Moda.

Há 2 códigos que precisam ser analisado juntamente com a equipe TOTVS Moda do projeto:

  • billing: Código para Endereço de Faturamento
  • shipping: Código para Endereço de Entrega.

Se um dos códigos não for passado (ex: {"billing": "", "shipping": "5"} ) o cliente será criado sem tipo de endereço correspondente. No exemplo entre parênteses, o endereço de billing não será enviado ao TOTVS Moda durante a criação do cliente. Somente será enviado o endereço de shipping com o código 5.

Formato: Objeto JSON

Exemplo

JSON
{
	"billing": "1",
	"shipping": "5"
}
totvsmoda.clientes.phoneConfig

Indica se deverá criar o cliente no TOTVS Moda com dados de telefone (parâmetro "createWith"="true") e caso seja qual é o código do tipo de telefone e se o telefone será criado como padrão para o cliente.

Os valores para este parâmetro devem ser analisados juntamente com a equipe TOTVS Moda do projeto.

Formato: Objeto JSON

Exemplo

JSON
{
	"typeCode": "1",
	"isDefault": "true",
	"createWith": "true"
}
totvsmoda.clientes.emailConfig

Indica se deverá criar o cliente no TOTVS Moda com dados de email (parâmetro "createWith"="true") e caso seja qual é o código do tipo de email e se o email será criado como padrão para o cliente.

Os valores para este parâmetro devem ser analisados juntamente com a equipe TOTVS Moda do projeto.

Formato: Objeto JSON

Exemplo

JSON
{
	"typeCode": "2",
	"isDefault": "true",
	"createWith": "true"
}
totvsmoda.pedidos.id.canais.proprios

Lista de código de canal que são próprios do cliente (geralmente os canais e-commerce).

Vide TOTVS Omni - Lista de IDs do Omni#ListadeIDsdoOmni-ListadeIDsdeCanaisdeVenda

Todos os demais canais não presentes nesta lista são considerados pelo conector como canais não próprios (marketplaces ou demais canais).

Formato: Array JSON

Exemplo

JSON
["23","7"]
totvsmoda.pedidos.freightType

Código do tipo de frete a ser usado na criação do pedido.

Há 2 códigos que precisam ser analisado juntamente com a equipe TOTVS Moda do projeto:

  • shipping: Código para Pedido Entrega
  • pickup: Código para Pedido de Pickup

Ambos códigos são obrigatórios.

Formato: Objeto JSON

Exemplo

JSON
{
	"shipping": "1",
	"pickup": "4"
}
totvsmoda.pedidos.dados.por.channelID

Lista de informações por código de canal próprio ou não próprio, que são necessárias para a criação de pedido.

Para cada código de canal é necessário passar:

  • cnpj: CNPJ cadastrado para o canal no Moda, para ser utilizado no campo representativeCpfCnpj do pedido a ser criado no Moda.
  • paymentConditionCode: Valor para o campo paymentConditionCode (Condição de Pagamento) do pedido a ser criado no Moda.
  • priorityCode: Valor para o campo priorityCode (código de Prioridade) do pedido a ser criado no Moda.
  • Valores para o campo assignorCode (Código do Portador) do pedido a ser criado no Moda:
    • assignorCodeC: corresponde ao código do portador padrão para pedidos de cartão.
    • assignorCodeB: corresponde ao código do portador padrão para pedidos de boleto.
    • assignorCodeP: orresponde ao código do portador padrão para pedidos de Pix.
  • cnpjMarketPlaces: Uso exclusivo para pedidos Marketplace VTEX  (configurado como canal próprio).
    Quando um pedido foi feito no marketplace baixado pelo VTEX, vem identificado o AffilateId no JSON do pedido do VTEX. Este código será gravado no pedido e deve ser configurado nesta lista o de-para entre o código e o valor do CNPJ do intermediário a ser enviado para o Moda. 

Para cada canal próprio e não próprio deve ser fornecidas estas informações.

Obs: Embora aqui configurado, o código portador (assignorCode) de cartão de crédito somente é enviado caso o trio creditCardBrandcreditCardOperatorinstallment do pagamento não for identificado pelo Omni.
O assignorCode de cartão de crédito para o Moda é identificado por este trio.


Formato: Array JSON

Exemplo

JSON
[
	{
		"23": {
			"cnpj": "05314972000174",
			"paymentConditionCode": "001",
			"priorityCode": "99",
			"assignorCodeC": "0",
			"assignorCodeB": "0",
			"assignorCodeP": "0",
			"cnpjMarketPlaces":[
				{"MLB":"<cnpjMLB>"},{"MGL":"cnpjMGL"} 
			]
		}
	},
	{
		"7": {
			"cnpj": "05314972000174",
			"paymentConditionCode": "001",
			"priorityCode": "99",
			"assignorCodeC": "0",
			"assignorCodeB": "0"
			"assignorCodeP": "0"
		}
	}
]
totvsmoda.pedidos.dados.por.logisticID

Lista de informações por operador logístico que são necessárias para a criação de pedido.

Quando um pedido Omni envolve entrega, o pedido a ser criado no TOTVS Moda será criado com a informação do CNPJ do operador logístico no campo shippingCompanyCpfCnpj do pedido.

Os CNPJs aqui presentes devem constar no TOTVS Moda, caso contrário o TOTVS Moda retornará erro de criação do pedido.

Os valores para este parâmetro devem ser analisados juntamente com a equipe TOTVS Moda do projeto.

OBS: mesmo que não use a integração com a frete rápido deverá ser informado o campo nomeFreteRapido com o valor "" (vazio).
Caso uma transportadora tenha CNPJs diferentes quando a integração for via frete rápido ou diretamente com a transportadora, deverá ser informado 2 vezes, uma sem o nomeFreteRapido, outra sem o idOmni, conforme exemplo, os primeiros blocos ambos referenciam os CORREIOS (61)

Formato: Array JSON

Exemplo

JSON
[
	{
		"idOmni": "61",
		"nomeFreteRapido": "",
		"cnpj": "34028316001266"
	},
	{
		"idOmni": "",
		"nomeFreteRapido": "CORREIOS",
		"cnpj": "72963707000104"
	},
	{
		"idOmni": "63",
		"nomeFreteRapido": "",
		"cnpj": "90523681000165"
	},
	{
		"idOmni": "64",
		"nomeFreteRapido": "",
		"cnpj": "73939449002137"
	},
	{
		"idOmni": "81",
		"nomeFreteRapido": "",
		"cnpj": "73386353000145"
	},
	{
		"idOmni": "",
		"nomeFreteRapido": "JADLOG",
		"cnpj": "90523681000165"
	},
	{
		"idOmni": "",
		"nomeFreteRapido": "LALAMOVE",
		"cnpj": "20537865000107"
	},
	{
		"idOmni": "",
		"nomeFreteRapido": "TOTAL EXPRESS",
		"cnpj": "47112842000107"
	},
	{
		"idOmni": "",
		"nomeFreteRapido": "EXPRESSO FR (TESTE)",
		"cnpj": "69436534000161"
	}
]
totvsmoda.pedidos.dados.por.lojaID

Lista de informações por código de loja (campo Identificador externo do registro da loja no Omni), que são necessárias para a criação de pedido.

Para cada código de loja é necessário passar:

  • b ou branch: Código da empresa do Moda que corresponde ao código de loja cadastrado no Omni. Este parâmetro permite que, por exemplo, para um pedido que o Omni designou para a loja 1, o conector crie este  pedido na empresa 99 no Moda (primeira entrada no exemplo de JSON).
  • c ou cnpj: CNPJ da empresa do Moda, que será utilizado no campo representativeCpfCnpj do pedido nos casos que o pedido é proveniente de canal próprio.
  • Código do operador que será utilizado na criação do pedido no Moda (campo operationCode):
    • oC ou opCodeC: corresponde ao código da operação para pedidos de entrega (shipping) pagos no canal de venda.
    • oP ou opCodeP: corresponde ao código da operação para pedidos de retirada (pickup) pagos no canal de venda.
    • oPC ou opCodePgPdvC: corresponde ao código da operação para pedidos de entrega (shipping) pagos no PDV (utilizado somente em caso de pedido de Prateleira Infinita).
    • oPP ou opCodePgPdvP: corresponde ao código da operação para pedidos de retirada (pickup) pagos no PDV (utilizado somente em caso de pedido de Prateleira Infinita).
  • iC ou intCnpj: CNPJ do intermediário da compra. Usado na criação do pedido no Moda (campo intermediaryCnpj) para pedidos provenientes de canal próprio. Se o parâmetro não for informado, for informado com valor nulo ou vazio ("") o parâmetro intermediaryCnpj não é enviado para o TOTVS Moda na criação do pedido.

Para cada código de loja devem ser fornecidas estas informações.

Caso a loja não esteja cadastrada nesta lista e o pedido seja designada para ela, a criação do pedido no Moda irá falhar indicando a falta de parametrização.

Formato: Array JSON

Exemplo

JSON
[
	{
		"1": {
			"branch": "99",
			"cnpj": "14078646000311",
			"opCodeC": "800",
			"opCodeP": "800",
			"opCodePgPdvC": "5104",
			"opCodePgPdvP": "5199",
			"intCnpj": "14078646000311"
		}
	},
	{
		"3": {
			"branch": "3",
			"cnpj": "14078646000368",
			"opCodeC": "800",
			"opCodeP": "800",
			"opCodePgPdvC": "5104",
			"opCodePgPdvP": "5199",
			"intCnpj": "14078646000368"
		}
	},
	{
		"4": {
			"branch": "4",
			"cnpj": "14078646000449",
			"opCodeC": "800",
			"opCodeP": "800",
			"intCnpj": "14078646000449"
		}
	}
]

ou de forma comprimida para reduzir o tamanho do JSON (em números de caracteres).

JSON Compactado
[
	{
		"1": {
			"b": "99",
			"c": "14078646000311",
			"oC": "800",
			"oP": "800",
			"oPC": "5104",
			"oPP": "5104",
			"iC": "14078646000311"
		}
	},
	{
		"3": {
			"b": "3",
			"c": "14078646000368",
			"oC": "800",
			"oP": "800",
			"oPC": "5104",
			"oPP": "5104",
			"iC": "14078646000368"
		}
	},
	{
		"4": {
			"b": "4",
			"c": "14078646000449",
			"oC": "800",
			"oP": "800",
			"oPC": "5104",
			"oPP": "5104",
			"iC": "14078646000449"
		}
	}
]
totvsmoda.pedidos.productCode.method

Parâmetro utilizado para customizar o valor do productCode do item do pedido na criação do pedido no Moda.

De forma geral o campo productCode do Moda corresponde ao SKU do item no Omni, por este motivo utiliza-se o valor getSku.

Outros valores possíveis: getEangetAlphaCode ou getIdProduct.

Formato: Texto

Normalmente o valor padrão é getSku.

totvsmoda.pedidos.BillingForecastDate.somar.dias

Quantidade de dias a ser somada na data do pedido para cadastro do campo BillingForecastDate na lista de itens do pedido a ser criado no TOTVS Moda.

Formato: Número
totvsmoda.pedidos.classification.canais.proprios

Lista de classificações que serão usadas na criação do pedido de canal de venda próprio (presente na lista totvsmoda.pedidos.id.canais.proprios) no Moda

Os valores para este parâmetro devem ser analisados juntamente com a equipe TOTVS Moda do projeto.

Formato: Array JSON

Exemplo

JSON
[
	{
		"classificationTypeCode": 1,
		"classificationCode": "1"
	},
	{
		"classificationTypeCode": 100,
		"classificationCode": "2"
	}
]
totvsmoda.pedidos.classification.demais.canais

Lista de classificações que serão usadas na criação do pedido de canal de venda marketplace (não presente na lista totvsmoda.pedidos.id.canais.proprios) no Moda.

Os valores para este parâmetro devem ser analisados juntamente com a equipe TOTVS Moda do projeto.

Formato: Array JSON

Exemplo

JSON
[
	{
		"classificationTypeCode": 1,
		"classificationCode": "1"
	},
	{
		"classificationTypeCode": 100,
		"classificationCode": "2"
	}
]
totvsmoda.pedidos.depara.creditCardBrand

Mapeamento entre valores de marca de cartão de crédito que estejam presentes no campo marca de cartão de crédito no pedido no Omni, e a marca de cartão de crédito correspondente registrada no TOTVS Moda.

O campo default indica o valor que será utilizado no pedido a ser criado no TOTVS Moda no caso da marca de cartão de crédito não estar inclusa nesta lista.

Obrigatório a presença da entrada default no JSON.

Formato: Objeto JSON

Exemplo

JSON
{
	"VISA": "VISA",
	"MASTERCARD": "MASTERCARD",
	"ELO": "ELO",
	"AMEX": "AMEX",
	"DINERS": "DINERS",
	"default": "MASTERCARD"
}
totvsmoda.pedidos.depara.creditCardOperator

Mapeamento entre valores de operador de cartão de crédito que estejam presentes no campo marca de cartão de crédito no pedido no Omni, e o operador de cartão de crédito correspondente registrado no TOTVS Moda.

O campo default indica o valor que será utilizado no pedido a ser criado no TOTVS Moda no caso do operador de cartão de crédito não estar inclusa nesta lista.

Obrigatório a presença da entrada default no JSON.

Formato: Objeto JSON

Exemplo

JSON
{
	"CIELO": "CIELO",
	"REDE": "REDE",
	"default": "REDE"
}
totvsmoda.pedidos.discount.code

Código do desconto existente no TOTVS Moda que será aplicado no caso de um pedido com desconto.

Importante que este código de desconto no TOTVS Moda não esteja atrelado nem a valor nem a porcentagem. Caso contrário o TOTVS Moda pode lançar um erro quando o conector tentar criar o pedido.

Formato: Número
totvsmoda.pedidos.cancel.reason.codeCódigo da razão para cancelamento do pedido registrado no Moda e que será utilizado pelo Omni quando o pedido tiver que ser cancelado. Formato: Número
totvsmoda.pedidos.default.installmentValor padrão para número de parcelas para caso de pedido que não seja por cartão de crédito.Formato: Número
totvsmoda.pedidos.default.paymentBranch

Valor a ser utilizado na criação de pedidos para identificar a empresa no TOTVS Moda responsável pelo pagamento (paymentBranch).

O conector do Moda tenta recuperar o atributo de pedido tiendaSuministradora (Caso em que o canal de venda decide a loja que vai ser designada para o pedido).

Caso o valor não tenha sido passado pelo conector do canal de venda, então o Omni usa o valor configurado neste propriedade para o paymentBranch.

Caso também não tenha sido preenchido este valor na propriedade então por fim o Omni usa o Id da loja que o pedido foi designado.

Formato: Número

Exemplo: 1

totvsmoda.pedidos.order.number

Será utilizado para fazer transformações no campo customerOrderCode, a fim de evitar estouro de limite de caracteres (Criado para pedidos importados pelo conector Skyhub/B2W)

Valores descritos no "from" devem ser identicos ao que for descer do canal.
com isso um pedido Lojas Americanas-1635967057347 será transformado para AME-1635967057347

Formato: json

Exemplo

JSON
[
    {
        "channel": "38",
        "alias": [
            {
                "from": "Lojas Americanas",
                "to": "AME"
            },
            {
                "from": "Americanas",
                "to": "AME"
            },
            {
                "from": "Submarino",
                "to": "SUB"
            },
            {
                "from": "Shoptime",
                "to": "SHO"
            }
        ]
    }
]
totvsmoda.pedido.correcao.desconto100porcento

Flag que controla se o conector do TOTVS Moda deve realizar a correção de valores para itens com 100% de desconto.
Se ligada, 1 centavo será retirado do desconto do item e adicionado à outro item ou ao frete do pedido.

Formato: Texto, informar TRUE ou FALSE

Exemplo: TRUE

Caso não seja especificado o valor padrão é FALSE


Observação

Para que os pedidos do tipo de entrega em domicilio (Shipping) integrem naturalmente ao ERP, a informação do Código do Serviço Postal dos transportadores precisam ser previamente cadastrada no componente EXPFM006 do ERP TOTVS Moda.


Exemplo de JSON de retorno do TOTVS Moda: PRODUTOS_MODA_original.json


Exemplo de JSON convertido pelo conector do TOTVS Moda: PRODUTOS_OMNI_convertido.json


OBS: O conector do TOTVS Moda mapeia as formas de pagamento do TOTVS Omni com os valores possíveis para o atributo documentType da criação de pedido do TOTVS Moda, de acordo com a tabela abaixo.

Definir o ID da forma de pagamento do pedido no TOTVS Omni é de responsabilidade do conector do canal de venda. Vide documentação do conector de cada canal de venda para verificar como que o mesmo realiza este mapeamento.

Veja Lista de IDs do TOTVS Omni para mais informações sobre os códigos Omni e TOTVS Moda API Sales Order para os códigos de PaymentInDto > documentType.

Esta é uma configuração geral, válida para todos os clientes.

TOTVS Omni (PaymentType)TOTVS Moda (DocumentType)
FORMA_PAGO_TARJETA (1)4 - CreditCard(Cartão de crédito)
FORMA_PAGO_TRANSFERENCIA (2)5 - DebitCard(Cartão de débito)
FORMA_PAGO_CONTRAREEMBOLSO (4)1 - Invoice(Fatura)
FORMA_PAGO_PAYPAL (5)4 - CreditCard(Cartão de crédito)
FORMA_PAGO_AMEX (7)4 - CreditCard(Cartão de crédito)
FORMA_PAGO_ENVIO_TPV (13)13 - Pago no PDV
FORMA_PAGO_MULTIPAGO (20)3 - Billet(Boleto)
FORMA_PAGO_CON_DEPOSITO (21)1 - Invoice(Fatura)
FORMA_PAGO_BOLETO (40)1 - Invoice(Fatura)
FORMA_PAGO_AME (43)4 - CreditCard(Cartão de crédito)
FORMA_PAGO_PIX (44)26 - Pix(PIX)
FORMA_PAGO_CREDIARIO (45)20 - Credev(CREDEV)
FORMA_PAGO_CARTAO_DEBITO (52)5 - DebitCard(Cartão de débito)
FORMA_PAGO_CARTAO_CREDITO (53)4 - CreditCard(Cartão de crédito)
FORMA_PAGO_MERCADO_PAGO (54)3 - Billet(Boleto)
FORMA_PAGO_MARKETPLACE (55)25 - Voucher
FORMA_PAGO_ELO (56)3 - Billet(Boleto)
FORMA_PAGO_PICPAY (57)27 - PicPay


04. CACHE

  1. Alteração de Parâmetros e Limpeza de Cache

    Os módulos do Omni trabalham com cacheamento das informações de parâmetros de conector.
    Caso seja necessário alterar um parâmetro e utilizar o novo valor de imediato no conector é necessário a limpeza dos caches dos módulos do Omni.

    Neste caso é necessário realizar a chamada de 2 URLs através de uma tab nova no browser (Logado na interface web do Omni):

    Também é possível aguardar o prazo de 1h a 2hs para que a limpeza agendada dos caches aconteça e o conector acesse os novos valores de parâmetros.