This website uses cookies to better the user experience of its visitors. Where applicable, this website uses a cookie control system, allowing users to allow or disallow the use of cookies on their computer/device on their first visit to the website. This complies with recent legislative requirements for websites to obtain explicit consent from users before leaving behind or reading files such as cookies on a user’s computer/device. To learn more click Cookie Policy.

Privacy preference center

Cookies are small files saved to a user’s computer/device hard drive that track, save, and store information about the user’s interactions and website use. They allow a website, through its server, to provide users with a tailored experience within the site. Users are advised to take necessary steps within their web browser security settings to block all cookies from this website and its external serving vendors if they wish to deny the use and saving of cookies from this website to their computer’s/device’s hard drive. To learn more click Cookie Policy.

Manage consent preferences

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
Cookies list
Name _rg_session
Provider rubygarage.org
Retention period 2 days
Type First party
Category Necessary
Description The website session cookie is set by the server to maintain the user's session state across different pages of the website. This cookie is essential for functionalities such as login persistence, ensuring a seamless and consistent user experience. The session cookie does not store personal data and is typically deleted when the browser is closed, enhancing privacy and security.
Name m
Provider m.stripe.com
Retention period 1 year 1 month
Type Third party
Category Necessary
Description The m cookie is set by Stripe and is used to help assess the risk associated with attempted transactions on the website. This cookie plays a critical role in fraud detection by identifying and analyzing patterns of behavior to distinguish between legitimate users and potentially fraudulent activity. It enhances the security of online transactions, ensuring that only authorized payments are processed while minimizing the risk of fraud.
Name __cf_bm
Provider .pipedrive.com
Retention period 1 hour
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to support Cloudflare Bot Management. This cookie helps to identify and filter requests from bots, enhancing the security and performance of the website. By distinguishing between legitimate users and automated traffic, it ensures that the site remains protected from malicious bots and potential attacks. This functionality is crucial for maintaining the integrity and reliability of the site's operations.
Name _GRECAPTCHA
Provider .recaptcha.net
Retention period 6 months
Type Third party
Category Necessary
Description The _GRECAPTCHA cookie is set by Google reCAPTCHA to ensure that interactions with the website are from legitimate human users and not automated bots. This cookie helps protect forms, login pages, and other interactive elements from spam and abuse by analyzing user behavior. It is essential for the proper functioning of reCAPTCHA, providing a critical layer of security to maintain the integrity and reliability of the site's interactive features.
Name __cf_bm
Provider .calendly.com
Retention period 30 minutes
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to distinguish between humans and bots. This cookie is beneficial for the website as it helps in making valid reports on the use of the website. By identifying and managing automated traffic, it ensures that analytics and performance metrics accurately reflect human user interactions, thereby enhancing site security and performance.
Name __cfruid
Provider .calendly.com
Retention period During session
Type Third party
Category Necessary
Description The __cfruid cookie is associated with websites using Cloudflare services. This cookie is used to identify trusted web traffic and enhance security. It helps Cloudflare manage and filter legitimate traffic from potentially harmful requests, thereby protecting the website from malicious activities such as DDoS attacks and ensuring reliable performance for genuine users.
Name OptanonConsent
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonConsent cookie determines whether the visitor has accepted the cookie consent box, ensuring that the consent box will not be presented again upon re-entry to the site. This cookie helps maintain the user's consent preferences and compliance with privacy regulations by storing information about the categories of cookies the user has consented to and preventing unnecessary repetition of consent requests.
Name OptanonAlertBoxClosed
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonAlertBoxClosed cookie is set after visitors have seen a cookie information notice and, in some cases, only when they actively close the notice. It ensures that the cookie consent message is not shown again to the user, enhancing the user experience by preventing repetitive notifications. This cookie helps manage user preferences and ensures compliance with privacy regulations by recording when the notice has been acknowledged.
Name referrer_user_id
Provider .calendly.com
Retention period 14 days
Type Third party
Category Necessary
Description The referrer_user_id cookie is set by Calendly to support the booking functionality on the website. This cookie helps track the source of referrals to the booking page, enabling Calendly to attribute bookings accurately and enhance the user experience by streamlining the scheduling process. It assists in managing user sessions and preferences during the booking workflow, ensuring efficient and reliable operation.
Name _calendly_session
Provider .calendly.com
Retention period 21 days
Type Third party
Category Necessary
Description The _calendly_session cookie is set by Calendly, a meeting scheduling tool, to enable the meeting scheduler to function within the website. This cookie facilitates the scheduling process by maintaining session information, allowing visitors to book meetings and add events to their calendars seamlessly. It ensures that the scheduling workflow operates smoothly, providing a consistent and reliable user experience.
Name _gat_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _gat_UA-* cookie is a pattern type cookie set by Google Analytics, where the pattern element in the name contains the unique identity number of the Google Analytics account or website it relates to. This cookie is a variation of the _gat cookie and is used to throttle the request rate, limiting the amount of data collected by Google Analytics on high traffic websites. It helps manage the volume of data recorded, ensuring efficient performance and accurate analytics reporting.
Name _ga
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga cookie is set by Google Analytics to calculate visitor, session, and campaign data for the site's analytics reports. It helps track how users interact with the website, providing insights into site usage and performance.
Name _ga_*
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga_* cookie is set by Google Analytics to store and count page views on the website. This cookie helps track the number of visits and interactions with the website, providing valuable data for performance and user behavior analysis. It belongs to the analytics category and plays a crucial role in generating detailed usage reports for site optimization.
Name _gid
Provider rubygarage.org
Retention period 1 day
Type First party
Category Analytics
Description The _gid cookie is set by Google Analytics to store information about how visitors use a website and to create an analytics report on the website's performance. This cookie collects data on visitor behavior, including pages visited, duration of the visit, and interactions with the website, helping site owners understand and improve user experience. It is part of the analytics category and typically expires after 24 hours.
Name _dc_gtm_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _dc_gtm_UA-* cookie is set by Google Analytics to help load the Google Analytics script tag via Google Tag Manager. This cookie facilitates the efficient loading of analytics tools, ensuring that data on user behavior and website performance is accurately collected and reported. It is categorized under analytics and assists in the seamless integration and functioning of Google Analytics on the website.

