Shopify and the art of being content

Shopify Partner
1838 173 571

I have written this essay in response to another thread, and generally for all those who at times feel frustrated with Shopify for whatever reason. But as it grew, it became more and more off-topic as a reply to the original thread so here it goes as a separate entity of its own for whomever it may entertain to read my journey with Shopify.

Best wishes, Karl
 

The Prelude

So this is a little off topic rant from me. See, I became a Shopify Partner because I needed a way to quickly learn the platform so I can support my wife's business. Essentially, my wife is my only client as far as Shopify goes. Now, prior to picking Shopify I searched high and low and compared, evaluated, researched dozens of solutions (not kidding). I should also add that I am a software engineer with almost 20 years experience and a substantial amount of that has been spent working for large enterprises doing global scale content management or omni-channel order management for the larger kind of retailers. So I didn't walk in to this with no knowledge of what I am looking for specifically.

The Long and Winding Road

I'll be honest - I found some fantastic solutions especially in the headless commerce i.e. API only segment. I felt like "yep, that's exactly what I'd build and that's exactly what I'd want" until I looked at the pricing or contacted sales and got back 4 figure monthly subscription plans. So looking at more realistic options for a small hand craft business that my wife runs from her home studio because frankly, the budget was around 50 bucks p/m tops and that'd be pushing it.

As a developer I instinctively turned to open source and started evaluating Magento, WooCommerce which made me cringe, a lot of in betweens I knew from before or exotics such as Netlify's GoCommerce that made me worry due to novelty and lack of comminity support. The biggest issue though was supporting a bespoke installation - sure I am well versed with various cloud providers, and I'll automate the living *** out of it using Terraform, Ansible and K8 but... hang on a minute, we are talking about my wife's hand craft business with small budget, no chance for my full-time services and no reason for all the extra effort around data security and legal compliance if you go down that rabbit hole.

Next I looked at local providers as we are based in Czechia. And again, the market had a few local big names serving the majority of Czech businesses, but prices were either too high, service contracts too restrictive and bound to agencies, or the stores simply didn't have what it takes for going international at some point.

Which leaves us with Shopify, BigCommerce, Wix, SnipCart, Lemmonstand etc etc.

The Choice

SnipCart was a top contender in my books because it offered the API I was looking for. Come with your own static site gen or whatever to serve the storefront, use their API to handle the cart, checkout, etc. However, the few features we also needed (most notably inventory manageement) were only in their Pro plan and that went over our budget considering we'd also need extra cash to serve the content over some CDN plus some sort of user friendly content and product information management UI because my wife and computers aren't best buddies. So thank you but no.

Wix quickly fell short as did Squarespace. These are vendors who hail from the blogging slash light CMS domain and sort of haphazardly stumbled in to commerce seeing Shopify's rise to fame. Wix's API is a non-standard joke IMO. As is Squarespace's... JSON-T, seriously? Pass!

Lemmonstand was interesting. I must admit it was very interesting. And I must also admit I didn't pay due diligence while evaluating their offering for two simple reasons: I didn't like their pricing and I didn't trust their company size. So I sort of glimpsed over them as a noted contender that for some reason, viable or not, fell short.

Again, I will skip a few like Volusion and co. Most had some crazy pricing plans such as formers basic plan being limited to 100 products - seriously guys? Whom are you kidding, go away!

