2011-11-15 33 views
7

Estoy tratando de seguir un tutorial sobre la conexión al API de Magento con Soap, ¿pero ya estoy atascado? SOAP parece estar instalado en mi servidor, ya que puedo buscar el archivo .wsld y muestra un archivo xml.Conectando a la API de Magento con SOAP

He configurado el usuario y el rol en los servicios web de administración magento.

Estoy confundido por 2 cosas en el tutorial

  1. elegir un cliente de jabón, En este tutorial vamos a suponer el uso del PHP SoapClient. ¿Qué es esto dónde lo encuentro?
  2. de registro con el cliente SOAP

"Así que vamos a crear un simple script PHP que nos permite la conexión en Magento a través de SOAP. La lógica es aquí donde primero tenemos que inicializar un nuevo objeto SoapClient con como argumento la URL SOAP de Magento ".

// Magento login information 
$mage_url = 'http://MAGENTO/api/?wsdl'; 
$mage_user = 'soap_user'; 
$mage_api_key = '********'; 
// Initialize the SOAP client 
$soap = new SoapClient($mage_url); 
// Login to Magento 
$session_id = $soap->login($mage_user, $mage_api_key); 

¿Dónde se crea este guión - que es un archivo PHP simple? y ¿cómo realizas la llamada? ¿Acabas de navegar hacia ella?

http://blog.opensourcenetwork.eu/tutorials/guru/connecting-through-soap-with-magento-1

Muchas gracias de antemano

Respuesta

12

Pones esto en un nuevo archivo en blanco. Guardar como name.php und ejecutar esto es en su servidor:

<?php 
     $host = "127.0.0.1/magento/index.php"; //our online shop url 
     $client = new SoapClient("http://".$host."/api/soap/?wsdl"); //soap handle 
     $apiuser= "user"; //webservice user login 
     $apikey = "key"; //webservice user pass 
     $action = "sales_order.list"; //an action to call later (loading Sales Order List) 
     try { 

      $sess_id= $client->login($apiuser, $apikey); //we do login 


     print_r($client->call($sess_id, $action)); 
     } 
     catch (Exception $e) { //while an error has occured 
      echo "==> Error: ".$e->getMessage(); //we print this 
       exit(); 
     } 
?> 

Saludos boti

+0

disculpas por el retraso en la aplicación, así que ¿acabo de abrir este archivo en mi navegador? ejecutando el servidor de Wamp 2.1 con Php_soap ext habilitado ¿necesito algo para ejecutar el script? Muchas gracias – Ledgemonkey

+1

si solo ejecuta este script en su navegador. ;) Debe agregar un usuario y rol de servicio web en el backend de Magento. Entonces la secuencia de comandos debería funcionar :) – boti

+0

También puede ejecutar estos scripts PHP SOAP desde la línea de comandos, por ejemplo. php name.php. Esto es útil cuando se prueba ya que no tiene que informar todo de nuevo en HTML. – Pete855217

1

Se refieren a la funcionalidad de cliente SOAP estándar de PHP (proporcionado, no puedo leer el enlace que has publicado, pero estoy asumiendo que es) . Echar un vistazo aquí para obtener más: http://php.net/manual/en/class.soapclient.php

+0

Muchas gracias, ¿Necesito instalar esto? ¿Cómo encaja con la conexión a la API de Magento? – Ledgemonkey

3
  1. Sí, los Soap Client los documentos se refieren a es el construido en PHP SoapClient objeto. Hay una gran cantidad de clientes de soap escritos en una plétora de diferentes idiomas. SOAP, como protocolo, es independiente del lenguaje/plataforma. (aunque los idiomas/plataformas individuales tienden a tener sus propias peculiaridades). Magento proporciona un servidor de Soap, que puede interactuar a través de un cliente. Esta es la arquitectura cliente/servidor.

  2. Llama a este script como lo desee. Puede cargarlo en una página web individual, puede ejecutarlo desde la línea de comandos $ php script.php, se puede poner en un include archivos, puede colocarlo en archivos de clase de otro marco, etc.

+0

gracias, entonces ¿tengo que hacer algo con este cliente de jabón, tengo que cargarlo? No estoy seguro de cómo encaja? He escrito un script.php: he incluido el código exacto en la pregunta. Todo lo que recibo si lo uso en el navegador es el código menos la primera línea, gracias de nuevo. ¡Uso su visualizador de imagen todo el tiempo! – Ledgemonkey

+0

