Tipo de Proyecto | eCommerce/Multi-seller Marketplace |
Tecnologías Usadas | Prestashop, PHP, HTML5, CSS3, Smarty, MVC, JSON |
Tiempo de Desarrollo | 2 meses |
Tecnologías y funcionalidades
El CMS/eCommerce sobre el que se desarrolla este proyecto es Prestashop, ya que se prevé una futura fase en el que los usuarios puedan vender e intercambiar directamente a través de la web.
Para permitir dar de alta a los usuarios para que estos creen sus respectivos catálogos de productos (en la lógica de negocio referidos simplemente como «cartas») se ha integrado el plugin de Agile Marketplace Multiple Seller. Dicho plugin permite operar a Prestashop como un sitio de ventas global donde los usuarios pueden registrarse y vender sus propios productos y el administrador de la tienda recoger la respectiva comisión. Resulta en un sistema parecido a eBay.
La creación de la colección de cartas es muy fácil gracias al módulo de búsqueda basado en AJAX del Marketplace, en el que el usuario puede localizar cada carta conocida en el universo de Magic (más de 40.000 cartas) y añadirla a su colección con un simple clic.
Para hacer esto posible, se ha requerido realizar una importación masiva en forma de productos de Prestashop de todas las cartas del juego. Prestashop incluye una herramienta de importación CSV, pero para obtener un listado compatible de todas las cartas, se ha codificado un módulo prestashop a medida para extraer la información de una API disponible actualmente y usada por multitud de desarrolladores del ámbito (magicthegathering.io).
El módulo genera una conversión de datos JSON a un fichero CSV 100% compatible con Prestashop, mapeando cada campo según lo requerido (nombre de la carta, categorías, stock, visibilidad por defecto, etc).
Para que los usuarios puedan disponer de los últimos precios actualizados, se ha integrado una API adicional (cardsearch.nl) de manera que la generación del listado de cartas combina, a través de un algoritmo realizado 100% a medida para éste caso, la obtención de datos de producto por un lado y sus precios en el mercado en distintos ámbitos (USA y Europa) por el otro.
La generación de precios tiene lugar en el momento de importar las cartas y además se dispone de una tarea cron que actualiza los precios automáticamente según la frecuencia especificada (una vez al día en este caso).
Se ha adaptado el tema base responsive de Prestashop 1.6 basado en Bootstrap a la imagen corporativa de CartonerosTCG a través de la edición de plantillas bajo el engine Smarty y hojas de estilo CSS, y demás se ha realizado una integración visual de los distintos módulos usados (especialmente el marketplace) para dar una imagen más consistente y menos genérica a la plataforma.
Retos principales
Prestashop es un entorno eCommerce potente y líder en el mercado, principalmente gracias a su filosofía modular, que permite resolver gran parte de las necesidades de cada negocio a través de la instalación de plugins y adaptaciones personalizadas de la plataforma a cargo de desarrolladores experimentados, ya que su código es OpenSource, pero no por ello está libre de hándicaps.
Algunos de los principales retos planteados y resueltos con éxito:
- Estudio del funcionamiento interno de Prestashop (filosofía MVC, patrones de diseño Observer para añadir eventos (Hooks) y Separation of Concerns (presentación y generación de HTML separada del código PHP a través de plantillas Smarty).
- Despliegue de un nuevo entorno de desarrollo Vagrant para preparar una infraestructura y flujo de desarrollo tipo Dev/Staging/Production para mostrar y permitir validar al cliente pequeños cambios incrementales en el proyecto.
- Creación de un módulo prestashop a medida para integrar la lógica de negocio requerida para satisfacer las necesidades del cliente.
- Integración y combinación de dos fuentes de datos externas distintas (API JSON y CSV externo) para generar un fichero de importación 100% compatible Prestashop.
- Codificación a medida de algoritmo para la actualización automática de precios y para programar periódicamente a través de tareas cron.
- Gestión de importación de altos volúmenes de productos (+40.000) realizando los ajustes necesarios sobre la configuración del servidor.
- Optimización del número de imágenes/thumbnails generadas para reducir el volumen de datos final.
Roles asumidos
- Análisis de las herramientas y tecnologías necesarias para desarrollar la idea del cliente.
- Diseño conceptual (integración de los módulos necesarios), estructural (datos extra y entorno/infraestructura + hosting cPanel) y visual (adaptación HTML/CSS y diseño básico de infografía) de la solución propuesta.
- Gestión del proyecto (a través de plataforma propia de gestión de tareas, facturación y reporting).
- Comunicación y feedback diario con el cliente y resolución rápida de aspectos limitantes del proyecto.
- Ciclo de desarrollo completo (PHP/HTML/CSS basado en Prestashop + consultas necesarias SQL).
- Proveedor de servicios (despliegue en infraestructura propia de proyektia.com).
¿Necesitas una solución de similares características?
Si buscas desplegar un portal de ventas sobre un eCommerce robusto como Prestashop y con funcionalidades de multi-vendedor sobre el que sea necesario realizar adaptaciones a medida y/o importar productos de fuentes de datos externas y actualizar precios automáticamente, no dudes en contactar conmigo y exponerme tu idea, sin compromiso.