ecomplus / app-bling

E-Com Plus app to integrate Bling ERP
MIT License
0 stars 1 forks source link

App: Bling #6

Closed leomp12 closed 4 years ago

leomp12 commented 4 years ago

Precisamos de um release estável do Bling (já temos ?), como estamos com os issues antigos?

O que acho que é crucial e precisamos testar e validar em cenários diversos:

@matheusgnreis pode nos ajudar a testar e reportar improves e fixes aqui por favor (se houverem)?

@talissonf me dá uma mão com este checklist por favor?

matheusgnreis commented 4 years ago

@talissonf continuo sem conseguir fazer nada na integração. Vou explicar o que fiz. Criei uma nova conta no Bling, criei o usuário API, selecionei todas as informações que poderia ser sincronizadas e gerei o token. Copiei o mesmo, acessei a loja 1077 colei e salvei. Depois fui nas configurações de sincronizações, selecionei tudo e salvei. Depois acessei https://bling.ecomplus.biz/#/bling peguei a URL de sincronizar que é https://bling.ecomplus.biz/bling/webhooks?storeId=1077 salvei nos 3 campos do bling, que é sincronização de estoque, vendas e notas fiscais. Fui ver no Bling, nenhum produto foi enviado automaticamente, eu teria que dar algum comando via POST para enviar? Dai segui com os testes e fiz um pedido e não caiu no Bling. Para mim segue não funcionando nada. Se puder me dar uma luz @talissonf

talissonf commented 4 years ago

@matheusgnreis A instalação nas estava funcionando pra você pois o app que estava instalado no market estava com authentication false, por isso não acontecia nada depois de instalado. A url também tá errada, é webhook e não hooks https://bling.ecomplus.biz/bling/webhook?storeId=1077 vou alterar isso no painel.

talissonf commented 4 years ago

@leomp12 eu fiz release de uma versão ontem que corrige alguns comportamentos inesperado do app, além dos issues antigos, também fiz alguns fixes para evitar erros com a sincronização dos produtos/pedidos, variações do bling para ecom e da ecom pro bling. Acredito que o @matheusgnreis consiga testar os cenários

  • [ ] Configuração no admin finalizada e simples (como possível);
  • [ ] Envio de produtos da plataforma para o ERP com o máximo de dados que o Bling aceitar;
  • [ ] Estoque sincronizando;
  • [ ] Pedidos enviados automaticamente da plataforma para o ERP;
  • [ ] Alteração de status no Bling reproduzido na plataforma.
leomp12 commented 4 years ago

@matheusgnreis @vitorrgg alguém pode ajudar com estes testes por favor? Com urgência pra podermos fechar esta task...

matheusgnreis commented 4 years ago

@talissonf estou testando aqui, status do pedido, quando mudado na e-com não está indo pro Bling. Coloquei um pedido como Pago e no Bling continuou Aguardando pagamento. Pedido que já chega cancelado na e-com, no caso os que dão erros, talvez não devesse ir pro Bling, porque quando vai, ele fica com status em aberto.

matheusgnreis commented 4 years ago

Marquei a opção para enviar produtos automaticamente com Bling, isso já tem umas 3 horas e não subiram. Vi que tem um agora, que era de um dos produtos de pedidos que subiram

matheusgnreis commented 4 years ago

Loja 1035

matheusgnreis commented 4 years ago

Além da questão dos status vindo do Bling, ao inserir o código de rastreio no pedido, não está trazendo o código de rastreio, mesmo com o pedido já inserido como Atendido.

talissonf commented 4 years ago

@matheusgnreis eu fiz um release pra corrigir essas falhas, a sincronização de produtos tava iniciando junto com outros serviços e por isso dava 503 sempre que ele tentava. Corrigir também envio dos códigos de rastreio pra plataforma, erros que poderiam acontecer com o envio das notas fiscais e também erros com pedidos sem número no endereço.

talissonf commented 4 years ago