How Much Does It Cost To Build an Ecommerce Site on Spree

  • 17717 views
  • 10 min
  • Nov 02, 2016
Viktoria K.

Viktoria K.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Tags:

Share

Every entrepreneur who considers ecommerce website development wonders how much their website will cost. The reality is that ecommerce website development is neither quick nor easy. To offer a successful product that satisfies your end user’s needs you must invest in the initial development, then invest in further product development, and finally invest in regular maintenance.

Most articles you’ll find on the web specify exact sums for the cost of developing an ecommerce website, but without reference to particular functionality and without specifying the platform on which an ecommerce website will be built. We’ll take the opposite approach, defining the functionalities provided and the platform we’ll use to offer a more informed estimate of what it takes to launch an ecommerce website.

Here at RubyGarage we use the Spree Commerce platform to build ecommerce solutions. Our certified Spree Commerce developers offer these services, and we’ve managed to define a unique methodology that allows us to come up with precise estimates. Read on to see how we got to the final numbers at the end of this article.

Our Step-by-Step Methodology

Our methodology is the result of our years of experience in developing ecommerce solutions. This methodology is possible because of our proven development approach, a known web storefront platform, and not a typical estimation technique. Our unique methodology helps us provide our clients with reasonable estimates.

Component #1: Spree Commerce Platform

How much does it cost to build an ecommerce website on Spree

Spree Commerce is a popular web storefront platform that is trusted by many store owners and retailers. It’s proven to be a reliable system for building ecommerce websites from scratch, and provides a number of unique advantages:

  • Spree runs on the Ruby on Rails framework, which speeds up the development process;
  • Spree keeps in mind both the end-user experience and the usability of the administrative dashboard;
  • Spree offers an extensive set of tools, features, and extensions;
  • Spree easily scales your store when your traffic grows;
  • Spree’s open source community is constantly developing new functionality and is ready to solve issues.

Finally, Spree is an open source platform that is constantly improving with the help of around 500 active contributors – and it’s totally free. Just download Spree, set it up, and start using it.

