Building a Drupal Commerce store with almost no coding
Hi everyone, here is a case study about the recent personal business that I started, and how I’ve been able to build a complete working eCommerce store with Drupal Commerce, without being a developer and with almost no coding.
What am I selling?
Last summer, when I came back from my traditional wedding in China with my awesome wife, I realized that there was no way for us to buy clothes for couples in France, whereas it is so common in China.
That’s the reason why we decided (my wife and I) to bring that concept into Europe, starting in France. But we had to tweak the concept a bit to fit a European market, since European couples don’t act the same and tend to be more individualistic than Asian couples. So we had to create designs that our customers could wear separately, as well as a couple.
We started with t-shirts since they’re fairly easy to produce and sell.
You can check the site at: coupledehuit.fr
We wanted to target all couples, and not only students passionately in love…
So we imagined designs that would be attractive to any couple of any generation.
How am I selling?
We were completely new to the textile world, and we had no contact with any wholesalers or retailers, we decided to sell online.
Whereas I’m not a developer, I still wanted to have complete control on the website, and not depend on someone for any change or future improvements.
So I made the decision to build the website myself !
By working at Commerce Guys, as the project manager of the Product team, I actually have some knowledge about Drupal Commerce and eCommerce. That was enough to achieve my goals.
What did the store need to do?
Before getting started, I wrote the minimum requirements that my site should meet.
After working on several smaller projects, I know how hard it can be to come back to a deployed site and try to update it or fix something after a while.
The site had to make certain tasks easy for me:
- updating Drupal core and any contributed modules
- adding new features or improving an existing ones
- fixing bugs and deploy them
Since we were targeting the french market, the site had to be translated in French.
I decided not to have multiple languages to start with, but wanted the option to add more languages later.
I’m not a front-end developer either, but I know how critical it is to have a nice design.
I wanted the theme had to be:
- light and minimal
- responsive (to meet the mobile market)
As you know, I’m not a developer, so I needed to have as little custom development as possible.
Remember the Drupal mantra: “it’s all about knowing the right modules” ? That’s what I had to follow...
How did I make the design?
I started by creating very basic wireframes, to make sure the theme would be easy to integrate with Drupal (mostly thinking in terms of blocks, views…).
I then asked a friend who is starting his own design company, called Ninjaz, to help on the mockups. He worked on the logo, the mockups and also the designs to print on the shirts based on the ideas we had.
And then I simply used the Bootstrap starter theme which is a powerful easy-to-use responsive theme. I could have used the Omega theme which is used by Commerce Kickstart, but I was interested in trying something I wasn't familiar with.
How did I build the site?
I didn’t start with the Commerce Kickstart distribution since I wanted to build a custom installation profile from scratch. But I did use lots of pieces from Kickstart to build the site.
To meet the “easy maintenance” requirement, I had to export every configuration into code and all the contributed pieces were downloaded via a make file (Drupal core, contrib modules, libraries…). The great benefit is that it’s easy to manage contributed code (update, test patches, target specific versions…).
And because it's all about sharing, I’ve exported a starter profile so you can try that too...
I then built the site and exported the:
- configuration (rules, views, …) using Features & Commerce Features
- variables using Strongarm
- content using Migrate & Commerce Migrate
My shipping process is very simple. I simply have a standard shipping rate at 8€, and a free shipping rate for every order which has more than 2 products. The shirts are in our spare bedroom, and I take them to the post office myself.
It took me 5 minutes to set up a Paypal account and start receiving money with it. I’m still waiting for my account to be opened with another payment service provider to allow my customers to choose their payment solution.
The bundle issue
One of my requirement was to sell a bundle of 2 physical products (man, woman) on each line item. Since there was no complete solution for that (Commerce Bundle wasn’t started yet), I had to find a workaround. I simply created a t-shirt couple product type which had 2 attribute fields (men’s size, woman’s size), and a t-shirt product type which has a size and a sex. And I’ve extended the Stock Rule to automatically decrease the stock of the 2 related t-shirt products at the end of the checkout.
What tools did I use?
Git is a powerful versioning system, used by drupal.org. It allowed me to start working quickly on 2 different computers and keep tracks on my files.
Drush is the tool you should know to work with Drupal. The main features I used were:
- drush make: download Drupal core, contributed modules and build the profile
- drush fu / fl / fr: manage your configuration that you export into features
- drush ms / mi / mr: manage your content via Migrate
Most of the features of the site are out-of-the-box contributed modules.
Many cool modules that I use are in Kickstart, but some are not:
- Commerce Billy for invoice management
- Commerce Stock for stock management
- Commerce Reporting for analytics and sales reports
- Commerce Discount for price discount
How did I host it?
I’ve developed the site on Commerce Platform which is incredibly flexible and powerful to easily test features. Since it’s not ready yet for production use, I’m hosting the site on a dedicated server owned by a good friend.
What are the results?
People were really enthusiasts about the concept and we had very positive feedback. We got more than 80 orders in the first 4 days and it keeps increasing as we head towards Valentine’s day.
So if you have requirements like me, even without being an expert developer, simply by using those tools and following some best practices, you can build your eCommerce store and start your business.