Sobre o status do pedido, só é alterado do bling para ecom. Da E-com para o bling deve ser feito de forma manual pelo lojista.

talissonf commented 4 years ago

Sincronização de pedidos automática agora só envia pedidos pagos para bling.

leomp12 commented 4 years ago

@matheusgnreis dá mais um feedback aqui por favor? E dando tudo certo fecha o issue pra nós :smile:

matheusgnreis commented 4 years ago

Bom dia, tudo bem @talissonf ? No aplicativo deveria informar pro lojista qual é a URL de callback dele, já que no painel em nenhum lugar consta essa informação. Eu mesmo agora não lembrava qual era e fui olhar na outra conta que havia configurado, se houver uma terceira aba escrita callback com a URL ficaria ótimo, ou na primeira aba com um campo readonly com a URL pra copiar, acredito que ficaria bom também

talissonf commented 4 years ago

@matheusgnreis bem pensado, vou atualizar no admin do app.

matheusgnreis commented 4 years ago

@talissonf produtos não foram enviados para o bling em uma nova conta que criei e em um novo app que apaguei e instalei no painel

matheusgnreis commented 4 years ago

@talissonf alterei o status do pedido no bling para enviado, ele não veio para a e-com o status

matheusgnreis commented 4 years ago

Código de rastreio veio agora

matheusgnreis commented 4 years ago

Callback de estoque funcionou

matheusgnreis commented 4 years ago

Mas ao alterar estoque na e-com, não foi enviado ao Bling @talissonf isso está implementado?

talissonf commented 4 years ago

Mas ao alterar estoque na e-com, não foi enviado ao Bling @talissonf isso está implementado?

Não matheus, apenas quando é alterado estoque de produto no bling que é reproduzido na ecom.

leomp12 commented 4 years ago

@matheusgnreis o Bling altera o estoque automaticamente quando o status do pedido muda? Se sim, é até melhor que esta atualização automática seja em uma via só, só do Bling pra E-Com portanto.

matheusgnreis commented 4 years ago

Criei um produto, foi automaticamente pro Bling

matheusgnreis commented 4 years ago

@matheusgnreis o Bling altera o estoque automaticamente quando o status do pedido muda? Se sim, é até melhor que esta atualização automática seja em uma via só, só do Bling pra E-Com portanto.

Consultando suporte do Bling, isso ocorre sim, é uma configuração interna do Bling, então quando o pedido entra, ele pode ser debitado tanto na entrada, ou quando alterar o status, isso depende do lojista. Então melhor deixar assim mesmo

matheusgnreis commented 4 years ago

O problema devia ser aquele que citou: 'no banco de dados ja consta os produtos da 1035 com produto ligado a uma conta do bling'. Porque em novos pedidos e produtos está funcionando, quando mudo para aprovado, o pedido é enviado. O código de rastreio está vindo, callback de estoque também. Vou testar agora criando um produto no bling e enviando para e-com

leomp12 commented 4 years ago

Show, quase lá, mas que pepino é este de já constar produtos no banco de dados @talissonf ? Em qual situação isto aconteceria?

talissonf commented 4 years ago

É porque eu tinha testado ele antes instalado em algumas lojas, daí na loja que o matheus instalou ja tinha produtos salvos no db para aquele store_id e com id do bling vinculado ao produto, daí ele ignorava a sincronização daqueles produtos

leomp12 commented 4 years ago

Saquei, neste caso enviar manualmente (via API) ainda funcionaria ou são chaves primárias? Existe um endpoint na API pra limpar todas as sincronizações salvas de uma vez?

matheusgnreis commented 4 years ago

@talissonf acho que pra finalizar, fiz um teste importando produto com variações, o preço da variação não veio atrelado na variação. E também, não vem os campos value de cada variação, talvez uma saída, seja criar text e value da variação com mesmo valor, porém o value como lower case

matheusgnreis commented 4 years ago

Ele também não vem com o atributo de visível marcado

