Shopify for Developers — the Good, the Bad and the Ugly
Tags: shopify, ecommerce, sideprojects, architecture
Published: 2020-08-24 11:23:31

I guess it was in 2015 when I discovered Shopify for the first time. Back then, it had a very sketchy reputation in my area (Europe) for being the most popular shop system for very small merchants and drop shippers because one can get started in minutes and all the complicated stuff like payments, nice looking designs and hosting are included out of the box. Sounds good? Not for everybody.

## Why you may have heard bad things about Shopify
In case you don’t know yet: drop shippers are merchants who don’t actually purchase, store and ship products using their own warehouses and employees. Let alone producing the goods. Instead, drop shippers just buy their products whenever an order comes in (usually on Chinese Alibaba or similar) and enter their customer’s address as the shipping address. Merchants usually do this if they don’t have the budget to create & store their own products which is usually a lot more profitable. There’s a very big community and consulting businesses for drop shippers. While most drop shippers don’t actually make much money, there are also some unicorns who can make a decent living from that.

However, using the most popular shop software for that kind of bedroom entrepreneurs might feel exciting when you’re just starting out because it sounds like it’s really foolproof.
But in contrast, imagine you’re the E-Commerce Manager of a multi million dollar company. You have to decide whether you should tell your boss that your company should run on a service mainly used by those newish entrepreneurs or should use a well known and established brand like Magento instead. In this scenario, Shopify will actually appear rather amateurish and like a bad decision to you.

So it came that the idle rumor of Shopify not being sophisticated enough for any businesses besides bedroom entrepreneurs quickly spread and established.

Today, Shopify proved that it can handle enterprise sized business processes. In many cases even better than most other shop systems on the market thanks to its modern tech stack and user-centric design decisions. It’s becoming more and more popular all over the globe and is the engine that runs more than 1 million shops today. Many big companies joined the plattform — like gymshark, TESLA, Hasbro, Heinz and more. Shopify even introduced Shopify Plus, which is a service exclusively for high volume merchants, but runs the same core like the regular Shopify.

## What makes Shopify different?
The biggest difference of Shopify compared to other solutions like Magento or Prestashop is that Shopify is a SaaS — a Software as a Service. Shopify themselves talk about Shopify not as a software, but rather a “platform”. If you register on Shopify’s website as a merchant, you’ll get only a subdomain (which you can connect to your own domain later on) and therefore a spot on their server farms that run all Shopify shops. You don’t need to rent and maintain your own server infrastructure — this is all completely handled by Shopify. Good thing is: As long as Google Cloud is online, Shopify stores are online. Anice fact for traffic spikes on Black Friday.

“Well, SaaS means that I won’t be able to modify the system” you might think and indeed, changing Shopify’s core isn’t possible at all. However, changing the code of a system is usually considered very bad practice and is usually not needed. That’s why you normally build plugins for Wordpress/Magento/Prestashop rather than changing the code of the system’s core.
Same story in regards to Shopify: You can build plugins instead of changing the core. These plugins are called “apps” in the Shopify ecosystem and integrate with Shopify solely by using their APIs.

## Shopify’s APIs
When you’re in the platform business, your APIs are your bread and butter topics since they’re the only way to enable others to add features to your platform. Sounds like a reasoner, right? That’s why Shopify really cares much about their APIs. They were one of the first E-Commerce companies that made GraphQL a first class citizen in their ecosystem while still maintaining their old REST APIs. Besides that, they have an extensive documentation, many tutorials, GraphQL learning kits, blog posts and even CLI tools and npm packages to support working with their APIs. They have a big website for developers that you can find here.

Using Shopify’s APIs you can do CRUD operations to products, collections/categories, customers, pages, frontends, orders and even communicate with their own apps like Ping (Chatbot), Kit (Marketing Automation) or the Shopify POS App (selling with Shopify in brick and mortar stores). Sounds pretty sophisticated, right? Yep, the possibilities are exciting and Shopify usually adds new API features on a monthly or even weekly basis.

## Shopify’s App Tech Stack is for everyone!
Sometimes it feels a bit complicated to use APIs instead of calling system methods like you would usually do with your plugin in Wordpress or Magento, because you have to take care of API limits and payload structure and so on. However, good thing is: You don’t need to adopt Shopify’s system tech stack — I have no idea what it is but I read that they coded a lot in Ruby. And even better: You don’t need to use PHP — ever. Well, of course you could, but you don’t want to, do you?

Instead, you can use whatever you like: You’re a Python, Java or Ruby dev and love to use Angular and Vue on the frontend?
Build a restaurant / search / review / whatever app for Shopify!

You like Node+React? No problemo, amigo!
Shopify loves you and provides a ton of npm packages, CLI tools and even a whole component library.
Downside: You have to take care of hosting your app and also do the whole authentication process yourself (passing hmac back and forth and more funny things). However, there’s Heroku and there’s an auth-packages from Shopify, so not really an issue that will hold you back from getting started.

## Shiny Shopify: How to create and modify Themes
Up until here, I just spoke about creating apps which is the path you’ll choose when you need to do massive changes to Shopify, do backend-related work or want to earn decent money by selling your app in the Shopify App Store .
If you just want to do frontend modifications by creating a new theme or change the current theme of a Shopify store, you don’t need to use Shopify’s APIs at all.
Instead, you can connect your IDE via theme kit and edit the frontend code right away in VS Code/Atom/Brackets/Sublime Text/Notepad++. Alternatively, Shopify even provides their own code editor which is embedded in the Shopify Admin. Shopify uses the template language Liquid which will look and feel very familiar to you if you ever worked with Smarty, JSX or handlebars before. It allows you to assign variables and do basic stuff like looping over products and getting images in different sizes.

## How to get started: Become a Shopify partner
As of today, Shopify offers no certification process, so all you need to do is to register here to create a free partner account. With your partner account, you can create development stores which allow you to build things in a Shopify shop for free — forever. Besides that, Shopify provides you a partner academy which is nice to understand most of the basic concepts. They won’t show you many details and you’ll get stuck for sure — that’s why I’m here to help you.

I’m going to release several tutorials, best-practice posts and also business related content about Shopify in the upcoming weeks here on Dev.to. Thanks! Cheers!