Cómo utilizar la API de PrestaShop

[et_pb_section bb_built=»1″][et_pb_row][et_pb_column type=»4_4″][et_pb_text _builder_version=»3.21″]

PrestaShop es una plataforma eCommerce que cuenta con una gran comunidad de usuarios y un ecosistema en lo que a módulos se refiere, que suplen una gran cantidad de necesidades diversas, además cuenta con una licencia Open Software License v.3.0. Nos brinda una gran cantidad de opciones, que van desde tarifas para transportistas de diferentes zonas geográficas, stock avanzado e incluso la posibilidad de hacer una multitienda. Pero, si queremos interactuar con el core PrestaShop sin necesidad de hacerlo de forma manual o a través de las vías habituales haciendo uso del del backoffice. ¿Cómo lo hacemos? Para este propósito se creó el webservice, el cual, a través de la exposición de un recurso, nos permite realizar acciones para automatizar tareas, integrar la información en otros sistemas, etc. Entre los cuales, podemos ver que hay recursos para «orders», «products» o «customers» entre otros.

¿Qué vamos a hacer?

En este artículo, vamos a ver como podemos explotar el recurso de «orders» con los permisos de «Ver» a través del webservice. Anteriormente, comentamos que era un API REST, te dejamos aquí un link por si todavía no sabes qué es. Además, en este otro artículo, comentamos el uso de composer, que usaremos para instalar una librería que nos facilitará el trabajo. Vamos a suponer que se dispone de un servidor apache o nginx para ejecutar los archivos que a continuación se presentan.

Para comenzar con las pruebas, vamos a utilizar un paquete llamado guzzle, que instalaremos a través de composer. En la documentación del paquete nos instan a que instalemos composer, paso que nos saltaremos, suponiendo que ya lo tenemos instalado. El siguiente comando lo que hará entre otras cosas, es descargar el paquete con sus respectivas dependencias en la carpeta vendor, generar los autoloaders, etc, para que podamos usarlo.

¿Cómo crear el api key en PrestaShop?

En primer lugar, lo que necesitamos para poder iniciar las pruebas es tener una clave de webservice. Para ello, nos dirigimos a parámetros avanzados > Webservice. Si nunca lo hemos usado, tendremos que activar el servicio con el switch correspondiente antes de añadir el key. Tras pulsar sobre añadir, se nos muestra una tabla, con los recursos a la izquierda, y las acciones en la parte superior. Nosotros sólo activaremos el recurso «orders» con la acción GET, para poder llevar a cabo consultas, como hemos comentado anteriormente. El resto de acciones, se pueden usar para crear, borrar y modificar un recurso, cosa que queda fuera de este artículo.

Es importante remarcar, que tanto el resultado, como la introducción de datos al webservice se hace en formato xml. Así pues, para tratar la información que nos devuelva, como también la información que le proporcionemos al crear o editar, será necesario que esté en formato xml correcto. Para ello hay opciones que trae el propio core de PHP, como podría ser SimpleXML. Nosotros recomendamos una alternativa mejor llamada serializer, la cual tiene mucha versatilidad por la cantidad de formatos que pueden usarse y cuenta con una documentación de excelente calidad.

Ahora que tenemos creada nuestra api key, podemos hacer una prueba rápida de que funciona, accediendo a la url: . Esto devolverá un listado de elemento en formato xml con todos los permisos que la cuenta tiene sobre ese recurso. Revisa que en el xml, el atributo get es true, para el recurso «orders». En caso de que no sea correcta la configuración, PrestaShop te mostrará el siguiente mensaje de error: «405 Method Not Allowed».

La estructura para acceder a los recursos es la siguiente: /api/[recurso]/[?identificador]?ws_key=[clavegenerada]. Si introducimos un identificador nos mostrará los datos relevantes al elemento, por el contrario, si obviamos ese identificador, devolverá un listado de todos los elementos que hay en ese recurso.

Obtención de un listado de elementos

Para llevar a cabo el primer cometido, vamos a crear un archivo, como el siguiente para obtener un listado de elementos, que forman parte del recurso «orders»:

Y a continuación, la respuesta:

Como podemos observar, el listado de elementos, a parte de tener una propiedad id, nos muestra la url absoluta donde podemos consultar la información de ese elemento en concreto. No se puede obtener mas de uno a la vez, es necesario hacer una petición por cada elemento a consultar.