Which left me with Shopify vs BigCommerce. There's a lot to compare as both platforms are very similar. It is rather glaringly obvious that one has been ripping off the other playing catch up. Fair enough and I won't mention which one because it ain't Shopify - oops ;-) Here's the lowdown of why I picked Shopify

  1. More active community - have you looked at their forums? Yes they're prettier and yes Shopify could take a hint here, but the question to answer ratio and overall activity is dismal. Super important when gauging a vendor! p.s. in case you thought Shopify support is bad (more about that later), look at the number of posts in BigCommerce forums where their support directly and automatically defers questions to the forum that remain unanswered.
  2. In BigCommerce product and inventoory are on the same object - the product object. WHOA NELLY! No gusta! No seriously, I know you'd love that schema, but to me this raised alarm bells left and right. Funny thing is, in a recent Town Hall, BigCommerce discussed they're working on multi-location inventory / fulfillment / shipping. Oh the joy once their customers need to migrate from the current schema.
  3. BigCommerce API docs are fancier. Shopify, take notice. But Shopify API docs are GREAT! No seriosuly, I've been reading docs for 20 years and have seen many incarnations and re-incarnations in all shapes and varieties. Shopify's may not be visually appealing and they aren't as discoverable, but they are rather complete and then there is GraphQL...
  4. GraphQL! Bye bye BigCommerce! Okay, technologies come and go and I am not one to stick a dozen stickers of React, Vue, Node, GoLang, Rust, Mongo, HTML5, <3 StyledComponents, WC, yadi bla on the back of my MacBook as the latest contender for the throne of standards arrives, but GraphQL sure is sweet for many HTTP API use cases and for some it squarely beats the pants off RESTful APIs. I tip hat to Shopify for pushing in to that direction and that I now have documentation straight in my code editor, type safety, code generation, better mocking / testability etc. BigCommerce... ah yes, still haven't gotten around reading Shopify docs to copy it ;-)
  5. BigCommerce standard and plus plans give only 20k API calls per hour. Try importing / exporting with that. And in case you wondered, no, neither do they have bul import export endpoints and their CSV import export is also a little edgy according to forum reports and no, they also do not respond to making that available via API. Square one.
  6. Many little bits and bobs really, but ultimately Shopify is the market bull. They created the SMB commerce as a service sector while Amazon was too high nosed to care about small merchants and Google was idle to see how it plays out before they lay billions in to it. BigCommerce is still catching up in ALL areas starting from the technology and ending with market share and community momentum.

Now to be clear, neither of above are bad. I am not affiliated with either of these vendors and even though I am sort of hailing Shopify here, I too have my frustrations with it. Oh I do! As is, in view of the options, Shopify wins!

The Woes of Vows

So decision made, store setup and paid. Wife's happy and learns how to use it within a few weeks, customizes the theme, adds products, goes through all the hoops to get a payment gateway etc. Superb!

