· Blog de veille

Shopify: Implementation feedback

Shopify E‑commerce SaaS solution

Logo Shopify

Shopify company was founded in 2004 in Ottawa. In 2017, more than 500,000 merchants using Shopify E‑commerce platform, achieved over $40 billion dollars in sales.

The Shopify SaaS E‑commerce platform offers a low price solution for small and medium size company. Shopify features cover all the requirements of an E‑commerce platform. It offers many possibilities for customization. And a wide set of themes that allow to quickly adapt the design of a website. These themes are using templates implemented with Liquid language (close to Twig) and can be easily adapted to any requirements. In addition to that, a rich App Store allows to easily enhance the possibilities of the product.

This article follows the implementation of an E‑commerce site on Shopify platform. Its goal is to shortly introduce Shopify, gives a feedback on its usage and present the difficulties experienced.

Shopify Customization

Shopify offers a high level of customization based on several levels:

  • Theme selection: Shopify propose more than fifty themes free or paid. Furthermore, other independent editors sell many themes in a wide variety of activities: Photography, Ready-to-wear, Electronic….
  • Theme customization (CMS management): Shopify includes a CMS allowing to easily customize the theme: blog management, page editor, navigation menu configuration, domain configuration…
  • Template editor: Liquid templates can be edited in Shopify. The editor tool checks the code syntax and adds syntax highlight. In addition to Liquid templates, it is also possible to edit or add CSS style sheets, medias (images, videos…), javascript… If the development team has several developers, it is also possible to use a Git repository and use “Shopify Theme Kit” to synchronize Git and Shopify.
  • Ajax API: Shopify exposes an API allowing to execute Ajax queries to manage the shopping cart or to query the product catalog.

E‑commerce functionalities

Shopify functionalities cover the whole scope of E‑commerce but their implementations are usually very basic. Here is a small overview of some of them:

  • Catalog Management: It allows to manage products and their variants (SKU). For important catalogs, it is possible to proceed by Export/Import. Shopify also includes stock management and gift card management. The data model is lowly configurable. For instance, add a property to products or variants are not natively supported.
  • Order management and fulfillment: It is completed by a basic Fraud Check. At each step of the order processing, an email can be sent to the client. Liquid email templates can be customized.
  • Promotion management: Apply simple discounts of type Percentage, Fixed Amount or Free Shipping on products or orders. A Promotion code can be linked to a promotion.

App Store

Shopify App Store contains more than 1000 Apps allowing to enhance the functionalities of the application: internationalization, delivery management, payment platform, data model extension…

Apps are often using a proxy mechanism to display external content stored in the App editor platform on the Shopify front-end.

These editors usually provide an administration interface to manage the service offered: Translation interface for internationalization, Shipping label printing interface for deliveries… These interfaces can be integrated into Shopify :

  • using the Embedded App SDK. The interface appears directly in Shopify back-end. Embedded apps appear to be native Shopify features, but in fact, are separately hosted and use the Shopify API.
  • using links in Shopify back-end. These links redirect to the editor application back-end on domains outside Shopify. They also rely on Shopify API

Implementation feedback

Even if Shopify is qualified on paper, to support all requirements of an E‑commerce site, in practice, you will quickly face serious deficiencies. Let’s take a look at two of them which seem unbelievable at first glance:

  • Shopify is not natively multi-languages: In fact, despite the fact that Shopify proposes internationalized themes translated in 5 or 6 languages, the user cannot select the language of the site. In order to do it, it is necessary to use an App such as langify.
  • A registered user cannot edit his account: A user cannot edit his account to modify his name or his email address. It is necessary to use an App such as Customer Fields.

It must be emphasized that the Product, Client and Order data models are minimal. Most of the time, it is necessary to extend them to add custom properties. This is obviously done using an App.

The usage of Apps is sometimes not harmless. Our implementation uses Langify to internationalize our site. However, the way this App integrates into Shopify is not satisfying:

  • all Liquid templates are updated to add Langify code
  • langify creates new translation keys ignoring already existing Shopify keys
  • Shopify translation files and tools are not compatible and not usable with Langify

Most of Apps are paid and their price starts from a few dollars to over one hundred dollars. The necessity to use many Apps can lead to increase considerably the recurring price of the site.

In summary, Shopify relies heavily on the partner companies selling Apps. The lack of essential E‑commerce functionalities seems to be a conscious decision aimed at involving these companies. These editors, very active on Shopify blogs and forums, contribute heavily to Shopify visibility.

Why choose Shopify?

In conclusion, here are a few elements helping to choose or reject Shopify as E‑commerce solution:

Why choose Shopify E‑commerce platform?

  • Recurring costs reduced and under control,
  • Flexibility of the design with Liquid,
  • E‑commerce classic site.

Why not choose Shopify ?

  • Complex data model (Client, Catalogue ou Produit) requirements,
  • Customizable Checkout requirements (unless migrating on Shopify Plus),
  • Complex External System interconnection requirements.

Leave a reply

Your email address will not be published. Required fields are marked with an asterisk.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre>