En el post de hoy quería daros una guía de cómo crear una extensión para Spree Commerce, y para ello me iba a basar en la extensión que hemos creado mi mujer y yo en Be Bellón para que nuestros clientes puedan marcar que quieren enviar los kits como regalos y añadir una dedicatoria, pero como ya puedes imaginarte con esta simple introducción, el post me estaba quedando muuuy largo, por lo cual he decidido presentaros la extensión en este post y ya la semana que viene vamos directamente a por la guía para crear extensiones en Spree Commerce.

¿Qué es Spree Commerce?

Spree Commerce es una plataforma de comercio electrónico open source basada en Ruby on Rails.

Para mi gusto es muy completa y si eres un programador de Ruby on Rails te permite crear e-commerces en muy poco tiempo. De hecho, es el motor que utiliza Be Bellón.

Básicamente lo que hace Spree es proveer todas las funcionalidades típicas que esperarías tener en una tienda online y además es muy fácil de extender. Primero, porque es open-source, lo que como programador te permite contribuir al proyecto y mantenerlo vivo, corregirle algún fallito que encuentres o añadirle alguna mejora, que es algo que a mi personalmente me encanta hacer. Y segundo, es extensible mediante Spree extensions.

¿Qué es una extensión en Spree Commerce?

Las extensiones te permiten añadir funcionalidades más específicas a tu e-commerce que no todos los e-commerce de todos los países necesitan necesariamente, por eso no están incluidas en el core. Ejemplos de esto pueden ser crear facturas, elegir qué pasarelas de pago quieres soportar, añadir diferentes idiomas, etc.

Además, no solamente podemos consumir extensiones, sino que también podemos crear las nuestras propias ofreciendo funcionalidades que podemos compartir fácilmente, ya sea dentro de tu propia empresa, o como es nuestro caso, con toda la comunidad, de forma que todo el mundo que use Spree pueda instalar y utilizar nuestra extensión.

En resumen, como puedes ver, las extensiones siguen el concepto de las gemas de Ruby, y de hecho son gemas, como veremos en el último punto de este post.

Spree It is a present

Sin más preámbulos, voy a introduciros ya la extensión Spree It is a present, que utilizaré como ejemplo en el siguiente post, y os diré porqué decidimos crearla.

Con frecuencia en Be Bellón nuestros clientes compran regalos para otra persona, Si ya conoces Be Bellón, sabrás que nos gusta enviarte tu kit para tejer rafia natural en una caja personalizada con tu nombre. Eso es fácil cuando el regalo es para ti o cuando la dirección de envío coincide con la dirección de la persona a la que va destinada el kit, pero también hay muchos clientes que prefieren ser ellos los que reciban el paquete y entregárselo personalmente a la persona a la que quieren hacer el regalo.

Spree no ofrece por defecto ningún lugar dentro del formulario de checkout para indicar el nombre de la persona a la que quieres regalar el kit, ni tampoco un campo de texto para introducir una dedicatoria, por lo que después de que María se viese muchas veces intentando contactar a la persona que había comprado el kit para preguntarle si era un regalo me pidió que añadiésemos esto a Spree.

Lo primero que hice fue buscar una extensión, pero como os podéis imaginar, no encontré ninguna, con lo cual la única opción que nos quedaba era crear un desarrollo propio. La opción más inmediata hubiese sido añadir el código directamente en Be Bellón, pero llegados a este punto pensamos que ya que nosotros también utilizábamos y disfrutábamos extensiones hechas por otras personas, también podíamos crear nosotros una extensión y compartirla con todo el mundo gratis para que pudiesen beneficiarse de ella, y ya de paso aprendemos algo nuevo, que siempre mola un rato. Y así es como nace la extensión Spree It is a present.

Como puedes ver en el vídeo de YouTube que acompaña a este post, Spree It is a present añade un campo para indicar el nombre de la persona a la que va destinada el regalo y otro para escribir una dedicatoria al paso de introducir la dirección de envío en el formulario de checkout de Spree (store front end). Una vez introducida esta información y finalizado el pedido, se muestra en el back end de administración de tu tienda en la sección de cliente. Así de sencillo y así de útil.

Cómo instalar Spree It is a present

Está tirado.

Si tienes una tienda de Spree Commerce, lo único que tienes que hacer es:

1. Añade la extensión en tu Gemfile con esta línea:

gem ‘spree_it_is_a_present’

2. Instala la gema con Bundler:

bundle install

3. Copia y ejecuta las migraciones con este comando:

bundle exec rails g spree_it_is_a_present:install

4. Por último, reinicia tu servidor.

Y ya está, a disfrutar. A nosotros nos encantaría que utilizases nuestra gema y que te fuese muy útil. Además como puedes ver, es open source, así que si encuentras algo que creas que se debe o puede mejorar… ¡estamos deseando ver tus issues y/o pull requests!.

La próxima semana os cuento mi experiencia paso a paso sobre cómo crear estas maravillas y algunas cosillas que no vienen en las guías. ¡Chao!