Shopify is one of the trending e-commerce platforms this year. Earlier this year we started developing extensions for Shopify and we wanted to share with you our experience, the upsides, the downsides and differences between the development process for Shopify and other platforms.
First of all, Shopify’s biggest difference when compared to traditional e-commerce platforms such as Magento, Prestashop or WooCommerce is that Shopify is a SaaS. For us, as developers, that means no access to their code so you might ask yourself “how does one develop extensions for it?”. There are two words that will respond to this questions: API and Webhooks.
You see where this is going to, don’t you? In order to develop extensions for Shopify, you need to host the applications yourself. Though this has its advantages, such as freedom to code in any programming language you want, there are still one or two things you need to address like paying for separate hosting for your app, making sure it’s secure and so on.
However, freedom to code in any programming language and with any framework you want is a huge upside if you ask me. We are using Symfony, the leading PHP framework in the world, to build Shopify apps. If you are using PHP too, you might expect to find some official SDK or library for Shopify’s API written in PHP but there isn’t. After a really good search (which led us to some results that don’t seem very reliable) and a serious debate if we should write our own library or use one that we found, we decided to mix the options: use an existing one (this one) and extend it to fit our needs.
There isn’t very much to say about the Shopify API except that it’s really powerful and reliable, meaning that we haven’t encountered any downtime. The webhooks, on the other hand, might show some inconsistencies such as delayed pings to your app (the app uninstall ping might cause some real trouble) or mixed arrival order (if the user edits a product then deletes it, you might receive the delete ping first and then the edit one).
Other differences between Shopify and other platforms are on the user experience side. For example, metafields (attributes) are set on each entity (product, collection, order, etc) and there isn’t a built-in app for this so you’ll have to use an external one. Also, order lines can’t be edited unless you cancel the order and create a new one.
Shopify is a totally different beast than other (more traditional) platforms and so is developing its extensions. It offers great flexibility and API’s but, unfortunately, that comes with some tradeoffs. It’s up to you to decide if it’s worth living with them.
Do you have any experiences with Shopify extension development? Tell us about it in the comments section. We’re eager to read them!