Author: Emilio PM
Prestashop es una aplicación web muy extendida en Europa y que se utiliza para crear comercios electrónicos.
Dispone de una funcionalidad para conectar aplicaciones utilizando un servicio web. Existen multitud de páginas webs donde te explican como activar un servicio web en Prestashop, así pues, el primer paso es activarlo y obtener una clave para poder conectarnos.
En Delphi disponemos de varios componentes que podemos utilizar para obtener la información de nuestro servicio web, en este caso sería utilizando REST. En nuestro ejemplo veremos como hacerlo con el componente TRESTClient.
En nuestro ejemplo vamos a necesitar dos componentes en nuestro formulario:
- TRESTClient. Utilizado para conectarnos con el servicio web.
- TRESTRequest. Utilizado para obtener información.
- TRESTResponse. Utilizado para almacenar el contenido obtenido.
El primer problema que nos encontramos es que el servicio web utiliza XML en vez de JSON. Es algo que debemos tener en cuenta a la hora de utilizar nuestro componente.
TRESTClient
Propiedades que debemos modificar:
- BaseURL: Debe ser la URL base donde se encuentra el webservice de Prestashop. Normalmente se encuentra en /api y en mi caso es http://localhost/prestashop/api/
- ContentType: Es el tipo de contenido con el cual vamos a trabajar. Al ser XML debemos indicar el valor ‘text/xml’
- Accept: Indicamos que tipos de contenidos vamos a aceptar. En nuestro caso: ‘application/json, text/plain, text/xml; q=0.9, text/html;q=0.8,’
- AcceptCharset: Indicamos que tipo de Charset esperamos. En nuestro caso: ‘ISO-8859-1, *;q=0.8’
TRESTRequest
Propiedades que debemos modificar:
- Resource: Será el recurso que vamos a utilizar de prestashop, por ejemplo, vamos a poner products?ws_key=ABCDEFGHIJKLMNOPQRSTUVWXYZ789012 para obtener los productos dados de alta en prestashop.
- Client: Deberemos tener asignado el cliente anterior.
- Response: Debemos tener asignado el componente Request
Pruebas
Pasamos a realizar las primeras pruebas poniendo un TButton y un TMemo.
En el click del ratón escribimos el siguiente código (recuerda cambiar el nombre por el que tenga tu componente):
RestRequest1.Execute; Memo1.Text:=RESTResponse1.Content;
Ejecutamos nuestra aplicación y nos dará como resultado algo así:
<?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <products> <product id="1" xlink:href="http://localhost/prestashop/api/products/1"/> <product id="2" xlink:href="http://localhost/prestashop/api/products/2"/> <product id="3" xlink:href="http://localhost/prestashop/api/products/3"/> <product id="4" xlink:href="http://localhost/prestashop/api/products/4"/> <product id="5" xlink:href="http://localhost/prestashop/api/products/5"/> <product id="6" xlink:href="http://localhost/prestashop/api/products/6"/> <product id="7" xlink:href="http://localhost/prestashop/api/products/7"/> </products> </prestashop>
De esta manera hemos obtenido un listado de todos los productos que tenemos en prestashop.
Y si quieres probarlo, te invito a que te descargues la [DownloadButton Product=’Delphi’ Caption=’Trial de Delphi’] y pruebes, es muy sencillo de realizar.