We’ve delivered many products to our clients with the help of Spree Commerce. Some of our latest projects are ArtDeco and Medshop Express. While we always rely on Spree, the full stack of technologies we use to deliver ecommerce solutions differs due to project specifications. Here’s a list of technologies we might use for back end development:

  • Programming language – Ruby;
  • Web Framework – Rails;
  • Database – MySQL or PostgreSQL;
  • Auto-testing – RSpec;
  • Hosting – AWS or Heroku.

Component #2: Lean Approach

Lean approach in building ecommerce site

When developing products such as web storefronts from scratch, we use a Lean approach to product development. A lean approach suggests that we should first deliver a minimum viable product, or MVP, before developing the ‘complete’ product. The idea behind MVP development is to spend as little money as possible in order to release a limited product that addresses your users’ real problems.

For instance, with an online store you want your customers to be able to buy products first and foremost. Only then you can think about discounts, promotions, additional payment system integrations, and so on. A limited product, with just core functionality, will help you as a product owner understand the needs of your target audience more clearly and spend your time and money implementing functionality that is actually desired by your target audience.

Let’s take a look at a list of features to be implemented in the MPV version of your ecommerce website:

  • Authorization and Security;
  • Shopping;
  • Shopping Cart;
  • Checkout Process;
  • Orders;
  • Admin Panel.

When we estimate the efforts required for each feature, we’ll offer more detailed descriptions. In the meantime, let’s talk about the third component of our methodology – the Story Points estimation technique that will help us arrive at our final numbers.

Component #3: Story Points Estimation Technique

Estimation in building ecommerce site

Having delivered a couple dozen ecommerce sites and similar solutions, we’ve seen that ecommerce MVPs have a lot of functions in common (we’ve already listed some above). This experience helps us spend less time on requirements elicitation and provide final estimates quickly.

We use the Story Points estimation technique, which refers to Agile principles, to estimate the cost of ecommerce website development. This technique helps us measure the scope of work and the amount of effort needed by our whole team to deliver the product.

When we talk about product development ‘efforts,’ we mean hours. The Story Points technique helps us solve dilemma of how to estimate hours – specifically, a feature may be easy to implement for an experienced developer but require additional research and time for a junior developer. Story Points account for these differences in development time. As a result, Story Points help RubyGarage provide clients with precise estimates. To read more about how we use the Story Points estimation technique and what benefits it brings you, check out our other articles: How to Estimate with Story Points and 3 Reasons to Estimate with Story Points.

For the purposes of this article, we’ll convert Story Points to hours (6-7 hours for 1 SP). But before we proceed to the functional estimation itself, let’s figure out what we need to do to prepare for the estimation.

Preparation for the Functional Estimation

At the start of a project, we need to focus on:

  1. UI/UX design. At this point we define the required UX scenarios, choose a color scheme, define a style guide, and, if needed, design a product’s logo. We always offer custom design for our clients.

Estimate: 4 Story Points (24-28 hours)

  1. Database design, web application design, and deployment scripts. This scope of work includes configuring backend and frontend tools, designing the database structure, and run deployment scripts.

Estimate: 3 Story Points (18-21 hours)

After these initial steps, we proceed to implementing features. But since each feature is tied to a particular type of user, we first must define the required user roles:

  • Site visitor – a visitor who hasn’t yet signed up in the system and has access to limited website functionality
  • Logged-in user – a visitor who has signed up in the system and has access to additional functionality
  • Customer –a visitor who has purchased an item
  • Administrator – a super-user assigned additional rights by a website owner

Finally, implementing each feature requires all (or at least some) of the following efforts:

  • Creation of a unique UI design;
  • Creation of statistical HTML/CSS based on UI design;
  • Integration of statistical HTML/CSS into Spree templates;
  • Testing.

To accomplish these tasks, we’ll bring in the following specialists:

  • UI/UX designer;
  • HTML/CSS programmer;
  • Ruby/JS programmer; and
  • QA engineer.

Now we can finally move to the functional estimation.

Functional Estimation

Authorization and security

