1 - Introdução
Este documento tem o intuito de instruir o Analista/ Desenvolvedor sobre como é definida a estrutura dos dados para sincronização com o uMov.
1.1 - Escopo
O objetivo da transmissão de dados entre o MOVERE e o uMov, é realizar a sincronização de Itens (Inclui Família e Grupo), Clientes(inclui Histórico de venda e Títulos em Aberto), Condições de Pagamento e Pedidos de Venda(Orçamento).
2 - Gatilhos necessários para Sincronização de dados
Os gatilhos, à partir da versão 478, são ativados e/ou desativados automaticamente. Veja mais detalhes em: https://meajuda.moveresoftware.com/pt-BR/support/solutions/articles/27000063465-aplicativo-de-venda-externa-wizard-de-configura%c3%a7%c3%a3o
3 - Estratégia de integração
Por trás de toda integração existe uma estratégia que visa identificar quais registros são elegíveis para serem transmitidos. A estratégia adotada pelo Movere para identificar quais registros deverão ser transmitidos consiste em:
- Identificar registros que sofreram alterações: Essa verificação é feita atualmente através da criação de gatilhos nas tabelas que serão integradas. Toda vez que um determinado registro de alguma tabela que participa da integração é alterado, o gatilho é disparado e preenche uma tabela auxiliar que é consultada pelo sistema de integração. Todos os registros presentes nas tabelas auxiliares devem ser enviados ao UMov.
- Fazer a transmissão/sincronização dos registros com o UMov.
- Excluir o registro da tabela auxiliar, já que a sincronização já foi feita.
No caso de uma implantação (Envio de todos os dados), o sistema não fará consultas nessa tabela auxiliar, pois supõe-se que é a "carga inicial", então todos os registros que participam da integração devem ser transmitidos/sincronizados.
4 - API da UMov
A uMov possui uma API que adota os conceitos REST. Dessa forma é possível "conversar" com o sistema através de solicitações HTTP, por meio dos verbos "GET" e "POST", utilizando "XML" para transmitir/receber registros.
Através do verbo "POST" conseguimos atualizar ou inserir um novo registro.
Ao enviar uma solicitação "POST" é necessário que o campo de cabeçalho "Content-Type" esteja preenchido com o valor "application/x-www-form-url-encoded".
O corpo da requisição deve ter o formato abaixo:
data=
<?xml version="1.0" encoding="utf-16"?>
<subGroup>
<id>1343647</id>
<description>CHRONO 2</description>
<alternativeIdentifier>56</alternativeIdentifier>
<active>true</active>
</subGroup>
5 - Sincronização
Antes de sincronizados itens, é necessário sincronizar os grupos e também as famílias, uma vez que o cadastro de itens possui relações com esses registros.
5.1 - Cadastro de Grupos De Itens
POST https://api.umov.me/CenterWeb/api/{token}/subGroup.xml
Relação de campos padrões:
Campo | Valor | Tam. | Obrig. | Descrição |
id | numérico | 10 | Não | Identificador interno do grupo no uMov.me |
alternativeIdentifier | texto | 100 | Não | Código do Grupo de Item no MOVERE. |
description | texto | 100 | Sim | Descrição de seu Grupo de Itens. |
active | true/false | Não | Indica se um Grupo está no estado ativo ou não. Pode receber valores "true" ou "false" |
Exemplo do corpo de uma requisição válida:
data=
<?xml version="1.0" encoding="utf-16"?>
<subGroup xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<description>LT84</description>
<alternativeIdentifier>1</alternativeIdentifier>
<active>true</active>
</subGroup>
5.2 - Vínculo entre seção e subgrupo
Para que os itens enviados estejam disponíveis apenas nas suas respectivas atividades (fluxo), é necessário, logo após o envio de grupos de itens para o uMov, criar um vínculo entre os grupos e a seção.
Atualmente é possível vincular os itens à atividade de reforma ou de venda. Para criar esse vínculo, é necessário enviar uma requisição, conforme abaixo:
POST https://api.umov.me/CenterWeb/api/{token}/batch/sectionSubGroups.xml
Relação de campos padrões:
Campo | Valor | Tam. | Obrig. | Descrição |
subGroup | referencia à subGroup | Não | Subgrupo vinculado | |
section | referência à section | Não | Código da Família de Item no Movere. | Section vinculada |
Exemplo do corpo de uma requisição válida:
data=
<sectionSubGroups>
<sectionSubGroup>
<subGroup>
<alternativeIdentifier>15728352</alternativeIdentifier>
</subGroup>
<section>
<id>3892</id>
</section>
</sectionSubGroup>
<sectionSubGroup>
<subGroup>
<alternativeIdentifier>15728352</alternativeIdentifier>
</subGroup>
<section>
<id>3892</id>
</section>
</sectionSubGroup>
</sectionSubGroups>
5.3 - Cadastro de Famílias de Itens
POST https://api.umov.me/CenterWeb/api/{token}/itemCategory.xml
Relação de campos padrões:
Campo | Valor | Tam. | Obrig. | Descrição |
id | numérico | 10 | Não | Identificador interno da família no uMov.me |
alternativeIdentifier | texto | 100 | Não | Código da Família de Item no Movere. |
description | texto | 100 | Sim | Descrição da sua família de item. |
active | true/false | Não | Indica se uma família está no estado ativa ou não. Pode receber valores "true" ou "false" |
Exemplo do corpo de uma requisição válida:
data=
<?xml version="1.0" encoding="utf-16"?>
<itemCategory xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<description>PNEUS PASSEIO CONVENCIONAL</description>
<alternativeIdentifier>1</alternativeIdentifier>
<active>true</active>
</itemCategory>
5.4 - Cadastro de Itens
POST https://api.umov.me/CenterWeb/api/{token}/batch/items.xml
Relação de campos padrões:
Campo | Valor | Tamanho | Obrigatório | Descrição |
itemCategory | Numérico | 10 | Sim | Identificador interno da categoria de item no app |
subGroup | Numérico | 10 | Sim | Identificador interno do subgrupo no app |
active | true / false | Não | Indica se um item está no estado ativo ou não. Pode receber valores “true” ou “false” | |
image | Não | Imagem vinculada ao item através de URL para importação. É a imagem que será exibida no mobile para cada item. Para funcionar corretamente deve ser informada a tag <imageUrlImport>. A url deve ser diretamente do arquivo de imagem, visto ao notar o final da url com nomedoarquivo.jpg ou .png (Ex: http://www.umov.me/wp-content/uploads/2017/04/umov-me.png) caso não tenha imagem específica receberá a imagem padrão para o item. | ||
alternativeIdentifier | Texto | 100 | Sim | Código do produto ou serviço no Movere |
description | Texto | 100 | Sim | Nome do produto ou serviço no Movere |
Id | Numérico | 10 | Não | Identificador interno da categoria no app. |
tags | Texto | Não | Conjunto de tags enviados ao mobile para executar filtros na listagem de itens. Devem ser separadas por vírgula entre as tags para integração | |
customFields | Lista | Não | Relação de valores dos campos customizáveis vinculados ao item. Todos os campos customizáveis vinculados ao cadastro aparecerão na consulta. A consulta, atualização e inclusão dos campos customizáveis devem ser feitas através do identificador alternativo do campo. |
Relação de campos customizados:
Campo | Valor | Tamanho | Obrigatório | Descrição |
UnidadeMedida | Texto | 10 | Não | Unidade de medida do produto ou serviço. |
Marca | Texto | 100 | Não | Marca do produto |
QuantidadeFracionada | Texto | 3 | Não | Deve indicar se o item permite fracionamento na coleta do pedido deve ser preenchido com: SIM / NAO |
EmbalagemVenda | Texto | 50 | Não | Descrição da embalagem de venda do produto. |
Exemplo do corpo de uma requisição válida:
data=
<items>
<item>
<subGroup>
<id>1171126</id>
</subGroup>
<description>1000-20 AS22 16PR TT</description>
<alternativeIdentifier>9836</alternativeIdentifier>
<active>true</active>
<itemCategory>
<id>75284</id>
</itemCategory>
<customFields>
<UnidadeMedida>UN</UnidadeMedida>
<Marca>PIRELLI</Marca>
<QuantidadeFracionada>NAO</QuantidadeFracionada>
<EmbalagemVenda>UNIDADE</EmbalagemVenda>
</customFields>
</item>
<item>
<subGroup>
<id>1171186</id>
</subGroup>
<description>1000R20 FORMULA DRIVER TT 146/143L 16</description>
<alternativeIdentifier>18501</alternativeIdentifier>
<active>true</active>
<itemCategory>
<id>75284</id>
</itemCategory>
<customFields>
<UnidadeMedida>UN</UnidadeMedida>
<Marca>PIRELLI</Marca>
<QuantidadeFracionada>NAO</QuantidadeFracionada>
<EmbalagemVenda>UNIDADE</EmbalagemVenda>
</customFields>
</item>
</items>
5.5 - Cadastro de Estoque de Itens por Estabelecimento
Relação de campos padrões:
Campo | Valor | Tamanho | Obrigatório | Descrição |
active | true / false |
| Não | Pode receber valores "true" ou "false" |
alternativeIdentifier | Texto | 100 | Sim | Concatenação: Código do Produto + Código do Estabelecimento |
description | Texto | 100 | Sim | Concatenação: Código do Produto + Código do Estabelecimento + Descrição do Produto |
customFields | objeto | - | Sim | Relação de valores dos campos customizáveis vinculados ao item. Todos os campos customizáveis vinculados ao cadastro aparecerão na consulta. A consulta, atualização e inclusão dos campos customizáveis devem ser feitas através do identificador alternativo do campo. |
Relação de campos customizados:
Campo | Valor | Tamanho | Obrigatório | Descrição |
Produto | Texto | 100 | Sim | Código do Produto |
Estabelecimento | Numérico | 20 | Sim | Código do Estabelecimento no Movere. |
QuantidadeEstoque | Numérico | 20 | Sim | Quantidade do produto no estabelecimento |
Exemplo do corpo de uma requisição válida
data=<?xml version="1.0" encoding="utf-16"?> <customEntityEntries> <customEntityEntry> <active>true</active> <alternativeIdentifier>1-25</alternativeIdentifier> <description>1-25-PNEU 195/70R14,WINTERFORCE,91S[CG]</description> <customFields> <Produto>1</Produto> <Estabelecimento>25</Estabelecimento> <QuantidadeEstoque>0</QuantidadeEstoque> </customFields> </customEntityEntry> <customEntityEntry> <active>true</active> <alternativeIdentifier>9-25</alternativeIdentifier> <description>9-25-PN 10.00-20TT 16L LD35[CG]</description> <customFields> <Produto>9</Produto> <Estabelecimento>25</Estabelecimento> <QuantidadeEstoque>0</QuantidadeEstoque> </customFields> </customEntityEntry> <customEntityEntry> <active>true</active> <alternativeIdentifier>1-100</alternativeIdentifier> <description>1-100-PNEU 195/70R14,WINTERFORCE,91S[CG]</description> <customFields> <Produto>1</Produto> <Estabelecimento>100</Estabelecimento> <QuantidadeEstoque>0</QuantidadeEstoque> </customFields> </customEntityEntry> <customEntityEntry> <active>true</active> <alternativeIdentifier>1-1</alternativeIdentifier> <description>1-1-PNEU 195/70R14,WINTERFORCE,91S[CG]</description> <customFields> <Produto>1</Produto> <Estabelecimento>1</Estabelecimento> <QuantidadeEstoque>66</QuantidadeEstoque> </customFields> </customEntityEntry> <customEntityEntry> <active>true</active> <alternativeIdentifier>9-100</alternativeIdentifier> <description>9-100-PN 10.00-20TT 16L LD35[CG]</description> <customFields> <Produto>9</Produto> <Estabelecimento>100</Estabelecimento> <QuantidadeEstoque>0</QuantidadeEstoque> </customFields> </customEntityEntry> <customEntityEntry> <active>true</active> <alternativeIdentifier>9-1</alternativeIdentifier> <description>9-1-PN 10.00-20TT 16L LD35[CG]</description> <customFields> <Produto>9</Produto> <Estabelecimento>1</Estabelecimento> <QuantidadeEstoque>445</QuantidadeEstoque> </customFields> </customEntityEntry> </customEntityEntries>
5.6 - Preços e Custo de Reposição
POST http://api.umov.me/CenterWeb/api/{0}/batch/customEntity/alternativeIdentifier/TABELAPRECO/customEntityEntries.xml
Relação de campos padrões:
Campo | Valor | Tamanho | Obrigatório | Descrição | |||
active | true / false | Não | Indica se uma situação da tabela de preço está no estado ativo ou não. Pode receber valores "true" ou "false" | ||||
alternativeIdentifier | Texto | 100 | Sim | Código da tabela de preço: concatenar código da loja + código da tabela de preço + código do produto | |||
description | Texto | 100 | Sim | Descrição da tabela de preço: concatenar código da loja + código da tabela + nome do produto |
Relação de campos customizados:
Campo | Valor | Tamanho | Obrigatório | Descrição |
Estabelecimento | Numérico | 10 | Sim | Código da loja no Movere. |
TabelaPreco | Texto | 20 | Sim | Código da Tabela de Preço no Movere. |
Item | Texto | 20 | Sim | Código do Produto ou Serviço no Movere. |
Preco | Numérico | 20 | Sim | Preço do produto ou serviço na tabela de preço. |
Custo | Numérico | 20 | Sim | Custo de reposição do produto. |
Exemplo do corpo de uma requisição válida:
data=
<customEntityEntries>
<customEntityEntry>
<active>True</active>
<description>1-1-PRODUTO A</description>
<alternativeIdentifier>1-1-111111</alternativeIdentifier>
<customFields>
<Estabelecimento>1</Estabelecimento>
<TabelaPreco>1</TabelaPreco>
<Item>111111</Item>
<Preco>5.00</Preco>
<Custo>2.89</Custo>
</customFields>
</customEntityEntry>
<customEntityEntry>
<active>True</active>
<description>1-1-PRODUTO B</description>
<alternativeIdentifier>1-1-222222</alternativeIdentifier>
<customFields>
<Estabelecimento>1</Estabelecimento>
<TabelaPreco>1</TabelaPreco>
<CodigoProduto>222222</CodigoProduto>
<Preco>10.00</Preco>
<Custo>5.95</Custo>
</customFields>
</customEntityEntry>
</customEntityEntries>
5.7 - Clientes
POST: http://api.umov.me/CenterWeb/api/{$apiKey}/batch/serviceLocals.xml
Abaixo está a relação de campos do layout da uMov ref cadastramento de clientes (nem todos o Movere envia).
Campo | Valor | Tamanho | Obrigatório | Descrição |
active | true / false | Não | Indica se um cliente está no estado ativo ou não. Pode receber valores “true” ou “false” | |
image | Não | Imagem vinculada ao item através de URL para importação. É a imagem que será exibida no mobile para cada item. Para funcionar corretamente deve ser informada a tag <imageUrlImport>. A url deve ser diretamente do arquivo de imagem, visto ao notar o final da url com nomedoarquivo.jpg ou .png (Ex: http://www.umov.me/wp-content/uploads/2017/04/umov-me.png) caso não tenha imagem específica receberá a imagem padrão para os clientes. | ||
corporateName | Texto | 500 | Não | Razão Social do cliente |
alternativeIdentifier | Texto | 100 | Sim | Por definição nos projetos está utilizando o CPF ou CNPJ do cliente como identificador alternativo no app. |
state | Texto | 10 | Não | Estado do país ao qual pertence o cliente |
city | Texto | 50 | Não | Cidade deste cliente |
country | Texto | 50 | Não | País deste cliente |
description | Texto | 500 | Sim | Descrição do cliente. Este campo não pode ter valores duplicados, assim, por definição está sendo concatenado o código do cliente no Movere com a Razão Social do cliente. Exemplo: 1-CBA TECNOLOGIA LTDA |
geoCoordinate | Texto | 60 | Não | Latitude e longitude que representa o endereço deste local. Usado nas funcionalidades de mapas do app. Ex.: (-23.5642303, -46.6792142) |
geoCoordinatePrecision | Texto | 100 | Não | Indica a precisão da coordenada GPS retornada pela API do Google Maps. Seus valores podem ser: ROOFTOP (exato), RANGE_INTERPOLATED (grau de precisão maior, mas sem certeza), GEOMETRIC_CENTER (grau de precisão menor, mas sem certeza) e APPROXIMATE (cálculo aproximado) |
id | Numérico | 10 | Não | Identificador interno do cliente no app (usado apenas para Get) |
street | Texto | 100 | Não | Rua deste cliente |
zipCode | Texto | 10 | Não | Cep deste cliente |
streetNumber | Numérico | 8 | Não | Número do logradouro do endereço do local. Quando não tiver número deve ser enviado o valor: 0 (zero) |
streetComplement | Texto | 50 | Não | Complemento do logradouro do endereço do local |
cellphoneIdd | Numérico | 10 | Não | DDI do telefone celular |
cellphoneStd | Numérico | 10 | Não | DDD do telefone celular |
cellphoneNumber | Numérico | 10 | Não | Número do telefone celular |
phoneIdd | Numérico | 10 | Não | DDI do telefone fixo |
phoneStd | Numérico | 10 | Não | DDD do telefone fixo |
phoneNumber | Numérico | 10 | Não | Número do telefone fixo |
Texto | 50 | Não | E-mail do cliente | |
cityNeighborhood | Texto | 50 | Não | Bairro do cliente |
observation | Texto | 1000 | Não | Observações sobre o cliente |
accountable | Caracter | 1 | Não | Responsável pelo cliente (deve-se informar o ID Interno do vendedor) |
exportStatus | Caracter | 1 | Não | Indica se cliente já foi exportado ou não, a fim de permitir a exportação incremental somente dos clientes criados ou alterados. 0 (Novo cliente criado) | 1 (Cliente exportado) | 2 (Cliente exportado alterado) |
pendingExport | True/False |
| Não | Campo para facilitar a busca dos clientes que necessitam ser exportados. Se criado novo cliente (exportStatus = 0) ou cliente alterado (exportStatus = 2), então pendingExport = True. Caso contrário é False. |
customFields | Lista |
| Não | Relação de valores dos campos customizáveis vinculados ao local. Todos os campos customizáveis vinculados ao cadastro aparecerão na consulta. A consulta, atualização e inclusão dos campos customizáveis devem ser feitas através do identificador alternativo do campo. |
Abaixo segue a relação de campos customizados (customFields) criados para os clientes:
Campo | Valor | Tamanho | Obrigatório | Descrição |
CondicaoPagamento | Lista | Não | Condição de Pagamento do cliente, caso esteja preenchido será sugerido na finalização do pedido. A lista é alimentada a partir do cadastro customizado: Condição de Pagamento. | |
VendedorResponsavel | Texto | 100 | Não | Vendedor responsável pelo atendimento do cliente. |
Atividade | Texto | 60 | Não | Atividade do cliente. |
CodigoCliente | Numérico | 6 | Sim | Código do cliente no Movere. |
TipoPessoa | Texto | 1 | Não | Tipo do cliente se é pessoa física preencher com “F” ou pessoa jurídica preencher com “J”. |
SituacaoCredito | Texto | 1 | Não | Situação do Crédito no Movere. |
DataLimite | Data | Não | Data do limite de crédito cadastrado no Movere. | |
LimiteCredito | Numérico | 20 | Sim | Valor do limite de crédito para o cliente cadastrado no Movere. |
LimiteCreditoDisponivel | Numérico | 20 | Sim | Valor do limite de crédito disponível para o cliente cadastrado no Movere. |
RegiaoVenda | Texto | 50 | Não | Região de venda onde está localizado o cliente. |
CNPJ | Texto | 20 | Não | CNPJ do cliente. |
CPF | Texto | 20 | Não | CPF do cliente. |
InscricaoEstadual | Texto | 20 | Não | Inscrição estadual do cliente. |
CodigoDaTabelaDePreco | Texto | 20 | Sim | Código da tabela de preço definida para o cliente. |
Exemplo de XML de transmissão:
data= <serviceLocals xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <serviceLocal> <corporateName>LEANDRO KLEIN MARCHALEK</corporateName> <alternativeIdentifier>411906</alternativeIdentifier> <cityNeighborhood>JD UBATA</cityNeighborhood> <state>MT</state> <city>CUIABA</city> <country>BRASIL</country> <description>411906LEANDRO KLEIN MARCHALEK</description> <street>CONDOMINIO MINAS APTO</street> <streetNumber>1923</streetNumber> <zipCode>78000-000</zipCode> <email>LEANDROK5@HOTMAIL.COM</email> <phoneNumber>36168500</phoneNumber> <cellphoneNumber>81364003</cellphoneNumber> <active>true</active> <customFields> <CodigoCliente>411906</CodigoCliente> <TipoPessoa>F</TipoPessoa> <SituacaoCredito>A</SituacaoCredito> <LimiteCredito>15000</LimiteCredito> <LimiteCreditoDisponivel>1163.36</LimiteCreditoDisponivel> <DataLimite>2017-08-09</DataLimite> <CPF>945.371.512-34</CPF> <CodigoDaTabelaDePreco>1</CodigoDaTabelaDePreco> <InscricaoEstadual>12316548</InscricaoEstadual> </customFields> </serviceLocal> <serviceLocal> <corporateName>14 BRASIL TELECOM CELULAR SA</corporateName> <alternativeIdentifier>7</alternativeIdentifier> <cityNeighborhood>CENTRO NORTE</cityNeighborhood> <state>DF</state> <city>BRASILIA</city> <country>BRASIL</country> <description>714 BRASIL TELECOM CELULAR SA</description> <street>SIA SUL ASP LT D BL D PARTE GUARA, 123</street> <zipCode>72000-000</zipCode> <email>TESTESDESENVOLVIMENTO@MOVERESOFTWARE.COM</email> <phoneNumber>36248500</phoneNumber> <cellphoneNumber/> <active>true</active> <customFields> <CodigoCliente>7</CodigoCliente> <TipoPessoa>J</TipoPessoa> <SituacaoCredito>A</SituacaoCredito> <LimiteCredito>400</LimiteCredito> <LimiteCreditoDisponivel>0</LimiteCreditoDisponivel> <DataLimite>2012-08-09</DataLimite> <CNPJ>05.752.800/0001-82</CNPJ> <CodigoDaTabelaDePreco>2</CodigoDaTabelaDePreco> </customFields> </serviceLocal> </serviceLocals>
5.8 - Lojas
Abaixo está a relação de campos do layout da uMov ref cadastramento de lojas:
Campo | Valor | Tam. | Obrig. | Descrição |
active | booleano | - | Sim | Define se a loja está ou não ativa |
alternativeIdentifier | texto | 100 | Sim | Código da Loja no Movere |
description | texto | 100 | Sim | Nome da Loja no Movere |
Exemplo de XML de transmissão:
data=
<customEntityEntries>
<customEntityEntry>
<active>True</active>
<description>LOJA 01</description>
<alternativeIdentifier>1</alternativeIdentifier>
</customEntityEntry>
@ Próximo Registro @
<customEntityEntry>
<active>True</active>
<description>LOJA 02</description>
<alternativeIdentifier>2</alternativeIdentifier>
</customEntityEntry>
</customEntityEntries>
5.9 - O processo de redefinição de grupos de itens e seções
O aplicativo uMov permite selecionar itens de acordo com sua atividade (seção). Existe a possibilidade de um grupo de itens estar presente em mais de uma atividade, em razão de configurações incorretas. Para estes casos, é necessário efetuar a exclusão da seção incorreta que está vínculada ao grupo. Para isso, é necessário:
a) Identificar o id das seções vinculadas ao grupo:
Exemplo de resposta
<result>
<resourceName>sectionSubGroup</resourceName>
<size>1</size>
<entries>
<entry id="319152" link="/sectionSubGroup/319152.xml"/>
</entries>
</result>
b) Após identificar o id da seção vinculado ao grupo, enviar uma requisição para deletar esse vínculo:
DELETE https://api.umov.me/CenterWeb/api/{token}/sectionSubGroup/{ID_DO_VINCULO}.xml
c) Criar um vínculo válido entre seção e subgrupo (Verificar seção 5.2 - Vínculo entre seção e subgrupo)
5.9 - Sincronização de títulos à receber
Relação de campos padrões:
Campo | Valor | Tamanho | Obrigatório | Descrição | |||
active | true / false | Não | Indica se uma situação do título está no estado ativo ou não. Pode receber valores "true" ou "false". As baixas dos títulos deverão ser integradas com o valor “false” neste campo. | ||||
alternativeIdentifier | Texto | 100 | Sim | Códig: concatenar código do cliente + série do título + número do título + número da parcela | |||
description | Texto | 100 | Sim | Campo utilizado para apresentar os títulos em aberto do cliente. Deve ser informado o código do título no Movere na tag <internalValue>, e na tag <externalValue> as informações do título concatenando da seguinte forma: “Título: ” + Número do Título + “ | Série: ” + Série Título + “| Parcela: ” + Número da Parcela + “ | R$ ”+ Valor do Título + “ | Venc.: ” + Data do Vencimento. Exemplo: Título: 000025 | Série: CH | Parcela: 1 | R$ 1420.00 | Vencto: 11/07/2016 | |||
customFields | Texto | 20 | Sim | Campos customizados |
Relação de campos padrões:
Campo | Valor | Tamanho | Obrigatório | Descrição |
Cliente | Texto | Sim | Código do Cliente no Movere. |
Exemplo do corpo de uma requisição válida:
data= <customEntityEntries> <customEntityEntry> <active>True</active> <description>Título:000025 | Série: CH | Parcela: 1 | R$ 1420.00 | Vencto: 11/07/2016</description> <alternativeIdentifier>100375725CH0000251</alternativeIdentifier> <customFields> <Cliente>100375725</Cliente> </customFields> </customEntityEntry> <customEntityEntry> <active>True</active> <description>Título:000025 | Série: CH | Parcela: 2 | R$ 1421.00 | Vencto: 11/08/2016</description> <alternativeIdentifier>100375725CH0000252</alternativeIdentifier> <customFields> <Cliente>100375725</Cliente> </customFields> </customEntityEntry> </customEntityEntries>
5.10 - Sincronização de condições de pagamento
Antes de enviar as condições de pagamento, é necessário enviar a situação das condições de pagamento, que são responsáveis por informar qual é a forma de pagamento de uma determinada condição. Atualmente são enviadas de forma fixa "A vista" e "A prazo".
O envio é feito da forma que segue:
Relação de campos padrões:
Campo | Valor | Tamanho | Obrigatório | Descrição |
active | true / false |
| Não | Indica se uma situação de condição de pagamento está no estado ativo ou não. Pode receber valores "true" ou "false" |
alternativeIdentifier | Texto | 100 | Sim | Código da situação da condição de pagamento no Movere |
description | Texto | 100 | Sim | Nome da situação de condição de pagamento no Movere |
Id | Numérico | 10 | Não | Identificador interno da situação de condição de pagamento no App. |
Exemplo do corpo de uma requisição válida:
data= <customEntityEntries> <customEntityEntry> <alternativeIdentifier>A VISTA</alternativeIdentifier> <description>A vista</description> </customEntityEntry> <customEntityEntry> <alternativeIdentifier>A PRAZO</alternativeIdentifier> <description>A prazo</description> </customEntityEntry> </customEntityEntries>
Após enviar as situações, é possível enviar as condições de pagamento:
Relação de campos padrões:
Campo | Valor | Tamanho | Obrigatório | Descrição |
active | true / false |
| Não | Indica se uma condição de pagamento está no estado ativo ou não. Pode receber valores "true" ou "false" |
alternativeIdentifier | Texto | 100 | Sim | Código da condição de pagamento no Movere |
description | Texto | 100 | Sim | Nome da condição de pagamento no Movere |
Id | Numérico | 10 | Não | Identificador interno da condição de pagametno no App. |
customFields | Lista | Não | Relação de valores dos campos customizáveis vinculados ao item. Todos os campos customizáveis vinculados ao cadastro aparecerão na consulta. A consulta, atualização e inclusão dos campos customizáveis devem ser feitas através do identificador alternativo do campo. |
Relação de campos customizados:
Campo | Valor | Tamanho | Obrigatório | Descrição |
SituacaoCondicaoPagamento | Lista |
| Não | Código da situação da condição de pagamento. |
DescontoMaximoVenda | Numérico | 20 | Não | Desconto máximo permitido para a condição de pagamento. |
AcrescimoFinanceiro | Numérico | 20 | Não | Acréscimo financeiro permitido para a condição de pagamento |
Exemplo do corpo de uma requisição válida:
data=<?xml version="1.0" encoding="utf-16"?> <customEntityEntries xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <customEntityEntry> <description>A VISTA DINHEIRO </description> <alternativeIdentifier>1</alternativeIdentifier> <active>false</active> <customFields> <SituacaoCondicaoPagamento> <alternativeIdentifier>A VISTA</alternativeIdentifier> </SituacaoCondicaoPagamento> <DescontoMaximoVenda>0</DescontoMaximoVenda> <AcrescimoFinanceiro>0</AcrescimoFinanceiro> </customFields> </customEntityEntry> <customEntityEntry> <description>BOLETO 10/20/30 DIAS AUTO CENTER</description> <alternativeIdentifier>360</alternativeIdentifier> <active>true</active> <customFields> <SituacaoCondicaoPagamento> <alternativeIdentifier>A PRAZO</alternativeIdentifier> </SituacaoCondicaoPagamento> <DescontoMaximoVenda>0</DescontoMaximoVenda> <AcrescimoFinanceiro>2</AcrescimoFinanceiro> </customFields> </customEntityEntry> </customEntityEntries>
5.11 - Vendedores
Abaixo está a relação de campos do layout da uMov ref cadastramento de lojas:
Campo | Valor | Tam. | Obrig. | Descrição |
active | booleano | - | Sim | Define se o vendedor está ou não ativo. |
alternativeIdentifier | texto | 100 | Sim | Concatenação: Código do vendedor no Movere + Estabelecimento |
description | texto | 100 | Sim | Concatenação: Código do vendedor no Movere + Estabelecimento + Nome do Vendedor |
Abaixo está a relação de campos customizáveis do layout da uMov ref cadastramento de lojas:
Campo | Valor | Tam. | Obrig. | Descrição |
Estabelecimento | numérico | - | Sim | Código do Estabelecimento no Movere. |
CodigoVendedor | texto | 100 | Sim | Código do Vendedor no Movere |
Exemplo de XML de transmissão:
data= <customEntityEntries> <customEntityEntry> <active>True</active> <description>1-1-VENDEDOR A</description> <alternativeIdentifier>1-1</alternativeIdentifier> <customFields> <Estabelecimento>1</Estabelecimento> <CodigoVendedor>1</CodigoVendedor> </customFields> </customEntityEntry> <customEntityEntry> <active>True</active> <description>1-2-VENDEDOR A</description> <alternativeIdentifier>1-2</alternativeIdentifier> <customFields> <Estabelecimento>2</Estabelecimento> <CodigoVendedor>1</CodigoVendedor> </customFields> </customEntityEntry> </customEntityEntries>