Your First Shopify Project

Exciting opportunities and unexpected challenges

Insight for: Developers

shop-online-purchase-window-module-basket

Highlights

After several Drupal and Shopify integrations, as well as online store development on Shopify, we'd like to share our experience with developers whose first Shopify project is still in the future.

Specifically, we have highlighted moments that could lead to the underestimation or overestimation of a Shopify project, and we have also discussed the possibilities and limitations of Shopify for developers.

Let's begin with a client review as evidence of our expertise on the subject:

Evidence

“We were pleased to extend our technology portfolio with Attico beyond Drupal to also carry out development on the extremely popular platform, Shopify.

Why do we enjoy working with Attico?

We are happy to work with the Attico team from the very beginning of a project to final delivery. Their team is able to translate business requirements into a feasible and cost-efficient technical solution - with the user and client in mind.In this case, we needed to create a minimal viable product (MVP) for a shop based on the powerful features of Shopify.

Together with Attico, we were able to reduce the technical scope and decrease the time-to-market. This way we can collect valuable user data about the business model earlier, before deciding the next product iteration based on real user feedback.” 

— Sascha, Creative Technologist at Taikonauten digital agency

A Few Enthusiastic Words about Shopify

Enthusiastic

Shopify is a platform designed to empower anyone to create their own online store, quite effortlessly, with zero coding, and start earning money selling goods.

With Shopify, store creation doesn’t require ANY technical or development skills. In 30 minutes, one can create a store with all the needed features to look and work as a professionally made one. Like with WordPress for bloggers, or with WYSIWYG for writers, to get a perfect result with Shopify, one only needs to have a good sense of style.

Shopify’s template editor is incredibly convenient and intuitive; the system settings are all very understandable; and the Application Store makes the platform even more appealing.

Shopify's specialization is ONLINE STORES! Payment processing, refunds, inventory management, customer communication, discounts, promos, shipping, multi-currency pricing, and a whole lot more that usually gives developers a headache when starting an e-commerce project. With Shopify, all of these features come out-of-the-box and are incredibly user-friendly. And guess what? They also offer mobile applications that can be set up in just 10 clicks.

What About Developer-Focused Offerings?

Evidence

For developers, there are plenty of options available:

  • Extensive Events API and REST/GRAPH API
  • Shopify CLI for managing the store from the command line.
  • Shopify Theme & Liquid for working with themes. Liquid is similar to Twig with functions specific to Shopify.
  • Shopify SDK for multiple programming languages.
Shopify

The Team Required for a Shopify Project

Enthusiastic

Let's begin by examining the development of a straightforward Shopify store, without any significant alterations or modifications.

As we were unfamiliar with the platform, we started our first Shopify project in our usual way, from assembling a Backend and Frontend team, connecting Git, and so forth. However, we quickly realized that a single frontend specialist can successfully launch a straightforward Shopify store, and backend ones are likely not required.

This can and should be done by a frontend developer alone. This type of work is relatively easy to learn and does not require any database skills.

In fact, a typical simple store can be developed by a single person in around 100 hours. This estimate is for pure development time and does not include time spent on project management, communication, or feedback. When these factors are taken into account, the time required can increase to 150-200 hours.

Custom Development for Additional Functionality

Evidence

Extending the store's functionality is a more intriguing aspect.

As Shopify provides the Application Store, it is evident that developers can create their own applications. However, the challenge lies in hosting these applications on your own server rather than Shopify's.

In essence, a custom application is a service that 'listens' to Shopify events and can perform certain actions or interact with Shopify itself through the REST API in exchange for these events.

This leads to various limitations: you cannot replace anything during order creation, intervene in the process of generating any page, and encounter several other constraints. However, you can act after an event triggers, creating your own database.

Due to the hosting requirement, 90% of applications in the Shopify Application Store are paid: developers need to offset their hosting expenses.

Limitations of Modifying Functionality

Enthusiastic

With the regular approach, the most straightforward things are simply impossible to do.

  • We cannot exclude the display of a product in the recommendations block on its own page. For example, on the Skittles candy product page, Skittles itself may appear in the 'Other Mars Products' block, and we cannot prevent this.
  • We cannot augment the existing sorting options in Shopify. For instance, if we want to add sorting by manufacturer, we won't be able to do so.
  • A three-level menu is a must. Second and third levels cannot be disabled, and a fourth level cannot be added.
  • Creating different entities within the system is quite challenging. While there is a mechanism for it, it is somewhat cumbersome. And even in the admin panel, it is not possible to display a list of all entities of the same type.
  • Spam protection is only available through reCAPTCHA. Without reCAPTCHA, spam will flood all forms.
  • Search is completely unmanageable. There are no options for ranking, excluding pages, or highlighting content within search settings (nor are there any search settings themselves).

Boundless Possibilities of Shopify

Evidence

With 'Shopify on Hydrogen,' all the aforementioned limitations can be completely forgotten. Hydrogen is an EXTENSIVE library that empowers you to develop the frontend of Shopify exclusively using the Graph API, embracing the Headless approach.

In this case, truly limitless possibilities unfold as the rendering of content shifts from Shopify's server to your own. Shopify assumes responsibility solely for data structure and, naturally, store functionalities. We can make requests to Shopify, render products, pages, and any other elements precisely as we desire.
In essence, we obtain a React-based website that leverages GraphQL to query Shopify instead of a traditional database. Alternatively, it can utilize two databases.

Furthermore, there is Oxygen, which significantly accelerates Graph API requests. As you may have guessed, it serves as a hosting solution for Hydrogen-based websites.

Key Takeaways

Enthusiastic

To conclude, we would like to emphasize the following points:

  • A single frontend developer who is proficient in working with Shopify can easily build a straightforward store within 100 working hours. This estimate is for pure development time and does not include time spent on project management, communication, or feedback. When these factors are taken into account, the time required can increase to 150-200 hours.
  • If you are planning additional features that are not offered by Shopify's existing functionality, carefully consider whether they are truly necessary. Opting out of non-essential features can significantly reduce development time, expenses, and ultimately result in a better store.
  • If you are certain that these features are necessary, take a closer look at Shopify on Hydrogen. However, if this is your first experience with Shopify, it is important to note that the project may easily take 2–5 times longer than your initial estimate due to potential non-obvious challenges.

Article Authors

Lushnikov
Yaroslav Lushnikov Backend developer, Team Lead
Senior developer, Drupal expert and big fan of technology. Helps Junior developers and contributes to the Drupal community in his spare time.

Need a Shopify-based online store?

Let's start with a complimentary consultation!