08/12/2020

Spree, la Marketplace Ruby qui monte, qui monte...

Rails
Ruby
Spree
Marketplace

Marketplace ?

La crise du COVID et le confinement ont boosté le recours aux plateformes de 'E-commerce' (Markeplace) pour les achats courants. Le grand gagnant semble être Amazon dont la logistique est tellement efficace que certains clients casaniers aimeraient bien qu'Amazon livre aussi les croissants, le dimanche matin, histoire de pouvoir continuer à traïner dans son chez soi, en peignoir, toute la journée. Il faut dire qu'on s'habitue !

Les commerçants à la recherche d'une plateforme pour mettre en vente leurs produits en ligne, sans intermédiaire et sous leur propre marque, s'orienteront vers les services en ligne comme Prestashop ou Shopify, mais ces services, certe faciles à mettre en oeuvre, peuvent rapidement se révéler chers à l'usage.

Pourtant la mise en place d'une Marketplace n'est pas si compliquée, surtout si on connait déjà un peu Ruby et Ruby on Rails, car il existe Spree.

Spree propose l'ensemble des services dont a besoin un site marchand digne de ce nom, plus une interface moderne et un backoffice facile à prendre en main.

Installation de Spree

Assurez-vous d'être sous Ruby 2.7.2 avant créer l'application Rails qui contiendra votre 'shop' :

$ ruby -v ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]

Créee maintenant l'application Rails qui va contenir le 'shop' : ~~~~ $ rails new shop $ cd shop ~~~~

Editer votre fichier Gemfile pour y ajouter les modules Spree suivants :

gem 'spree', github: 'spree/spree' gem 'spree_auth_devise', github: 'spree/spree_auth_devise' gem 'spree_gateway', github: 'spree/spree_gateway' gem 'spree_i18n', github: 'spree-contrib/spree_i18n'

L'installation va se faire à partir des sources afin d'obtenir à la toute dernière version, la plus à jour possible.

$ bundle install

Il faut maintenant lancer le script d'initialisation de Spree au terme duquel vous pourrez vous connecter à votre Marketplace fraïchement créée. ~~~~ $ rails g spree:install ~~~~

Pour passer Spree en Français

Rien de plus simple; modifiez le fichier config/application.rb pour y ajouter la ligne suivante :

config.i18n.default_locale = :fr

Pour gérer plusieurs Marketplace avec un seul Backoffice

Si vous souhaitez présenter vos produits dans différentes vitrines en ligne sans avoir à gérer plusieurs stocks, il faut activer le mode 'multi_domain'.

Pour se faire, ajoutez le gem suivant dans votre Gemfile :

gem 'spree_multi_domain', github: 'spree-contrib/spree-multi-domain'

Et initialisez le mode avec la commande suivante :

$ rails g spree_multi_domain:install

A l'issue de cette configuration vous aurez accès à la création de 'Store' supplémentaire depuis l'interface d'administration et chaque produit pourra être visible sur le 'Store' de votre choix.

Bonnes ventes et joyeux Noël !