no puede editar la pregunta! aquí está el código que estoy usando en el archivo de script login ('soap-user', 'greeneyed'); $ customerinfo = $ proxy-> customerInfo ($ sessionId, 1); \t print_r ($ customerinfo); – Ledgemonkey

+0

@Ledgemonkey Parece que su servidor web no está configurado para ejecutar scripts PHP. Es posible que desee encontrar una guía rápida de PHP antes de usar algo como SOAP Api. –

3

esto ayudó mucho gracias

contestadas 16 de Nov '11 a las 7:26 boti

Lo pone en un nuevo archivo en blanco. Guarde esto como nombre.php und ejecutar esto es en su servidor:

<?php 
     $host = "127.0.0.1/magento/index.php"; //our online shop url 
     $client = new SoapClient("http://".$host."/api/soap/?wsdl"); //soap handle 
     $apiuser= "user"; //webservice user login 
     $apikey = "key"; //webservice user pass 
     $action = "sales_order.list"; //an action to call later (loading Sales Order List) 
     try { 
     $sess_id= $client->login($apiuser, $apikey); //we do login 


    print_r($client->call($sess_id, $action)); 
    } 
    catch (Exception $e) { //while an error has occured 
     echo "==> Error: ".$e->getMessage(); //we print this 
      exit(); 
    } 
?> 

Hola a todos,

La solución es:

del panel de administración de Magento ...

System -> Configuration -> Web -> Url Options -> Add Store Code to Urls = NO 

Y !!!!

Auto-redirect to Base URL = NO 

a continuación, añadir el usuario a partir

System -> Web Services-> Users 

Hacer un usuario para usar con el SoapClient

luego hacer un papel de

System -> Web Services -> Roles 

Adjuntar todos los recursos si desea hacerlo de esta manera.

¡Esto es importante! añadir esta función al usuario que acaba de crear

También asegúrese de que PHP.ini de

;extension=php_soap.dll 

a

extension=php_soap.dll 

A continuación, puede conectar con este usuario utilizo este código

$proxy = new SoapClient(’http://localhost/api/soap/?wsdl’,array( 
$apiuser = "user", 
$apikey = "key")); 

descarga soapui de forgesource http://sourceforge.net/projects/soapui/?source=directory

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <urn:login soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
     <username xsi:type="xsd:string">username</username> 
     <apiKey xsi:type="xsd:string">password</apiKey> 
     </urn:login> 
    </soapenv:Body> 
</soapenv:Envelope> 

el enlace de nuestro servidor con enlace a continuación y guardar como magentoV2.wsdl

http://localhost/index.php/api/v2_soap?wsdl 

espero que esto ayude a otros porque un perdido medio día para entender estas cosas simples porque había no hay suficiente información detallada en un solo lugar.

HR

0

Como por su pregunta que se TEL sencillos pasos, siga estos pasos, entonces wii resultado se obtiene como se requiere. 1. Inicie sesión en el panel de administración de Magento y luego navegue hasta system-->webservices-->SOAP RPC Roles create SOAP RPC roles 2. Desplácese hasta system-->webservices-->SOAP RPC users cree el mapa de usuario SOAP RPC este usuario con roles. 3. Cree un nombre de archivo PHP como magentoapi.php dentro de xampp-->htdocs-->folder(project name). 4. Aquí les doy un ejemplo, cómo obtener información del cliente. 5.Abrir magentoapi.php archivo de crear un nombre de función como customerInfo

A continuación se muestra el código:

function customerInfo($api_url, $api_user, $api_pwd) { 

     $websites = '' . $api_url . "/index.php/api/soap/?wsdl"; 
     try { 
      $client = new SoapClient($websites); 
      $session = $client->login($api_user, $api_pwd); 

      $result = $client->call($session, 'customer.info', '1'); 
      print_r($result); 
     } catch (\SoapFault $e) { 
      echo $e->getMessage(); 
     } 
    } 

Aquí, $api_url es su tienda url, $api_user = Nombre de usuario de la API, contraseña $api_pwd = API pasar este valor a la función customerInfo. Vamos a obtener información completa acerca de un cliente en particular

hacer lo mismo para todas las funciones Aquí está la URL de referencia de API http://devdocs.magento.com/guides/m1x/api/soap/customer/customer.list.html

Por último ejecute el siguiente URL en el navegador obtendrá resultados

http://localhost/yourprojectname/magentoapi.php?functionName=customerLogout&store_url=http://127.0.0.1/magento19&api_username=magento&api_key=123456

Cuestiones relacionadas