That is until one day...

  1. I need local in-store pickup shipping options where the store locations are served via a local Czech in-store pickup shipping provider who have an API and beautiful maps and auto-completes and the whole shebbang really

    Oh hang on, cannot customize checkout forms? What do you mean we don't let you because they are heavily optimized for best conversion but we let our Plus merchants do it because for some reason they should know better and for them the checkout isn't optimized enough? Aah, the double standard!

    So I can have calculated carrier rates? Wait what? $20 per month extra plus I need to develop the app? And even with all that I still cannot offer the pretty UI with maps to pick a brick and mortar store where the goods will be shipped for pickup?
     
  2. So we cannot have Shopify Payments a.k.a. Stripe because Stripe doesn't care about the rest of the world. Okay, not Shopify's fault. So let's pick another one. Wait, hang on, now we got to pay more % per transaction because... because what? C'mon man, you choose Stripe as a partner yet they aren't capable of providing for merchants from any country and as a result us otherly merchants have to pay extra for being forced to pick from another payment gateway provider? Uuuh...
     
  3. Okay, no problem. So let's pick Braintree Payments. They're well known, have an awesome service, superb API and dashboard and... oh for crying out loud Shopify, you didn't reach an amicable business agreements with Braintree because they wouldn't cut a piece of the cake to share with you even thougn you are already charging merchants using gateways other than Shopify Payments? Seriously? Grrrrr level 2!
     
  4. Have a few brick and mortar inventory locations and one more local Czech sales channel (a Czech Etsy if you will). So need to synchromize inventory and products across all these. Few hundred rows. Minutes? What?!?!?!? No bulk API? Grrrr level doesn't exist for this one because I am still in awe!
     
  5. Need GDPR compliance, we are EU based. Get an app. What for, to display a banner? Need to print invoices. Get an app. To convert and print PDF? Need to add and edit some metafields. Get an app. What do you mean get an app for a standard feature??!?! Need to add some pop to your blog posts, maybe even just do some basic layout, wrap text, align image, control spacing, alignment, add some pre-formatted content components? Get an app - looking at you Shogun and the ridiculous pricing! Need... hey, you know what, just get an app! Whatever it is, app shall provide. App this, app that! Oh and did I mention that most apps cost more than the basic plan? Mrrml grml level 3!
     
  6. Need to tweak the theme a bit. Change a color here. Spacing there. Layout so and so. Dear lord what antique piece of garbage'd CodeMirror editor do we have here? It is 2019, please remove this and give me a real editor. No wait, how about I just use the one I already have on my computer be that VS Code, Atom, WebStorm, Sublime. What do you mean I cannot run and test my theme locally? Okay, my grrrr level is off the charts now plus no disrespect to Tobi Lutke who's a developer genius and has accomplished so much, given back so much, but Liquid deserves an immediate and painful demise and I cannot appologize for that. And yes, I am aware of Theme Kit and Motifmate.
     
  7. Scrap all that. Let's build it from scratch. I mean, I am a software engineer and even though I am not specialized in UI/UX, frontend tech like React, Vue, Web Components and many more flow through my veins. So here commeth Storefront API and let's get coding. Wait, I cannot count total items in a collection? How on earth should I page or more specifically, how should I show that there are N amount of pages? Nevermind, I'll just do infinity scroll with auto-loading, that's anyway cooler. Let me grab inventory levels for that item. Wait what? I can only tell if it is available or not? Seriously? That's just to mention a few PITA points. And as you know, API throttling for such custom storefronts is a REAL problem so we need to deal with client side response caching or develop an app that will do that and optimize for some aggreagte queries. Hello again server and hello costs again!
     
  8. Wait, I need to test my coffee bean infused hipster stack storefront so let me quickly grab all that nice data from my wife's store. I mean, she is my client after all and what better way to test than doing so with her store data. I cannot duplicate her store for dev purposes? Can I back it up? Okay, so partially and manually with some additional steps. Wait what, now when I am testing I cannot re-create or alter store settings or preferences programatically? So you're telling me you do testing with real people who have lengthy test cases up on their screens, then click through each every time you make changes? How well tested are other apps - oh I shudder at the thought of using or sharing any data then!

State of Contentment

So as you delve in to the Shopi-verse as a merchant or developer, these issues keep popping up and adding frustration. Which is understandable. But let's flip the coin and look at Shopify's point of view.

They were the first or among the first to define the SMB e-commerce as a service market and 10 and some years later on they, like any such vendor and platform, become a little legacy. It is a reality all software vendors struggle with. At some point you simply have to buckle down and support what you have. When that something you have includes 600k merchant accounts it becomes extraordinarily difficult to do so without alienating some, hurting others, ignoring most.

Shopify has a 10% or so market share among e-commerce vendors. That's considerable and second only to WooCommerce. Even so, 2018 last I read they are still in red numbers with a force of 4000 employees. The market has been catching up and some disruptors are emerging who have the benefit of moving fast and being agile as companies and with their technology stack. Then Amazon, Google and the stratospheric elite of stinkign rich companies with armies of engineers and resources have taken note of the SMB market and are catching up fast and threatening to roll over all and anything like a tank. Shopify ain't in an easy spot IMO.

That said, they are doing what they can and they are on a good road as far and as little as I can tell without being an expert. They are trying to hard to modernize the tech stack. See GraphQL, multi-location, multi-currency to mention a few recents. If you look at their NPM namespace they have A LOT of stuff in the making, stuff they aren't mentioning publicly, but it shows what direction they are moving in.

