Hands-on with Shopify e-commerce platform

Shopify as an e-commerce platform.

I've been recently working with the Shopify e-commerce platform, building a store. This text is my thoughts on how I see Shopify as an e-commerce platform, what's the good and what's the bad, after 6 months of hands-on experience with it, bending and customizing it to various scenarios.

Now to add a little bit of scope to it, this particular store has a ton of volume under a well-know brand. We have been using the Plus-subscription, which allows using the Shopify APIs and a better support from Shopify as well. We've practically used majority of Shopify's features, from analytics to theme development and also custom backend code, aka Shopify Scripts.

Business owner point of view

Now with an e-commerce platform, the most important things to a business owner are

  • security
  • support for different payment gateways
  • reliability
  • scalability
  • reporting
  • ease-of-setup
  • out-of-the-box features
  • support
  • amount of expertise in the market

Now each of these would be a topic for a completely another text, so I'll just summarize quickly: I think Shopify ticks the box on each of these very well.

Developer point of view

Investment in learning

Now with any new platform/library/tech I come across in projects, I think: is this worth the time to learn. And maybe even more, should I be learning something else right now. Kind of referring to basic developer anxiety of not constanty learning the relevant thing. Now this feeling is very common with developers, maybe more with those just starting their professional developer career.

I'm a big supporter and advocate of using SaaS (Software as a Service) services. They are great for teams to get started quickly on developing the features that bring value instead managing another codebase and infra. I want to learn more about exactly these kind of products.

Shopify is one of the biggest and most popular e-commerce platforms, so I figured learning this while working is something valuable for the future and also an opportunity to learn more about e-commerce. So I was thrilled to dive deeper into world of Shopify and build the shop.

So how is the developer experience?

I believe developer experience has a lot to do with the overall success of a SaaS service. This has a lot to do with developers being the group project management and sales team come to ask advice about choosing the right pieces for the solution and also developers being vocal advocates on something they have liked working with.

During past couple of years, I've noticed a trend of CLI tools being a fundamental tool in any software product. This is simply a sign of taking the developer experience more to the center of any software product's offering. I believe this exactly for the reason of catering the service more to the developer audience.

I'll continue by listing a few things I consider being important for developers and how I see them in Shopify.

  • Documentation Shopify has great docs. Simple as that.

  • Options in ways of integrating You can build your whole shop with Shopify, without any other web app. This is great for smaller businesses. For a more integrated feel and existing shops, you can integrate your existing catalog / cart logic to it through the Shopify Storefront API. Backends can listen to webhooks if you want to integrate automated delivery, CMS or whatever you like.

  • Available SDKs and libraries Shopify has packages for nodejs, native mobile app development and admin functionalities. Slate is Shopify's theme development framework for web. It's ok to work with, however Shopify by design is a bit of a black-box if you try to add something custom (...you might not supposed to be adding in the first place :D). I like the separation of the editable theme from the checkout flow and backend logic, which I can't really edit. However I dislike not having the option to develop the theme locally and all your changes have to be deployed to a Shopify hosted Shopify instance for you to see. This is how they state it on their docs:

    Local development in Shopify Themes is pretty unique, and probably unlike anything you've previously encountered. In fact, with Slate local development you're still deploying and viewing pages from Shopify servers, so technically it's not really local development. Let's explore why Slate takes this approach, and what makes local development in Shopify unique.

So basically you're sharing your development environment with other developers since it does not justify the cost of developers having their own dedicated infra. And since the environments cost and are limited to maybe QA and Production depending on the contract you have with them, you soon find out you're developing straight to the QA environment. It's alright as long as you acknowledge this and don't put any poop in there ;).

  • Variety of apis Shopify Storefront API is basically what your front end would be communicating with. I haven't had a situation, where I was missing a functionality from the API. There's the basic create-read-update-delete operations of cart. There's a also the refund and cancellation APIs and calculating the shipping costs already before checkout if necessary.

    One thing Shopify does not include is data about tracking the user behaviour. For this you have to bring your own analytics system, like we did.

  • Scalability and performance We've had zero issues with these. The shop is just up and running despite quite a big traffic.

    Also with some SaaS products I've experienced hitting API quotas or other limitations, which have not happened with Shopify.

Wrap-up

Overall I like Shopify a lot. E-commerce as a topic is also very complex and it was great to learn more about it.

I haven't got any experience with any other e-com platform, so hard to compare to others really. I've heard some horror stories of Magento's high learning curve. Going all custom with your e-com will require a bigger team of developers and you'll have to do the housekeeping of the infra, so not easy or fast this way either.

Shopify does have it's limitations: since Shopify supports only one currency and one language per instance so if you plan to release a shop with it, be prepared to map out your audience well. You might have to run a multiple Shopify-instance setup in production in the end.

Be prepared for some learning curve as well, since Shopify does have it's quirks once you get deeper into integrating your analytics and implementing bundle offers etc. Implementing the theme was fairly easy and prior experience in HTML template tools like handlebars or Hugo will come in handy.

It does cost money to use Shopify. They take about 2.4-2.9% of each transaction. I think it's a lot long term, but the offering is good if you want to get up and running quickly with smallish team.

If you're planning to redo or do your e-com shop, drop me a line at atte@punainentupa.fi and let's talk!