Company Profile • Leading E-Commerce Solutions Provider in Japan • Over 50 stores serving thousands of products • Partnerships with Valve, AVG, Kadogawa Games • Offices in Kichojoji, Victoria, Paris, San Francisco • Over $16 million to partners
Stateful Spree • Spree breaks RESTful conventions to create a stateful checkout flow • Checkout GET and PUT requests processed according to session cookie and state of order core/config/routes.rb
Checkout State • State persistence: – Session cookie stores current order_id – Database stores current state of the order order_id: 123 order_id: 123 GET /checkout redirect_to '/checkout/cart/edit' SELECT session id state 122 ... 123 'cart' 124 ...
Flexibile and Extendible • Modular – api, frontend, backend, cmd, core, sample • Extendible – Checkout flow DSL, custom transition callbacks – Custom User class – Override elements of views – Extend base classes with class decorators v
Spree License Key • Support for electronic license keys – No shipping cost, immediate delivery by email – License keys pulled from database or external API app/models/spree/license_key.rb
Built to Last • Designed based on feedback from real deployments • Imposes reasonable constraints, to give you maximum flexibility • Supported by large and growing open source community • And built on Ruby/Rails!