¿Tienes una pregunta?

Si usted tiene cualquier pregunta, escriba a continuación lo que está buscando!

Magento API – WSDL – SOAP/XLM-RPC – Web Services


Magento API
Magento API, es algo bastante complejo de entender, así que lo explicaremos paso a paso, para saber como hacerla funcionar.

1.-¿Para que sirve Magento API?
Te da la posibilidad de gestionar la tienda Magento a través, de un ERP, donde puedes gestionar los clientes, categorías, productos, inventario, pedidos de venta, etc.

Por ejemplo si tienes tu tienda ecommerce, y quieres que el inventario de tu tienda física con el inventario de la tienda Magento esten ajustados, bueno la respuesta es Magento API.


WSDL
2.- ¿Que es WSDL? bueno significa Web Services Description Language: Es el lenguaje de la interfaz pública para los Web Services. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los Web Services.


SOAP
3.- ¿Que es SOAP? SOAP significa Simple Object Access Protocol o XML-RPC (XML Remote Procedure Call): Protocolos sobre los que se establece el intercambio en el uso de un Web Service.


Web Services
4.- ¿Que es Web Services?
«Es un caldero a fuego lento», donde se consumen recursos desde el usuario que los utiliza y las aplicaciones interactuantes. Este caldero ocupa un conjunto de protocolos y estándares como XML para el intercambio de datos.

Ejemplo: en mi iPhone puedo ver el clima de Santiago de Chile u otro país, ¿y como pasa eso? bueno ahí está la respuesta… con un Web Services. Es decir alguien en alguna parte del mundo, creo un Web Service basado en xml, el cual interactua con mi iPhone, el sistema meteorológico mundial y IOS de Apple.


Bueno del punto 1 y 2, no los vamos a preocupar porque Varien o ebaY, ya hicieron el trabajo por nosotros, así vamos al punto 3.
La instalación de SOAP debe ser absolutamente necesaria para la ejecución de Magento API y WSDL:
1.- Saber la versión de tu php, por consola es así:

CÓDIGO:
php -v

2.- SOAP para PHP 5.2.6 por consola es así:

CÓDIGO:
wget http://museum.php.net/php5/php-5.2.6.tar.gz
CÓDIGO:
tar -zxf php-5.2.6.tar.gz
CÓDIGO:
cd php-5.2.6
./configure --enable-soap=shared
CÓDIGO:
make
CÓDIGO:
make test
CÓDIGO:
cp modules/soap.so /usr/lib/php/modules/
CÓDIGO:
echo "extension=soap.so" > /etc/php.d/soap.ini
CÓDIGO:
/etc/init.d/httpd restart
CÓDIGO:
cd ..
rm -rf php-5.2.6*

3.- SOAP para PHP 5.3.5 por consola es así:

CÓDIGO:
wget http://museum.php.net/php5/php-5.3.5.tar.gz
CÓDIGO:
tar -zxf php-5.3.5.tar.gz
CÓDIGO:
cd php-5.3.5
./configure --enable-soap=shared
CÓDIGO:
make
CÓDIGO:
make test
CÓDIGO:
cp modules/soap.so /usr/lib64/php/modules/
CÓDIGO:
echo "extension=soap.so" > /etc/php.d/soap.ini
CÓDIGO:
/etc/init.d/httpd restart
CÓDIGO:
cd ..
rm -rf php-5.3.5*

Nota (02-06-2013):
En Media Temple con versión dv(4.0) php 5.3.5 no permitiá instalar SOAP, por la versión de php-common-5.3.5-1.el5.remi.1.x86_64, así que se recurrió a atomicy (pero quedó un error en el servidor), y se hizo lo siguiente por consola:

CÓDIGO:
wget -q -O - http://www.atomicorp.com/installers/atomic |sh

yum install php-soap

service httpd restart

Dada esta instalación el servidor se fue abajo y no permitía leer las bases de datos, y nos mandaba este error:

CÓDIGO:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

La razón de esto es que durante la instalación de yum install php-soap lanzó 2 advertencias:

CÓDIGO:
warning: /etc/php.ini created as /etc/php.ini.rpmnew
warning: /etc/my.cnf created as /etc/my.cnf.rpmnew

Y era el segundo archivo el cual tenía el error, es decir, my.cnf y se comento está línea que no dejaba leer la base de datos:

CÓDIGO:
#skip-locking

Bueno y el servidor volvió a la vida, con SOAP incluido pero con la versión php 5.3.25 (un misterio que debo resolver).
Seguimos…
4.- Ahora que ya está disponible SOAP en tu servidor, debes crear un usuario y contraseña en «Web Services/SOAP/XML-RPC Users» y en «Web Services/SOAP/XML-RPC Roles en el admin de Magento.
Veamos un ejemplo concreto construyendo un archivo php, para crear los usuarios o clientes en Magento y lo llamaremos «create.phtml»:



Login Page


firstname :
lastname :
email :
password_hash :

5.- Creamos la página que recibe el POST o GET y lo llamaremos «customer_create.php», quien se encargará de insertar, por la API de Magento, los clientes creados(customer):

<?php
//Url de la conexión
$client = new SoapClient("http://tutiendamagento.com/api/?wsdl");
 
//Login
$session = $client->login("USUARIO", "CONTRASEÑA");
 
//Atributos para el nuevo cliente
$data = array(
    "firstname"       => $firstname = $_GET['firstname'],
    "lastname"        => $lastname = $_GET['lastname'],
    "email"           => $email = $_GET['email'],
    "password_hash"   => md5 ($password_hash = $_GET ['password_hash']),
    //"password_hash"   => $password_hash = $_GET ['password_hash'],
    //"password_hash"   => md5("europa"),
    "store_id"        => 1,
    "website_id"      => 1,
    "created_in"	=>	"English",
    "group_id"		=>	1,
    "disable_auto_group_change"		=>	0
    
    
);
 
 
//Crea cliente
$id = $client->call($session, "customer.create", array($data));
 
//Impresión
print_r($id);
 
//Logout
$client->endSession($session);
 
?>

6.- Pueden ver el ejemplo funcionado, donde se pueden crear como usuario y luego entrar con su cuenta a la tienda, veanlo aquí:
http://api.magentochile.cl/ERP/customer/create.phtml

Continuará…
Atte
Boris Durán R.

Commentarios

commentarios

Deje un comentario

Tu dirección de correo electrónico no será publicada. Los campos requeridos están marcados *

Puedes usar las siguientes etiquetas y atributos HTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>