Today’s ecommerce websites allow users to create accounts, and store confidential user information. This information includes names, purchase history, and credit card details. To allow our users to do the same actions we need to implement the corresponding functionality.

Since most users have social network accounts, one-click signups via social network accounts has become an industry standard. Whenever your website stores information about users, you need to make sure it’s secure.

Site visitors should be able to:

  • Sign up using email and password or via a social network (Facebook, Twitter, G+)
  • Log in using email and password or via a social network (Facebook, Twitter, G+)
  • Reset a password if it’s forgotten

Logged-in users should be able to:

  • Update their settings (name, email, password, etc.)
  • Make their data private

Estimate: 8 Story Points (48-56 hours)

Shopping

Naturally, shopping is the most important functionality we need to implement.

Site visitors should be able to:

  • See a list of bestsellers on the main page
  • See a list of products on category pages
  • Use filters to find products they’re interested in
  • Use the search field to find products by keywords
  • See detailed information about a product on a product’s page

Estimate: 26 Story Points (156-182 hours)

Shopping cart

The list of potential shopping cart features is rather long. But when we build an MVP, we have to implement only those shopping cart features that users can’t live without.

Site visitors should be able to:

  • Add a product to their shopping cart
  • See products (and total cost) in their shopping cart
  • Manage products in their shopping cart before moving to payment

Estimate: 7 Story Points (42-49 hours)

Checkout Process

Even for a full version of an ecommerce site, the checkout process should be short. We want customers to be able to complete purchases with as little hassle as possible.

Site visitors should be able to:

  • Checkout from the shopping cart page
  • Add shipping information
  • Add billing information
  • Pay for products using a credit card
  • See an order summary

Estimate: 8 Story Points (48-56 hours)

Orders

Customers should be able to see information about all orders made through your website and get updates about outstanding orders.

Customers should be able to:

  • See a list of orders
  • See order status

Estimate: 3 Story Points (18-21 hours)

Admin Panel

The admin panel should let website administrators manage the site in all respects – from managing products to managing static pages.

Administrators should be able to:

  • Manage products
  • Manage product categories
  • Configure taxes
  • Manage shipping methods
  • Manage client orders
  • Manage registered users
  • Manage static pages

Estimates: 0 Story Points. Spree already has it. In most cases, we don’t need to customize anything.

Total: 58 Story Points or 348-406 hours

Before we convert these estimated efforts into dollars, let’s sum up the benefits our methodology provides to our clients:

  • We build our products with time-tested technologies;
  • Product development is efficient;
  • Product development is cost-effective;
  • We can offer realistic estimates to help our clients stay within budget;
  • Our clients are able to go to market quicker and get feedback to decide how to further develop their products.

Converting Efforts into Money

Now that we know the amount of time required to deliver an MVP for an ecommerce site, we need to know the average hourly rates for web development companies. We used data from Clutch.co to give the following approximation of hourly rates:

Average development hourly rates in various countries
[Based on data from Clutch.co]

Now we know the amount of time needed to deliver MVP as well as the average hourly rates in various countries, so we can come up with the final cost for our ecommerce MVP using a simply formula:

Final Cost = Total Number of Story Points x Average Time for 1SP* x Country’s Hourly Rate

*1 SP = 6-7 hours (for the purposes of this estimate)

Here’s a chart that provides some cost estimates for implementing a standard web storefront MVP in different parts of the world.

Note! Keep in mind that rates change, and that these are only approximations.

Web storefront MVP’s

approximate cost in…

Web storefront

Total: 58 story points, 348-406 hours

Ukraine

($30/hour)

$10,440—$12,180

Europe

($60/hour)

$20,880—$24,360

USA

($100/hour)

$34,800—$40,600

Of course, if you’re developing a more unique MVP, your final cost may be slightly different. Do you want us to help you figure out how much it will cost to develop your ecommerce website? Just drop us a line for a personal consultation.

CONTENTS

Tags:

Authors:

Viktoria K.

Viktoria K.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Rate this article!

Nay
So-so
Not bad
Good
Wow
4 rating, average 4.5 out of 5

Share article with

Comments (0)

There are no comments yet

Leave a comment

Subscribe via email and know it all first!