talissonf commented 4 years ago

@talissonf acho que pra finalizar, fiz um teste importando produto com variações, o preço da variação não veio atrelado na variação. E também, não vem os campos value de cada variação, talvez uma saída, seja criar text e value da variação com mesmo valor, porém o value como lower case

@matheusgnreis vou verificar isso do preço, mas sobre as variações para que sejam importadas completamente é necessario que o produto seja cadastrado corretamente conforme indicação do bling aqui. Eu não envio o value pois não é obrigatório no schema, porém é enviado o campo text. https://github.com/ecomplus/app-bling/blob/master/routes/bling/products.js#L106 Mas lembrando, as specifications só são enviadas para e-com caso o produto esteja corretamente cadastrado no bling.

talissonf commented 4 years ago

Ele também não vem com o atributo de visível marcado

Esses atributos available, visible são padrão true por isso não os envio.

talissonf commented 4 years ago

Saquei, neste caso enviar manualmente (via API) ainda funcionaria ou são chaves primárias? Existe um endpoint na API pra limpar todas as sincronizações salvas de uma vez?

Se enviado manualmente também é ignorado, pois verifico se ja existe no db. E não tem endpoint pra remover produtos existentes, deveria ter ? :thinking:

matheusgnreis commented 4 years ago

@talissonf acho que pra finalizar, fiz um teste importando produto com variações, o preço da variação não veio atrelado na variação. E também, não vem os campos value de cada variação, talvez uma saída, seja criar text e value da variação com mesmo valor, porém o value como lower case

@matheusgnreis vou verificar isso do preço, mas sobre as variações para que sejam importadas completamente é necessario que o produto seja cadastrado corretamente conforme indicação do bling aqui. Eu não envio o value pois não é obrigatório no schema, porém é enviado o campo text. https://github.com/ecomplus/app-bling/blob/master/routes/bling/products.js#L106 Mas lembrando, as specifications só são enviadas para e-com caso o produto esteja corretamente cadastrado no bling.

Eu peguei um produto que enviei a partir da e-com, deletei ele da e-com e mandei de novo, mas através do Bling. Sobre o value, eu sei que não é obrigatório, porém como você já tem o text, o value é igual, só que minúsculo. Isso eu digo, porque facilita isso pro lojista no painel, caso contrário ele tem que cadastrar o value também

leomp12 commented 4 years ago

Se enviado manualmente também é ignorado, pois verifico se ja existe no db. E não tem endpoint pra remover produtos existentes, deveria ter ? thinking

Acho que sim @talissonf , porque se o lojista quiser alterar a conta dele do Bling, como ele faria pra reenviar os produtos? Pensei foi nisto.

Eu peguei um produto que enviei a partir da e-com, deletei ele da e-com e mandei de novo, mas através do Bling. Sobre o value, eu sei que não é obrigatório, porém como você já tem o text, o value é igual, só que minúsculo. Isso eu digo, porque facilita isso pro lojista no painel, caso contrário ele tem que cadastrar o value também

@matheusgnreis acho que esta importação do Bling pra E-Com não precisa estar impecável na primeira versão, a API do Bling não é tão amigável assim e provavelmente nem tem todos os campos pros produtos e variações que tem na plataforma, vamos focar no essencial primeiro pra podermos fechar este issue, ok? Depois abrimos outros issues (enhancements) que poderão ser corrigidos com mais calma.

leomp12 commented 4 years ago

O que eu acho que é realmente essencial é funcionar sem bugs o envio de pedidos e produtos da plataforma para o ERP e sincronização de estoque, com uma configuração amigável no admin, estou certo @matheusgnreis ?

Neste sentido o mais importante é nos certificarmos que a checklist do primeiro comentário deste issue realmente está fechada: https://github.com/ecomplus/app-bling/issues/6#issue-582665029

Pelo jeito nesta checklist tá faltando só o https://github.com/ecomplus/app-bling/issues/8 , o resto você já confirmou, não é @matheusgnreis ?

