cancel
Showing results for 
Search instead for 
Did you mean: 

Integração com XML RPC (DELPHI)

SOLVED

Integração com XML RPC (DELPHI)

Alguém sabe onde encontro ou possui, um modelo de arquivo XML de requisição do método catalog_product.create usando integração por arquivo XML. Gero o XML e faço a transmissão direto, métodos simples como login e lista de produtos consegui, mas o de cadastro por ser mais complexo estou tendo problemas para criar um arquivo válido.

Tags (2)
6 REPLIES

Re: Integração com XML RPC

Já viste esta documentação? Tem exemplos muito bons.
http://devdocs.magento.com/guides/m1x/api/soap/catalog/catalogProduct/catalog_product.create.html

Problem solved? Click Accept as Solution!
Still stuck? Check out our documentation: http://magento.com/help/documentation

Re: Integração com XML RPC

Então Daniel, vi sim, e assim como no resto da internet, a documentação do Magento tem muitos exemplos em PHP. Estou tentando fazer uma integração com Delphi, e seja por XML ou por Soap estou tendo problemas. Minha última tentativa foi por Soap chamando o método e passando os parâmetros. Para fazer login ou consultar a lista de itens foi simples, mas a criação de produto pelo método que citei não está funcionando, sempre tenho erro de parâmetros faltando, mas não sei como poderia passar esses parâmetros para que o servidor os aceite. 

Re: Integração com XML RPC

Olá, 

 

Não vi o teu código, nem conheço a estrutura de atributos da tua loja. Mas parece-me que tens um atributo que é obrigatório e não está a ser enviado.

 

Pode usar catalog_product_attribute para verificar quais são os atributos, e quais os obrigatórios, que pertencem ao attribute set que queres inserir.

 

Todos os que não estiverem listados abaixo, têm de ir para o "additional_attributes" 

 

<complexType name="catalogProductCreateEntity">
<all>
<element name="categories" type="typens:ArrayOfString" minOccurs="0"/>
<element name="websites" type="typens:ArrayOfString" minOccurs="0"/>
<element name="name" type="xsd:string" minOccurs="0"/>
<element name="description" type="xsd:string" minOccurs="0"/>
<element name="short_description" type="xsd:string" minOccurs="0"/>
<element name="weight" type="xsd:string" minOccurs="0"/>
<element name="status" type="xsd:string" minOccurs="0"/>
<element name="url_key" type="xsd:string" minOccurs="0"/>
<element name="url_path" type="xsd:string" minOccurs="0"/>
<element name="visibility" type="xsd:string" minOccurs="0"/>
<element name="category_ids" type="typens:ArrayOfString" minOccurs="0"/>
<element name="website_ids" type="typens:ArrayOfString" minOccurs="0"/>
<element name="has_options" type="xsd:string" minOccurs="0"/>
<element name="gift_message_available" type="xsd:string" minOccurs="0"/>
<element name="price" type="xsd:string" minOccurs="0"/>
<element name="special_price" type="xsd:string" minOccurs="0"/>
<element name="special_from_date" type="xsd:string" minOccurs="0"/>
<element name="special_to_date" type="xsd:string" minOccurs="0"/>
<element name="tax_class_id" type="xsd:string" minOccurs="0"/>
<element name="tier_price" type="typens:catalogProductTierPriceEntityArray" minOccurs="0"/>
<element name="meta_title" type="xsd:string" minOccurs="0"/>
<element name="meta_keyword" type="xsd:string" minOccurs="0"/>
<element name="meta_description" type="xsd:string" minOccurs="0"/>
<element name="custom_design" type="xsd:string" minOccurs="0"/>
<element name="custom_layout_update" type="xsd:string" minOccurs="0"/>
<element name="options_container" type="xsd:string" minOccurs="0"/>
<element name="additional_attributes" type="typens:catalogProductAdditionalAttributesEntity" minOccurs="0"/>
<element name="stock_data" type="typens:catalogInventoryStockItemUpdateEntity" minOccurs="0"/>
</all>
</complexType> 

 

 

Aqui tens um exemplo (sei que é em php mas dá para teres uma ideia):

$client = new SoapClient($pathToWsdl); // set path to your Magento WSDL
$session = $client->login($apiuser, $apikey); // specify username and password

$catalogProductCreateEntity = new stdClass();
$additionalAttrs = array();

$catalogProductCreateEntity->name = "product name";
$catalogProductCreateEntity->description = "description";
$catalogProductCreateEntity->short_description = "desc";
$catalogProductCreateEntity->status = "1";
$catalogProductCreateEntity->price = "99";
$catalogProductCreateEntity->tax_class_id = "2";
/* you can add other direct attributes here */

$manufacturer = new stdClass();
$manufacturer->key = "manufacturer";
$manufacturer->value = "3";
$additionalAttrs[] = $manufacturer;        
/* you can add other additional attributes here like $manufacturer */

// finally we link the additional attributes to the $catalogProductCreateEntity object
$catalogProductCreateEntity->additional_attributes = $additionalAttrs;

// send the request
$client->catalogProductUpdate($session, "your product id", $catalogProductCreateEntity, NULL, "id");

// end session and enjoy your updated products :)
$client->endSession($session);

 source do exemplo: http://www.agoradesign.at/blog/creating-or-updating-products-magento-soap-v2-api-very-challenging-ad...

 

Problem solved? Click Accept as Solution!
Still stuck? Check out our documentation: http://magento.com/help/documentation

Re: Integração com XML RPC

Consegui fazer a comunicação por meio de troca de arquivo XML, que é o que precisava. Estudei um pouco a estrutura do padrão XML RPC, e com alguns testes e ajustes consegui.

Re: Integração com XML RPC

Boa tarde,

 

estou fazendo uma integração com ERP, porem esta havendo alguns problemas com a conexão na api_v2 na api_v1 esta funcionando normalmente a versão do magento é a  1.9.2.2. utilizando delphi como ide de desenvolvimento versão XE, fazendo simplesmente esta codificação:

delphi:

 

magento := GetPortType(False,'',HTTPRIO1);
login := magento.login('username','password');

 

WDSL: 

http://magento.localhost/api/v2_soap/?wsdl=1

 

se puder me passar a documentação que deu uma estudada ou me passar se há algo errado na forma que esta sendo feita,

 

"O tempo limite da operação foi atingido -http://magento.localhost/index.php/api/v2_soap/index/ - SOAPAction:urn:Action"

 

Agradeço a ajuda,

 

Obrigado,

 

Leandro Chmereha.

Re: Integração com XML RPC

Posso sugerir você dar uma olhada nesses exemplos pra consumir a API SOAP que disponibilizei no Magenteiro. Acho que ajudaria a entender como funciona a API SOAP. Aí é só adaptar...

Meus exemplos usam API v2 do Magento com SOAP mesmo.

Ricardo Martins - Magenteiro.com
Tags (3)