They are investing heavily on React, see Shopify Polaris. they are investing heavily in GraphQL, see GraphQL Admin API and Storefront API. They are investing heavily in to Node.js tech stack if you follow their efforts moving away from Express and on to Koa which then leads you to finding out their newer libraries for a modular "timber" or sewing-kit which is an entire shrink-wrapped app build system built to quickly bootstrap app devs in future (at least by the looks of it as this is one of those things they haven't talked about yet but can be found on the web if you poke around).

So there are small and big changes arriving and they look good!

But for now, frustrations remain. Or do they?

I've been helping members here for 2 or 3 months now. That's also how long I've been acquainted with Shopify as a developer. Answering questions here helped me learn and grow, get an understanding of the platform in ways that reading docs or writing code simply cannot. I have noticed the community is alive and kicking and I also see that Shopify staff are doing are grand job to help users of all levels. Of course, some requests simply cannot be fulfilled adequately or the way a user would like to. You rarely can.

At first I was VERY frustrated. I was telling my wife how we need to move away from Shopify first thing because - see above points 1 through 8 and more I didn't mention. But my wife already vested a lot of time building up her catalogue and customizing her free theme best she could while patiently waiting for her angry husband to over engineer an almighty solution. With time I relaxed, I learned more, understood more and found out that while EVERY single one of the pain points I mention above still remain, EVERY single one of them can be worked around.

while EVERY single one of the pain points I mention above still remain, EVERY single one of them can be worked around

Really? Yes! And that's when you realize that the Shopify platform is a great place to be.

Does it cost extra and custom development? Yep, sure does. But anything in and around software does. This isn't specific to Shopify. It's present in all walks of life where technology has touched and transformed the prior. Do we, as partners or merchants need to buy in fully to Shopify? Nope! And we shouldn't. Not because of Shopify, but because in general we should heed our business, our data, our customer data, our IP - having our business rely on one single paltform or vendor or whatever is huge risk to take. Shopify may discontinue this or that or discontinue itself and what then? This does happen!

Until then, and for now, Shopify is a fantastic paltform and I for one will remain objective enough to praise and criticize, but most of all try and be part of the community and move ahead toward better and greater goals on this platform.

Rant over ;-)

I turn coffee in to code - since 1998
3 Likes
Shopify Partner
8 0 1

Karl, an amazing piece of writing - and I think you encapsulate so much of my feelings toward the product.

I think the core of our frustration is that the promise of Shopify is not delivered on (the way we thought it would be). Our team did spend a lot of time looking at alternatives as you did, and we did make the decision to go with Shopify because things were meant to be smoother / easier / whatever..

I think your advice to engage better with the community is the best way forward for us (and, I would suggest, anybody finding themselves here as well).

I have railed against it, not because I don't like being active - I have been active in open source projects before, and it is exceptionally rewarding - you can see the improvement that your involvment makes both to product, and the experience of others with that product.

That however is why I struggled with Shopify - it's not open source, Shopify gave me the distinct impression that they don't want to engage by how they handle their support issues and complaints.

And here we are, luckily, my first post here was met with your knowledgable and empathetic response.

We have a way forward, just not the way I wanted things to go. So now, I do have to be content, write a bunch more code, and get back to work.

Thank you

1 Like
Shopify Partner
72 0 14

I've been here for ~nine years, just shy of the entire lifetime of the app store platform. Far more than otherwise, I've seen the folks at Shopify assemble design patterns that flow well and - crucially - afford enough flexibility to work around them when their material ability falls short. I've found this consistently - a firm +1 to what you said, Karl.

I'm not a merchant; my happy space is in designing away problems, and I have all the tools I need to effect that well. I'm super happy here. :)

I made Locksmith and Mechanic. :)
1 Like
Highlighted
New Member
4 0 0

great post Karl!

 

I'm just 7 days into 'evaluating' the Shopify platform but I'm already planning to move over from my very expensive (but very safe) existing ecommerce provider where I've been for 7 years.  I'm committed to have the whole kit and kaboodle migrated by the end of November when my existing provider subscription ends - eek!

 

So far I'm loving graphQL (but still trying to wrap my head around it), the API documentation, smart collections and the site speed.  No doubt I'm soon to find out some of the things I don't like!

 

I'm diving in the deep-end and have a steep learning curve ahead, but I'm encouraged by the vibrant user community helping each other out, yourself included.  Hopefully I'll be able to help as well as my knowledge grows.

 

best, Rod

0 Likes