Switching from Shopify to Stripe
Tags: ecommerce, shopify, stripe
Published: 2021-09-24 13:55:53

At [SommCellar](https://www.sommcellar.co.uk) we recently switched from using Shopify to handle e-commerce over to a  custom system centred around Stripe. The change was based on Shopify  limitations as well as the reduced transaction fees on offer from  Stripe.

## Why did we start with Shopify?

When we first launched the business our number one concern was getting up  and running quickly without an extended development period.

Hearing the positive experiences of others and knowing that we could get a  high-quality site launched in a matter of minutes we chose Shopify to  power our online shop.

Shopify offers a great all-in-one platform  to manage the online sale of physical goods. The speed at which we could get the site up and running was amazing and the initial costs of using  the platform were reasonable.

Our launch site may not have been exactly what we envisioned but it allowed us to begin making sales and generate revenue.

## What issues did we experience?

While at the start Shopify was great, when we looked to expand the site by  adding new features we quickly began hitting barriers.

It turned out that adding near anything beyond the requirements of a basic site requires plugins.

Perhaps calling the requirement for plugins an "issue" is wrong — Shopify  themselves market plugins as a feature — but by the time we had priced a few plugins for the site our monthly hosting cost was going to triple.

What we were looking for wasn't lavish, just some tools to help with  delivery pricing, bookkeeping feeds, and the like but the total cost  quickly crept up.

We were also concerned that the all-in-one  platform from a single provider that we had originally signed up for,  had fast turned into a melody of service providers that we had to rely  on to run our business and provide our customers with great service.  Each service provider would become a link in a growing chain of  dependencies, and we would be at their mercy if they wanted to make  changes to their link because Shopify hadn't built the functionality  into their own system themselves.

The final kick in the teeth was a notice from Shopify that app developers would receive their first  million dollars of revenue fee-free, while those of us using them to run our shops had to pay fees from the first sale. As a shop owner, it felt like they were rewarding the developers who were helping them build  their platform, while ignoring their customers.

## What are we using now?

We didn't take the decision to move away from Shopify lightly and spent a  long time researching other options. There are a number of e-commerce  platforms out there, but we didn't find any that weren't either missing  features or exorbitantly expensive.

In a rare moment of clarity,  we realised that (ignoring card processing) for small businesses,  e-commerce reduces to a glorified CRUD app. At its core, we are only  concerned with products, customers, and orders. If we could handle  emails, card payments, and wrap everything in a fancy admin UI there was nothing stopping us from running our own platform and customising it  exactly to our needs.

Saying we "built our own e-commerce  platform" is very grandiose. In reality we wrote down our customer  journey and built functionality into our system as the next step on the  journey arrived.

By focusing on our own needs only we were able to eliminate irrelevant features and postpone others to a later date. For  example, at the moment our products are managed by running SQL queries  directly against the database instead of via the admin UI. Adding the  ability to manage products via the admin UI will certainly be added in  the near future but for now it has saved us the time of building out a  management interface, allowing us to concentrate on other areas.

An area that received increased attention was payments. As the centre of  the business, it was important we got it right. All our payments are  handled by Stripe. Users add items to their shopping bag and enter their delivery information on the SommCellar website. When they hit "Continue to payment" they are redirected to Stripe Checkout, which takes care of charging the customer's card. Users are then redirected back to the  success page on our website.

We decided to handle products solely  on our own system instead of making use of Stripe's products API. When  creating the payment intent we pass Stripe a list of products, including the title, price, and quantity, and Stripe simply calculates the total  and charges the user. This saves us from having to maintain two  collections of products across our own system and Stripe's.

Using  webhooks, Stripe lets us know when payment have been charged  successfully and we update the order to reflect the new payment status,  after which we begin fulfilment.

For the time being our system is  incredibly disjointed but for our small team, that all works in the same space, any issues can be sorted by simply turning to the person sitting next to them.

Our final tech stack is Postgres, Express, Stripe and Next.JS.

## What issues do we now face?

While we've managed to move over to a system that does exactly what we want  and will help us to develop into the future, we aren't left with nothing to do.

When using someone else's system, they are responsible for performance, maintenance, and uptime, activities that now fall to us.  We always knew this would be a trade-off and decided that the benefits  of creating our own system outweighed the task of running it.

In  the effort to get our own system launched, running activities have taken a back seat and will be added to the tech debt pile. While the business is small, these issues are relatively low impact. We will incorporate  performance tasks into the general development of the system and tackle  issues as they become apparent.

For us, our main concern is to be  aware of any problems as quickly as possible, so we can communicate any  issues with our customers. Heavy use of monitoring and automation will  be useful to make sure we can stay on top of issues as they come up.

## Would I recommend Shopify?

After writing a whole post outlining the reasons we decided to move away from Shopify it may be expected that I would recommend everyone did the  same. But that's not the case.

I'm happy we gave Shopify a go, and despite finding their platform didn't suit us, I think they have a good offering perfectly suited to many uses.

If you are running an  online shop and you're not looking to deviate from a fairly standard  setup then Shopify will work well and will take care of a lot of the  challenges of running your shop.

I do think the pricing of plugins can be excessive and quickly lead to a high monthly hosting cost. I  also feel for non-technical shop owners who have no choice but to accept the costs as the cost of rolling their own is prohibitive.

Overall, I am happy we went down the route of an in-house e-commerce system. The control and flexibility in developing the system into the future will  allow us to maintain a sharp focus on delivering the best possible  service to our customers.