*Si accedes al archivo a través de un navegador, es probable que no veas la respuesta del servidor, puesto que el navegador va a detectar que se trata de xml y lo intentará parsear. En tal caso, puedes usar un lector de xml usando alguna extensión para el navegador, o simplemente ver el código fuente de la página. En caso de usar otras herramientas como curl o httpie para realizar la petición, verás el contenido correctamente.

Obtención de un listado de elementos de forma paginada

Ahora vamos a hacer uso de un parámetro que nos permite realizar una paginación simple, solo para los listados de elementos, ya que al consultar la información de un elemento, carece de sentido. Para ello vamos a utilizar el parámetro limit que tiene el siguiente formato: limit=[inicio],[cantidad]:

Y esta es la respuesta:

Como se puede observar, la respuesta muestra un listado, pero esta vez, con el número de elementos y el inicio que le solicitamos. Esto es un aspecto clave a tener en cuenta a la hora de hacer uso de la api, para optimizar los recursos. Nos permite obtener cantidades de información mayores con la misma petición.

Obtención de la información relativa a un elemento

Para ello vamos a crear el siguiente archivo:

La respuesta:

Hemos omitido parte de la respuesta, ya que son datos irrelevantes para el objetivo de la prueba. Aquí podemos observar como los recursos que cuentan con su propia uri para acceder, nos indica su url absoluta, y no nos proporciona la información de dicho recurso. En caso de necesitar, por ejemplo, el elemento del carrito (cart), deberíamos hacer una nueva petición a esa url. En nuestro caso, no podríamos tener acceso a él, sin habilitar los permisos al menos de «Ver» para dicho recurso.

Conclusión

Hemos configurado el acceso al webservice de prestashop para hacer posteriormente un uso en los tres casos que se nos pueden presentar por lo que a consulta se refiere: listar elementos, paginar listado de elementos y consultar la información relacionada con cada elemento. Además hemos hecho uso de composer para utilizar el paquete de un tercero.

Cuando tenemos un tienda en PrestaShop y necesitamos extraer y/o actualizar información, este es un buen punto de partida para conseguir la interoperabilidad entre sistemas. Si bien es cierto, que carece de algunos aspectos que facilitarían la obtención de datos, como por ejemplo, extracción de la información de los elementos en bloque, pues estamos limitados a consultar los elementos de uno en uno. Es posible llevar a cabo una integración al tratarse de una API REST, que nos puede permitir realizar cualquier automatización de tareas o la extracción de información. En todo caso, es una herramienta útil, que deberemos tener siempre en cuenta, para cuando tengamos unas necesidades que no podemos realizar por otras vías.

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]

Qué plataforma elegir para crear una tienda online

A la hora de montar una tienda online o tienda virtual existen cada vez más plataformas que agilizan el proceso para no tener que desarrollarla desde cero. Por eso cada vez hay más gente que se pregunta qué plataforma elegir para montar una tienda online.

Y es que no es necesario inventar algo que ya existe, pero sí hay tener claras las opciones existen en el mercado y cuáles son las mejores para cada caso. Porque al final la decisión depende de factores como el tipo de tienda virtual, la cantidad de productos a vender o el presupuesto que se quiera destinar al proyecto.

Aunque hay muchas opciones es posible descartar algunas por su similitud con otras o por estar un escalón por debajo de las que se comentan aquí.

4 plataformas para crear tu tienda online

Crear tienda online con Prestashop

crear-tienda-online-prestashop

La opción que recomendamos desde acceseo para la gran mayoría de proyectos en los que se tenga que crear una tienda online. Cuenta con las siguientes características:

  • Es fácil de instalar, rápido y con muchas opciones.
  • Es software libre. Con lo que es posible modificarlo y adaptarlo a las necesidades de cada empresa.
  • Permite la optimización SEO.
  • Se pueden vender productos físicos, servicios o virtuales.
  • Tiene la posibilidad de multitienda, para gestionar varias tiendas a la vez.
  • Tiene la posibilidad de multilenguaje, para tener versiones para cada idioma.
  • Existe una tienda de módulos para poder ampliar la funcionalidad, aunque también se pueden desarrollar a medida.

Crear tienda online con Magento

