Upgrade to Pro — share decks privately, control downloads, hide ads and more …

E-commerce is hard

E-commerce is hard

Italian Ruby Day 2015

Alessandro Lepore

November 13, 2015
Tweet

More Decks by Alessandro Lepore

Other Decks in Programming

Transcript

  1. Me • freelance developer @ freego • github.com/alepore / github.com/freego

    • @alelepore • from Italy, Fano, east coast • Perl => (Audio) => PHP => Ruby • Longtime Linux User • Open source enthusiast
  2. Me • freelance developer @ freego • github.com/alepore / github.com/freego

    • @alelepore • from Italy, Fano, east coast • Perl => (Audio) => PHP => Ruby • Longtime Linux User • Open source enthusiast
  3. Me

  4. Agenda • Ruby is slow • Golang is the new

    Ruby • Elixir is the new Ruby
  5. 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/
  6. One E-commerce, many components • Website, UI, Admin etc. •

    API? I18N? • Catalog • Checkout • Prices, Promotions, Discounts • Payments, Shipments • Taxes! • External integrations • Offline concepts, online • Non dev stuff, marketing, SEO, Customer care etc.
  7. ★ Spree ★ Solidus • Shoppe • ror_ecommerce • piggybak

    • acts_as_shopping_cart Ruby E-Commerce gems
  8. ror_ecommerce “A complete small business solution. We will save you

    time, effort, resources and most of all, money.”
  9. Piggybak “a Ruby on Rails Engine with basic shopping cart

    and one page checkout functionality. It uses RailsAdmin to provide an admin interface”
  10. Spree Commerce Company • 2007: created by Sean Schofield •

    2011: $1.5M seed funding • 2013: Spree Hub (Wombat) • 2014: $5M Series A funding • 2015: acquired by First Data • 2015: Wombat discontinued • 2015: “as a company we can no longer dedicate significant resources to Spree”
  11. Spree: History • 2008-2011: Spree 0.x • 2011-2014: Ryan Bigg

    (@radar) community manager • 2012: 1.0 (namespacing, rails engine, taxes) • 2012: 1.1, 1.2 (spree_auth_devise, checkout DSL, money gem) • 2013: 1.3 (Admin redesign, Currency support) • 2013: 2.0 (spree_backend, spree_frontend, Split shipments, spree_i18n), 2.1 • 2014: 2.2 (Adjustments) • 2014: 2.3 (multi-store support) • 2014: 2.4 (Return Authorization Rewrite) • 2015: 3.0 (Bootstrap everywhere), (3.1?)
  12. Spree: main features • Users, Addresses • Orders, Adjustments •

    (Split) Shipments • Payment Methods, Payments • Products, Variants, Options • Taxonomies, Taxon • Taxes, Tax Categories, Tax Rates • Stock Management • Promotions, Rules, Actions
  13. Spree: gemspec • rails 4.2 • activemerchant • acts_as_list •

    awesome_nested_set • cancancan • friendly_id • kaminari • money / monetize • paperclip • paranoia • ransack • state_machines-activerecord • rabl • devise • deface
  14. Spree: extensions • 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 • github.com/freego • spree_scaffold • spree_static_pages • spree_price_lists • spree_product_preview • spree_newsletter_subscription • spree_abandoned_carts • spree_payment_method_additions • spree_contact_form • spree_feeds • spree_products_container • spree_env_ribbon • spree_simple_weight_calculator • capistrano-spree
  15. Spree: the bad parts • Some code: • Checkout hell

    • Promotions • Reports • class_eval everything • … moar • No core team
  16. So?

  17. Solidus: History • Stembolt (ex FreeRunning Technologies) • bonobos.com, “the

    largest clothing brand ever built on the web in the US.” • 2014: private Spree 2.4 fork • 2015: Version 1.0.0, because Open Source • 2015: 1.1.0beta, 1.2.0 plans • May 2016: Solidus Conf, Toronto, Canada • Well, that escalated quickly
  18. Solidus: the good parts • Code Quality and Integrity •

    Easy Extensibility • Easier Upgrades • Scalability • Security • “This Is Our Business Too”
  19. Spree 2.4 => Solidus 1.0 • Improved permissions, allowing fine-grained

    access control through roles • Cartons, a representation of the actual package as shipped out by your warehouse • Stock transfers and a new stock management interface • Proper locking when updating orders through the API • Store credit • Multiple codes per promotion • Adjustment and return reasons • Item cancellations to better deal with short ships • More reliable, randomized specs with vastly reduced sporadic failures • Patched three critical security vulnerabilities which we also contributed back to Spree • Many other improvements and bug fixes