Forum
See question

Erro ao criar produto com gestão de inventário via Web API no Jasmin   

30 views
0
0

Boa tarde,

Estou com uma dúvida sobre como adicionar um novo produto no Jasmin, via Web API.
Consigo criar produtos básicos sem qualquer problema, mas quando ativo as opções de gestão de inventário ou disponibilidade para vendas, recebo o seguinte erro:

"data": {
"message": "The extensions Materials and Sales must be active."
}

Não percebo exatamente o que este erro significa e não encontrei documentação que explique a razão ou como resolver.

Agradeço desde já qualquer ajuda.

Faça login para poder traduzir
API Endpoints
Integration
Jasmin
Marked as spam
Created 5 months and 2 weeks ago paulomarques-2
p
paulomarques-2 Iniciante
3 answers
0
Private answer

Boa tarde Eduardo, estou a tentar fazer um pedido POST para a extensão materials de um sales item já criado como sugeriu e não estou a conseguir. Estou a obter um erro interno do servidor. Envio em anexo um screenshot do pedido que estou a tentar fazer pelo postman.

 

Faça login para poder traduzir
Marked as spam
Created 4 months and 4 weeks ago paulomarques-2
p
paulomarques-2 Iniciante
    0
    Private answer

    Boa tarde, Eduardo.

    Obrigado pela resposta.

    Já conhecia esse comportamento do Jasmin, mas não estava a perceber qual era o procedimento certo. Assumi que o artigo tinha de ser criado logo com a gestão de inventário ativa para o segundo endpoint funcionar, e afinal era isso que me estava a bloquear.

    Pelo que explicou, o fluxo correto é:

    1. Criar o artigo apenas como artigo de vendas, sem gestão de inventário.

    2. Chamar depois o segundo endpoint, que adiciona a informação de stock e ativa essa flag automaticamente.

    Vou testar assim, obrigado pela ajuda.

    Aproveito para perguntar outra coisa: como é que se deve enviar o valor do campo imagem?
    Tentei enviar em base64 porque a documentação diz que é uma string, mas não funcionou. Depois reparei que, quando crio um produto pelo dashboard, o que fica guardado é um path para a imagem. Não sei como proceder. Consegue ajudar?

    Faça login para poder traduzir
    Marked as spam
    Created 5 months and 1 week ago paulomarques-2
    p
    paulomarques-2 Iniciante
      Comments
      Boa tarde Paulo, A resposta a esta sua questão já foi respondida aqui. https://developers.ila.cegid.com/forum/fazer-um-post-de-um-artigo-com-imagem-usando-a-api-jasmin/
      4 months and 4 weeks ago
      eduardosilva
        1
        Private answer

        Boa tarde Paulo,
        O comportamento pela WebAPI é idêntico ao que ocorre pelo interface, o sistema está a informar que não basta apenas indicar que o artigo base gere inventário, tem de preencher os dados necessários na configuração de inventário desse artigo.
        Pela WebAPI não vai conseguir criar um artigo e indicar de uma única vez que esse artigo será usado em vendas e também terá gestão de inventário (como o exemplo que refere).

        Esta mecânica de facto não se encontra documentada de forma especial na WebAPI pois tem a ver não com a WebAPI em si mesma, mas com a mecânica de funcionamento do proprio Jasmin e é assumido que quem está a implementar uma integração com um produto já tem o conhecimento de como esse produto funciona.

        Para clarificar, o Jasmin permite criar artigos base (sem qualquer informação adicional) e "estender" a informação desse artigo base com "informação extra" consoante o tipo de utilização desse artigo base. A essa informação adicional chamamos de extensões (e nesse caso poderá indicar que um artigo poderá estar disponível em vendas, e/ou em compras e/ou se irá gerir de inventário)

        Este comportamento é de certa forma espelhado na WebAPI permitindo criar apenas o artigo base (usando o endpoint POST  businessCore/items) ou adicionalmente com os endpoints relativos a extensões.
        Para facilitar o uso e criação destas extensões, disponibilizamos para cada uma delas 2 endpoints.
        - Um que permite criar apenas a informação adicional respetiva (o endpoint termina em /extension) e significa que o artigo base já tem de existir
        - Outro que permite criar o artigo base em simultâneo, ao mesmo tempo que de seguida lhe associa a informação adicional respetiva (sem /extension)

        Assim no seu caso, terá de efetuar isso em pelo menos dois passos.

        1- Criar o artigo como sendo artigo de vendas,
        usando o endpoint de criação de artigo de vendas - POST /salesCore/salesItems (que permite criar em simultâneo o artigo base)
        https://jasminsoftware.github.io/salescore.salesitems.html#fee0a394-75c7-4a52-9347-03bd81d654d0

        2- Criar a configuração de inventário para esse mesmo artigo (entretando criado em 1),
        usando o endpoint  de criação de artigo de inventário - POST /materialsCore/materialsItems/extension (apenas dos dados de inventário)
        https://jasminsoftware.github.io/materialscore.materialsitems.html#6a5137b4-575c-499c-9093-025ca54f7b65

        Nota: Como explicado anteriormente, se antes do ponto 1, já tiver criado o artigo base, não deverá usar o endpoint que cria também o artigo base (vai indicar que este já existe) deverá antes utilizar o endpoint que cria apenas a configuração de vendas - POST /salesCore/salesItems/extension
        https://jasminsoftware.github.io/salescore.salesitems.html#4c39a6c1-5377-4634-a405-6bd5ec92f243

        Faça login para poder traduzir
        Marked as spam
        Created 5 months and 2 weeks ago eduardosilva
        e
        eduardosilva Responsiveness Member
          Comments
          Boa tarde, Eduardo. Obrigado pela resposta. Já conhecia esse comportamento do Jasmin, mas não estava a perceber qual era o procedimento certo. Assumi que o artigo tinha de ser criado logo com a gestão de inventário ativa para o segundo endpoint funcionar, e afinal era isso que me estava a bloquear. Pelo que explicou, o fluxo correto é: Criar o artigo apenas como artigo de vendas, sem gestão de inventário. Chamar depois o segundo endpoint, que adiciona a informação de stock e ativa essa flag automaticamente. Vou testar assim, obrigado pela ajuda. Aproveito para perguntar outra coisa: como é que se deve enviar o valor do campo imagem? Tentei enviar em base64 porque a documentação diz que é uma string, mas não funcionou. Depois reparei que, quando crio um produto pelo dashboard, o que fica guardado é um path para a imagem. Não sei como proceder. Consegue ajudar?
          5 months and 1 week ago
          paulomarques-2