Slide 1

Slide 1 text

E-commerce world

Slide 2

Slide 2 text

Me • Alessandro Lepore • from Fano (PU) • @alelepore / https://github.com/alepore • Freelance Web Developer @ freego • Longtime Open Source && Linux user • Perl => PHP => Ruby (Rails) => …Elixir?

Slide 3

Slide 3 text

The e-commerce market is growing, and it’s growing fast. Source: https://blog.rjmetrics.com/2015/02/04/the-five-indicators-of-breakout-ecommerce-growth/

Slide 4

Slide 4 text

e-commerce developer

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

One E-commerce, many components • Website, UI, Admin interface etc. • Catalog, Variants • Checkout • Prices, Promotions, Discounts • Payments, Shipments • Taxes! • Extra: API? Multi Language? Mobile? • External integrations • Offline concepts online • Non dev stuff: marketing, SEO, Customer care etc.

Slide 7

Slide 7 text

? So? Platform? Framework?
 Some libraries?
 Start from scratch?

Slide 8

Slide 8 text

E-commerce Platforms market share (top 1M sites) Source: https://www.datanyze.com/

Slide 9

Slide 9 text

E-commerce in Ruby: 
 Spree / Solidus

Slide 10

Slide 10 text

History (Spree) • 2007: Spree Commerce company • 2008: Spree 0.x • 2011: $1.5M funding • 2012: Spree 1.0 • 2013: Spree 2.0, Wombat • 2014: $5M funding • 2015: Spree 3.0 • 2016: Spree 3.1?

Slide 11

Slide 11 text

History (Solidus) • Stembolt, bonobos.com • 2014: Spree private fork • 2015: Solidus 1.0, 1.1 • 2016: Solidus 1.2, Solidus Conf Toronto

Slide 12

Slide 12 text

Spree / Solidus • 100% Open Source and free • Small core team + community • Github, mailing list, chat • 17.000+ commits • 600+ contributors • 7.000+ github stars • 600 tests • BSD License

Slide 13

Slide 13 text

Technologies: Ruby • Programming language from Japan, 1995 • Object-oriented, also functional and imperative • Dynamic, reflective, general-purpose • Influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp

Slide 14

Slide 14 text

Technologies: Rails • Full stack MVC web application framework • “Optimised for programmer happiness” • “Convention over Configuration” • More here: http://rubyonrails.org/doctrine/

Slide 15

Slide 15 text

Technologies: Spree • Rails engine • Common gems • Good Rails skills required! • MySQL or PostgreSQL • spree_core • spree_frontend • spree_backend • spree_api • spree_auth_devise

Slide 16

Slide 16 text

Features • Auth, Users, Addresses • Orders, Adjustments, • Payment Methods, Payments • Products, Variants, Options • Taxonomies • Taxes, Tax Categories, Tax Rates • Stock Management • (Split) Shipments • Promotions, Rules, Actions • I18N, Translations • Mid/big size projects?

Slide 17

Slide 17 text

Extensions • All on Github • Just Ruby gems • Rails engines • Easy to develop • github.com/spree-contrib • spree_gateway • spree_i18n • spree_print_invoice • spree_multi_currency • spree_digital • better_spree_paypal_express • spree_shared • spree_editor • spree_reviews • spree_wishlist • spree_recently_viewed • spree_related_products • spree_sitemap • spree_elasticsearch • … and many moar

Slide 18

Slide 18 text

Screenshots

Slide 19

Slide 19 text

Screenshots

Slide 20

Slide 20 text

The bad parts • “Checkout hell” • Extension points • Promotions • …moar

Slide 21

Slide 21 text

Production deploy • Normal Rails deploy • capistrano, git • Linux + Nginx/Apache or Heroku • RAM!

Slide 22

Slide 22 text

Use cases • 50.000+ sites? • https://www.godaddy.com/websites/online-store • https://bonobos.com/ • https://ayr.com • https://www.evagardenshop.com/ • https://www.myfashionhit.com/

Slide 23

Slide 23 text

Links • https://github.com/solidusio/solidus • http://solidus.io/ • https://github.com/spree/spree • https://spreecommerce.com/ • http://capistranorb.com/ • http://rubyonrails.org/doctrine/

Slide 24

Slide 24 text

No content