Se for realmente este o caso, vamos focar nisto https://github.com/ecomplus/app-bling/issues/8 por favor @talissonf , depois picamos outras coisas que foram mencionadas aqui em outros issues, se não não vamos fechar esse aqui nunca :stuck_out_tongue:

matheusgnreis commented 4 years ago

O pedido só está sendo enviado para o Bling, quando ele fica com status aprovado. Agora que conseguimos gerar o pedido normalmente no bling, conseguiremos testar isso. Optei por esse modelo após a conversa com o Bling, creio que só teremos que mudar os status de importação do Bling. Pois ontem, aparentemente um dos status que não tinha retorno na e-com, impossibilitou de trazer o código de rastreio, então pra evitar isso, poderíamos colocar enviar o mesmo status, que outro, quando houver essa mudança de status para um que não coincide com os da e-com. Apesar de ser uma possibilidade menor, mas existe, então acredito que deva considerar por exemplo status em digitação.

leomp12 commented 4 years ago

@matheusgnreis não entendi o "status de importação do Bling".

Exportar apenas pedidos aprovados é um consenso eu acho, o negócio aqui https://github.com/ecomplus/app-bling/issues/8 é atualizar o status do pedido depois de enviado, porque quando o pedido é enviado para o Bling ele vai dar baixa no estoque, se depois o pedido for cancelado na plataforma ele deverá ser atualizado automaticamente no Bling pra voltar o estoque, caso contrário acho que vamor ter dor de cabeça com controle de estoque.

matheusgnreis commented 4 years ago

Sim, isso já havia comentado com o Talisson, cancelado ou estornado né. Porque precisamos contactar eles, vou fazer esse teste, não o fiz ainda.

matheusgnreis commented 4 years ago

Isso de fato não está funcionando ainda, fiz testes e não mudou no Bling

talissonf commented 4 years ago

https://github.com/ecomplus/app-bling/commit/694c08c8212be12c96ce59a0bf4156cd0b367ca5

talissonf commented 4 years ago

Fiz um release implementando a task https://github.com/ecomplus/app-bling/issues/8 @matheusgnreis quando puder pode testar.

matheusgnreis commented 4 years ago

Funcionou, com exceção do status Devolvido que deveria também ir para cancelado, pois se um pedido estiver aprovado e voltar, ele ficará como Devolvido e não cancelado na loja

matheusgnreis commented 4 years ago

Sim, isso já havia comentado com o Talisson, cancelado ou estornado né. Porque precisamos contactar eles, vou fazer esse teste, não o fiz ainda.

Até comentei aqui em cima, seria o estornado( devolvido ) e o cancelado

leomp12 commented 4 years ago

@talissonf na verdade o ideal é sincronizar todos os status a partir do momento que o pedido for enviado, o pedido pode ser cancelado e depois voltar a ser aberto e finalizado.

Então o correto seria parsear todos os status e enviar para o ERP, não somente cancelado/estornado, mas se na sua implementação isto não for viável agora você também pode checar o main status se cancelled (em vez do financial_status), isto funcionaria pra pagamento cancelado e devolvido, e talvez mais alguma situação.

talissonf commented 4 years ago

Pronto, todos os status sincronizados nas duas plataformas. https://github.com/ecomplus/app-bling/compare/3a07186342...8f7303cc0d :woman_dancing:

leomp12 commented 4 years ago

Boa @talissonf ! @matheusgnreis acho que podemos fechar isto aqui, certo? Abre outros issues enhancement neste repo por favor com as features que você mencionou aqui na conversa e não foram implementadas ainda.

matheusgnreis commented 4 years ago

Testado e fechado!

matheusgnreis commented 4 years ago

Acho que só faltou o lugar onde o lojista possa saber qual é a URL dele de callback, porque ela não tem em lugar nenhum

matheusgnreis commented 4 years ago

Mas assim, não é necessário, posso criar um tópico na comunidade com essa informação