crear-tienda-online-magento

  • Muy potente, se puede realizar casi cualquier tipo de proyecto.
  • Integra optimización SEO y URLs amigables.
  • Se pueden integrar módulos.
  • Permite Multitienda.
  • Tiene un completísimo panel de control con gestión de pedidos avanzada.
  • Importante comunidad, aunque mucho en inglés.
  • El coste final del proyecto es alto.
  • Consume bastantes recursos, es más pesado que otros sistemas. Necesita servidores potentes.
  • La curva de aprendizaje es alta, por lo que no es fácil empezar un proyecto.

Crear tienda online con WooCommerce

montar-ecommerce-woocommerce-wordpress

  • Fantástico para proyectos pequeños.
  • Lo mejor es que funciona sobre wordpress, el CMS líder que además está en constante actualización.
  • Panel de administración sencillo y se puede gestionar de forma integrada con la web o blog.
  • Existen muchas plantillas gratuitas bastante aceptables (también de pago) y están adaptadas para dispositivos móviles (responsive).
  • En cuanto a SEO, se pueden aprovechar los plugins para wordpresss, como Yoast SEO.
  • Hay muchos manuales y tutoriales, por lo que es fácil empezar a utilizarlo y no supone un gran coste el desarrollo o integración.
  • Sin embargo, no es escalable. Si hay muchos artículos habrá que cambiar de sistema.
  • Funcionalidades adicionales en cuanto a marketing o fidelización no están incluidas, a diferencia de otras plataformas.

Crear tienda online Shopify

crear-ecommerce-shopify

  • Perfecto para empezar con una tienda online, sobre todo en proyectos pequeños.
  • No hace falta servidor, ya que shopify se utiliza directamente sin tenerlo que descargar.
  • Tener una tienda es cuestión de pocos minutos, muy sencillo.
  • Cuenta con plantillas profesionales y vistosas.
  • Es robusto y seguro.
  • No se puede modificar o personalizar si no se le paga directamente a Shopify.
  • Para ampliar funcionalidades hay que integrar módulos de pago.
  • La optimización SEO está muy limitada.
  • Los servidores están en Estados Unidos, por lo que podría existir algún problema en el cumplimiento de la LOPD (Ley Orgánica de Protección de datos) en Europa.

Conclusiones

Las cuatro son muy interesantes y teniendo en cuenta las ventajas e inconvenientes de cada plataforma sabréis en qué momento hacer uso de cada una de ellas para poder exprimirlas al máximo sin tener un sobre coste o tener mucho más de lo que se necesita.

De este modo, si se va a empezar un proyecto y se dispone de pocos recursos y apenas conocimientos web, la plataforma ideal sería Shopify. Lo que está claro es que cuando el negocio empiece a crecer habrá que cambiar a una plataforma más completa y donde se pueda tener el control total, es decir, en servidores propios.

Si se tienen conocimientos web y se ha tocado wordpress o bien se trabaja con una empresa o agencia de desarrollo web o incluso ya se está trabajando con un blog, la opción podría ser WooCommerce. Esta plataforma es muy sencilla de integrar cuando ya se utiliza wordpress y es una forma rápida de arrancar teniendo el control de todo.

En proyectos más grandes, ya con un número considerable de productos y con una estrategia de marketing más seria habría que valorar las dos opciones líderes: Prestashop y Magento. A la hora de elegir entre estas dos plataformas la clave está en la complejidad que tenga la tienda a nivel de negocio, pero para más del 90% de los proyectos Prestashop supone la herramienta perfecta, ya que combina buen rendimiento, panel de gestión intuitivo, grandes funcionalidades y posibilidad de añadir una buena cantidad de módulos y temas. Magento, no obstante, tiene en ocasiones mucho más de lo que se va a necesitar, así como unos requisitos mayores a la hora de trabajar con un servidor o a la hora de trabajar con un equipo de desarrolladores. Pero, por supuesto, es una buena opción para los proyectos más complejos.

¿Tienes alguna duda? Contacta con nosotros y te asesoramos acerca de qué tipo de tienda o desarrollo se adapta mejor a las necesidades de tu negocio.

¿Tienes alguna incidencia?

Cuéntanos qué ocurre
y nos pondremos con ello lo antes posible.

Este sitio está protegido por reCAPTCHA, y la Política de privacidad y Términos de servicio de Google.
Sucríbete a
nuestra newsletter

para estar al día en el mundo online

¡Cuéntanos tus ideas!
+34 96 653 19 14
+info@acceseo.com
He leído y acepto la política de privacidad

Este sitio está protegido por reCAPTCHA, y la Política de privacidad y Términos de servicio de Google.