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.
Solved! Go to Solution.
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.
Já viste esta documentação? Tem exemplos muito bons.
http://devdocs.magento.com/guides/m1x/api/soap/catalog/catalogProduct/catalog_product.create.html
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.
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...
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.
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.