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:

  1. 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.
  2. Fazer a transmissão/sincronização dos registros com o UMov.
  3. 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:


CampoValorTam.Obrig.Descrição
idnumérico10NãoIdentificador interno do grupo no uMov.me
alternativeIdentifiertexto100NãoCódigo do Grupo de Item no MOVERE.
descriptiontexto100SimDescrição de seu Grupo de Itens.
activetrue/false
NãoIndica 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:


CampoValorTam.Obrig.Descrição
subGroupreferencia à subGroup
NãoSubgrupo vinculado 
sectionreferência à sectionNãoCó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:


CampoValorTam.Obrig.Descrição
idnumérico10NãoIdentificador interno da família no uMov.me
alternativeIdentifiertexto100NãoCódigo da Família de Item no Movere.
descriptiontexto100SimDescrição da sua família de item.
activetrue/false
NãoIndica 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 


POST https://api.umov.me/CenterWeb/api/{token}/batch/customEntity/alternativeIdentifier/ESTOQUE/customEntityEntries.xml


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

email

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

POST: http://api.umov.me/CenterWeb/api/{$apiKey}/batch/customEntity/alternativeIdentifier/ESTABELECIMENTO/customEntityEntries.xml


Abaixo está a relação de campos do layout da uMov ref cadastramento de lojas:

CampoValorTam.Obrig.Descrição
activebooleano-SimDefine se a loja está ou não ativa
alternativeIdentifiertexto100SimCódigo da Loja no Movere
descriptiontexto100SimNome 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:

    GET https://api.umov.me/CenterWeb/api/{token}/sectionSubGroup.xml?subGroup.alternativeIdentifier={ID_DO_GRUPO_NO_MOVERE}

    

    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

POST https://api.umov.me/CenterWeb/api/{token}/batch/customEntity/alternativeIdentifier/COBRANCA/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 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:


POST https://api.umov.me/CenterWeb/api/{token}/batch/customEntity/alternativeIdentifier/SITUACAOCONDICAOPAGAMENTO/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 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:


POST https://api.umov.me/CenterWeb/api/{token}/batch/customEntity/alternativeIdentifier/CONDICAOPAGAMENTO/customEntityEntries.xml


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

POST: http://api.umov.me/CenterWeb/api/{$apiKey}/batch/customEntity/alternativeIdentifier/ VENDEDORESTABELECIMENTO/customEntityEntries.xml 


Abaixo está a relação de campos do layout da uMov ref cadastramento de lojas:

CampoValorTam.Obrig.Descrição
activebooleano-SimDefine se o vendedor está ou não ativo.
alternativeIdentifiertexto100SimConcatenação: Código do vendedor no Movere + Estabelecimento
descriptiontexto100SimConcatenaçã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:

CampoValorTam.Obrig.Descrição
Estabelecimentonumérico-SimCódigo do Estabelecimento no Movere.
CodigoVendedortexto100SimCó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>