Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Introduction to Spree (A Ruby on Rails E-Commer...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
gmacdougall
February 26, 2014
Programming
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to Spree (A Ruby on Rails E-Commerce App)
Presented at ConFoo 2014.
gmacdougall
February 26, 2014
More Decks by gmacdougall
See All by gmacdougall
Practical Code Review with Gerrit
gmacdougall
0
91
Other Decks in Programming
See All in Programming
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
270
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
2
360
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.3k
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.7k
Next.js: The final boss of Web Performance
guaca
0
260
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
970
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
480
30 Presentation Tips
portentint
PRO
1
430
Google's AI Overviews - The New Search
badams
0
1.6k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
How STYLIGHT went responsive
nonsquared
100
6.3k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Unsuck your backbone
ammeep
672
58k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
Why Our Code Smells
bkeepers
PRO
340
58k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Transcript
Introduction to Spree A Ruby on Rails E-Commerce App by
Gregor MacDougall Twitter: @GrMacDougall Website: http://www.freerunningtech.com/
About Me Gregor MacDougall Sr. Software Developer @ FreeRunning Technologies
None
The Grand Tour rake sandbox
None
None
None
None
None
None
None
None
None
Look Familiar? • Competitors ◦ Marketplace Solutions ◦ SaaS Solutions
◦ Self-hosted Solutions ▪ Magento, VirtueMart, ZenCart, Prestashop, osCommerce, OpenCart, …
What Makes Spree Different? • Ruby on Rails • Rails
Engine • mount Spree::Core::Engine, :at => '/store' ◦ / -> Your App ◦ /store -> Spree ◦ /blog -> Something Else
How Does Spree Model Data? Product • Basic Product ◦
Name ◦ Description ◦ SKU ◦ Weight, Dimensions ◦ Price
How Does Spree Model Data? Product • Name • Description
Variant • SKU • Weight, Dimensions • Price
How Does Spree Model Data? Product - OptionType: colour Variant
- OptionValue: black Product - OptionType: colour Variant - OptionValue: red
None
How Does Spree Model Data?
None
None
None
Customizing Spree • View Customization ◦ CSS ◦ Replacing Templates
◦ Deface • Logic Customization ◦ Adding new logic ◦ Changing existing logic
xray-rails
Replacing a view Create the following file: ./app/views/spree/shared/_search.html.erb
Using Deface to Modify Templates
Deface app/views/spree/shared/_products.html.erb
Deface app/overrides/before_products.rb
Deface (Matching on Template)
Customizability Ruby Meta-Programming (pry examples)
With Great Power...
Mixed Nuts Store
Create The Nut Model rails g model Spree::Nut name:string
Create The Nut Variant Association rails g model Spree::VariantNut variant:
references nut:references
Our Models
Nut Model In Action
Modifying Spree’s Classes app/models/spree/variant_decorator.rb
Overriding Spree Functionality
Other Spree Features • Promotions & Discounts • API •
Stock Location & Inventory Tracking • ActiveMerchant Support (100+ Payment Gateways) • Full i18n support (~40 languages currently supported) • Large Library of Extensions • and much more
For More Information Spree http://www.spreecommerce.com/ http://www.github.com/spree/spree FreeRunning Technologies http://www.freerunningtech.com/
About Me Twitter: @GrMacDougall Github: https://github.com/gmacdougall E-mail:
[email protected]
Slides: http://www.freerunningtech.com/confoo
More From Me! Practical Code Review with Gerrit 9:00 AM Tomorrow (Same Room)