![]()
Shopify Application Development
Table of Contents
Shopify Application Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Getting Started with Shopify
Revealing Shopify's power
Deciding which type of app to build
Discovering the API
Exploring webhooks
Orders
Products
Shop/Application
Getting ready to build an app
Summary
2. Setting Up
Choosing a development tool
Setting up our development environment
Installing a Ruby management tool
Installing Ruby
Creating the application directory
Installing Rails
Generating a Rails app
Installing Twitter Bootstrap
Setting up source control
Deploying to Heroku
Summary
3. Building a Private App
Signing up for Shopify
Understanding our workflow
Building the application
High-level requirements
Installing a few necessary gems
Storing Shopify API credentials
Connecting to Shopify
Retrieving product information from Shopify
Retrieving order information from Shopify
Cleaning up the UI
Updating the sidebar
Updating orders, products, and variants
Cleaning up the rest of the site
Picking a winner from a list
Creating contests
Summary
4. Going Public
High-level requirements
Supporting multiple accounts
Authorizing user access to data
Verifying Shopify requests
Verifying HTTP GET/POST requests
Verifying webhook requests
Installing from the Shopify App Store
Subscribing to and processing Shopify Webhooks
Summary
5. App Billing and Publication
High-level requirements
Adding free and paid plans
Integrating with the Shopify Billing API
Supporting recurring charges
Publishing in the Shopify App Store
Summary
Index
![]()
Shopify Application Development
Copyright © 2014 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: May 2014
Production Reference: 1210514
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78328-105-3
www.packtpub.com
![]()
Author
Michael Larkin
Reviewers
Joey deVilla
Christophe Favresse
M. Scott Ford
Will Rossiter
Zac Williams
Acquisition Editor
Meeta Rajani
Content Development Editor
Athira Laji
Technical Editors
Ankita Jha
Sebastian Rodrigues
Copy Editors
Tanvi Gaitonde
Insiya Morbiwala
Shambhavi Pai
Laxmi Subramanian
Project Coordinators
Melita Lobo
Jomin Varghese
Proofreader
Simran Bhogal
Indexers
Mariammal Chettiyar
Monica Ajmera Mehta
Production Coordinator
Saiprasad Kadam
Cover Work
Saiprasad Kadam
![]()
Michael Larkin has been building software professionally for over a decade and has worked on large and small projects for companies across the globe. He has been working with Shopify for over five years and has co-created the first ever Shopify app, available at http://fetchapp.com. He has also worked on dozens of Shopify stores for which he built custom applications, modified existing themes, and added complex JavaScript to enhance the shopper's experience.
![]()
Joey deVilla has worked on all sorts of projects, such as creating Olympic athlete training software, CD-ROM directories for every mall in America with Visual Basic, Python-powered gift certificates, travel agency websites, the frontend for the censorship-thwarting project Peekabooty in C++, Duke of URL in PHP that suggests domain names, and a failed social networking app for frat dudes and dudettes in Ruby on Rails. He's also done some technical evangelism for OpenCola, Tucows, Microsoft, and Shopify. He's currently stirring up trouble in the mobile industry, and when he's not doing that, he's stirring up trouble playing Nine Inch Nails, AC/DC, and Britney Spears on his accordion.
Christophe Favresse developed a passion for e-commerce technologies, and in early 2013, launched his wife's online retail business (www.favresse.com) powered by Shopify and Amazon fulfillment services. In less than one year, this website attracted customers from eight EU countries and the U.S. Christophe, an international sales executive in the software industry, has spent the last 15 years prospecting telecom operators and providing CRM, marketing, and risk assurance solutions to optimize their customer lifetime value and revenues. He has spent two years in Thailand and 15 years in the UK. He currently lives near Nice (France) with his wife and four children. He holds a master's degree in International Marketing from Michael Smurfit School of Business (Ireland) and a bachelor's degree in Economics from Solvay Brussels School (Belgium).
M. Scott Ford has been developing software for the last 15 years. He's worked in many industries, from aerospace to e-commerce. His goal is to stay a polyglot developer. He's worked with many different languages and frameworks over the years, but his favorites are Ruby, JavaScript, and Objective-C.
Scott is the founder of corgibytes (http://corgibytes.com), a consulting company with a focus on legacy applications. This is where he applies a pragmatic, test-focused approach to working with existing code. This results in a new life for apps that would otherwise have to be rewritten or abandoned.
Will Rossiter is a Senio...