método StockKeepingUnitEspecificationInsert do Webservice SOAP para API Rest

Senhores,

Estamos efetuando a migração hoje dos métodos do Webservice SOAP para a nova API Rest e mapeando os métodos existentes da API , verificamos que muitas não existem, ou seja, não foram ainda migradas por vocês do SOAP para a REST. Gostaríamos de saber se existe o método StockKeepingUnitEspecificationInsert do Webservice SOAP já migrado para a API Rest ? Caso não exista ainda, seria possível já desenvolver para a API ? Pois hoje este método StockKeepingUnitEspecificationInsert do Webservice SOAP estamos tendo problemas no consumo via WSDL, o parâmetro array não está sendo compatível com a linguagem Delphi, fazendo com que tivéssemos que desenvolver este método em PHP, mas o mesmo está muito complicado para dar manutenção.

Favor desenvolverem este método StockKeepingUnitEspecificationInsert para API Rest o quanto antes e nos comunicar, ok ?

Bom dia @Eduardo Fonseca​ ainda não possuímos uma API para substituir esse método do Webservice. Para o catalog temos apenas APIs para realizar GET em especificações de produtos e Skus.

Está em nosso backlog o desenvolvimento, é algo que nos interessa também. Ainda mais em função do norte que a evolução da plataforma está caminhando.

Não há como lhe afirmar uma data, sabemos da importância, e estamos trabalhando duro para lançar o quanto antes.

Bom dia.

Você pode fazer no delphi o envelope xml/soap manualmente e enviar sem usar o wsdl.

function InserirEspecificacao(_VtexId:integer; _FieldName: string; _Value:string):boolean;

var

IdHTTP1 : TIdHTTP;

postData : TMemoryStream;

myFile : TextFile;

text : string;

begin

text := '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">'+

'<soapenv:Header/>'+

'<soapenv:Body>'+

'<tem:ProductEspecificationInsert>'+

'<tem:idProduct>'+IntToStr(_VtexId)+'</tem:idProduct>'+

'<tem:fieldName>'+_FieldName+'</tem:fieldName>'+

'<tem:fieldValues>'+

'<arr:string>'+_Value+'</arr:string>'+

'</tem:fieldValues>'+

'</tem:ProductEspecificationInsert>'+

'</soapenv:Body>'+

'</soapenv:Envelope>';

try

AssignFile(myFile, GetCurrentDir +'\Especification.XML');

ReWrite(myFile);

WriteLn(myFile, text);

finally

CloseFile(myFile);

end;

if not FileExists(GetCurrentDir + '\Especification.XML') then

begin

Result:= False;

Exit;

end;

// faz o envio do envelope xml/soap para o webservice

IdHTTP1 := TIdHTTP.Create(nil);

postData := TMemoryStream.Create;

try

mTemp.Lines.Clear;

postData.Position := 0;

postData.LoadFromFile(GetCurrentDir + '\Especification.XML');

IdHTTP1.Request.ContentType := 'text/xml';

IdHTTP1.Request.Charset := 'utf-8';

IdHTTP1.Request.ContentLength := postData.Size;

IdHTTP1.Request.CustomHeaders.Values['SOAPAction'] := 'http://tempuri.org/IService/ProductEspecificationInsert';

IdHTTP1.ProtocolVersion := pv1_1;

IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions + [hoKeepOrigProtocol];

IdHTTP1.Request.BasicAuthentication := False;

IdHTTP1.Request.Authentication := TIdBasicAuthentication.Create;

IdHTTP1.Request.Authentication.Username:= 'usuario vtex';

IdHTTP1.Request.Authentication.Password:= 'token vtex';

mTemp.Lines.Text := IdHTTP1.Post('http://webservice-teste.vtexcommerce.com.br/AdminWebService/Service.svc', postData);

if mTemp.Text <> EmptyStr

then Result:= true

else Result:= false;

except

on e: Exception do

begin

Result:= False;

MessageDlg(e.Message,mtError,[mbOK],0);

end;

end;

postData.Free;

IdHTTP1.Free;

end;

Irei efetuar esta implementação conforme abaixo, muito obrigado Pessoal ! Fico à sua disposição para quaisquer outras informações ou esclarecimentos, Logotipo Insertsoft ( Outlook ) Eduardo Fonseca Engenharia + eduardo.fonseca@insertsoft.com.br : www.insertsoft.com.br ( (11) 2049-2000 Insertsoft Sistemas Soluções Inteligentes para Automação Comercial e Gestão Empresarial

@Eduardo Fonseca​ Note que desde a criação deste post, surgiu a documentação de API REST para especificações, vale dar uma conferida: https://documenter.getpostman.com/view/845/vtex-catalog-api/Hs44#e21ae8bb-789e-df19-e4a9-30985d9fcafb

Olá Eduardo Gomes ! Primeiramente obrigado pela resposta. Sobre o link mencionado, é este link mesmo que usamos quando migramos do Webservice SOAP para API Rest e este método StockKeepingUnitEspecificationInsert não tem ainda na API Rest ! Fico à sua disposição para quaisquer outras informações ou esclarecimentos, Logotipo Insertsoft ( Outlook ) Eduardo Fonseca Engenharia + eduardo.fonseca@insertsoft.com.br : www.insertsoft.com.br ( (11) 2049-2000 Insertsoft Sistemas Soluções Inteligentes para Automação Comercial e Gestão Empresarial

Oi @Eduardo Fonseca​ , imagina! Me apressei na resposta sem ler exatamente o cenário. Mas tenho uma boa notícia: fiz alguns testes e é possível sim cadastrar especificação de SKU com esse método REST, segue um exemplo de JSON:

{ "Name": "Tamanho", "CategoryId": 29, "FieldId": 21, "IsActive": true, "IsRequired": true, "FieldTypeId": 5, "FieldTypeName": "Combo", "FieldValueId": null, "Description": null, "IsStockKeepingUnit": true, "IsFilter": true, "IsOnProductDetails": false, "Position": 1, "IsWizard": false, "IsTopMenuLinkActive": false, "IsSideMenuLinkActive": true, "DefaultValue": null, "FieldGroupId": 29, "FieldGroupName": "Testes" }

Note o campo "IsStockKeepingUnit": true,.

Testei com sucesso!

Qualquer dúvida, me avise.

Olá Eduardo Gomes ! Efetuei a implementação com a função com o Fábio Telles me enviou, achei mais fácil para entender, pois ficarei usando está função até a VTex converter a StockKeepingUnitEspecificationInsert para API Rest, mas mesmo assim obrigado pelo retorno ! Abraços, Eduardo Fonseca
Olá Fábio Telles ! Efetuei a implementação usando a função que me enviou, mas tive que mudar o método, pois o que me enviou é o “ProductEspecificationInsert“ e o que estou usando é o “StockKeepingUnitEspecificationInsert” , mas beleza, funcionou... Obrigado mesmo !!! Fico à sua disposição para quaisquer outras informações ou esclarecimentos, Logotipo Insertsoft ( Outlook ) Eduardo Fonseca Engenharia + eduardo.fonseca@insertsoft.com.br : www.insertsoft.com.br ( (11) 2049-2000 Insertsoft Sistemas Soluções Inteligentes para Automação Comercial e Gestão Empresarial