Build a powerful ecommerce site with ExpressionEngine
- Knowledge needed: ExpressionEngine, intermediate HTML and CSS
- Requires: ExpressionEngine version 2.5+, BrilliantRetail version 1.2+
- Project time: Varies depending on the complexity of the site. Demo install less than 1 hour
ExpressionEngine is a powerful and flexible content management system. David Dexter of codesly.com walks us through the process of using the CMS to build ecommerce websites
ExpressionEngine provides a great platform for developing full-featured content websites. Its unassuming template structure allows designers and developers to build without the restrictions of many other content management systems (CMS). Coupled with the BrilliantRetail ecommerce add-on for ExpressionEngine, you can create ecommerce websites quickly using same template system and logic.
We’ll walk through the process of installing and setting up a demo store and look at the core features and functionality in a BrilliantRetail store, including the various product types, order management system, promotions, reports, and more.
Advertisement
1. Installing ExpressionEngine and BrilliantRetail
BrilliantRetail includes the full ‘blank demo theme’ packaged in the installation process. The blank theme was intentionally created as a set of templates. These templates highlight the BrilliantRetail features and functionality without making assumptions about your design. This allows you to style and enhance the site to meet clients' needs. The source code for the blank theme also contains helpful comments that make it easy to review.
You’ll first need to download the current release of BrilliantRetail and ExpressionEngine.
Step 1: Unzip and upload the ExpressionEngine files to your website root directory.

Step 2: Unzip the BrilliantRetail file and upload the media directory to the website root directory. Set the file permissions on the media directory and its subdirectories to writeable.
Step 3: From the BrilliantRetail download, upload the third_party and site_themes folders to the themes directory, respectively.
Step 4: Upload all folders in system/expressionengine/third_party (i.e. br, brilliant_retail, shortee, snippet, tweetline) to the webroot/system/expressionengine/third_party directory.
Step 5: Same as the ExpressionEngine installation requirements, set the file permissions to 666 on the system/expressionengine/config/config.php and system/expressionengine/config/database.php files
Step 6: Run the ExpressionEngine installation wizard by visiting the /system directory in a web browser. At the second to last step, select the BrilliantRetail theme from the options.

Once you've completed the ExpressionEngine installation wizard you can navigate to your site URL to view the full demo store.

BrilliantRetail automatically creates a new store tab in the ExpressionEngine control panel. Here, you can quickly link to dashboard, customers, order overview, products, promotions, reports and store settings.
A detailed explanation of the installation process is documented on our website.
Hint: If you're developing in a multiple server environment with local, staging and production servers we recommend implementing the master config file from Focus Lab. BrilliantRetail has a number of variables that can be set in environment configuration files. These help make your deployment workflow seamless.
2. Setting up product categories
Set up categories before you begin managing products in the Store > Settings > Categories section of the site. The categories create the store's primary navigation. You can create up to four category levels for your store:

Assign the product to the relevant category when creating and editing your products. A product can be in any category or sub-category you choose.
3. Understanding product types
To create a new product, select the Store > Products > New Product link from the primary navigation menu.
Enter the title of the product and select the product type. BrilliantRetail currently includes six product types: Basic, Bundle, Configurable, Donation, Downloads and Service. Each type allows you to create and edit specific product details:
- Basic - Simple products with no variants (i.e. a coffee mug)
- Bundle - Group of one or more products (i.e. a coffee mug + a hat)
- Configurable - Product with multiple variant stock-keeping units (SKUs) (i.e. a t-shirt with multiple sizes and colours)
- Donation - Allows customers to set the donation price (i.e. charitable giving)
- Downloads - Upload files that can be sold as secure downloads (i.e. audio files)
- Service - A virtual product that doesn’t require inventory management
There are a number of self-explanatory, product-specific fields to enter. If you have questions on any of the fields in particular, review Managing Products in the BrilliantRetail User Guide.
Hint: If you need special fields or field types, use the ExpressionEngine third party field type options in the product entry form. Find out more about adding custom field types.
By default, the price and sale price of an item are set for all member groups. BrilliantRetail will intelligently handle member-based pricing by setting up different prices for each member group. You can even select dates when the pricing will be valid:

The example below shows a price of $19.95 for everyone, $16.95 for members and a one-off sales price of $9.95 for 'Super Admins' only.
4. Order management
Orders are displayed in BrilliantRetail under the Store > Orders tab. Filter for specific orders by order ID, customer name and customer email. Batch update the order status and notify customers from the order overview.
Each order contains a detailed order page, which shows order information, update order status and add private and public (customer can see) notes.
5. Running promotions
Coupon-based promotions can be created in the Store > Promotions section of the control panel. To add a new promotion click the Add Promotion button from the promotions overview page. Give your promotion a title, create a coupon code, add a description and tweak any additional requirements. BrilliantRetail promotions allow you to apply a fixed rate or percentage discount per item - or to the entire cart. You can set start and end dates for the promotion and limit the number of times a promotion may be used. You can also select what categories and products the promotion applies to.
6. Reports
Customer sales and various other reports are included with the default installation of BrilliantRetail. Export the report details as CSV files to work with the numbers in a spreadsheet program. You can also build custom reports and drop them into the control panel interface. Read more documentation on building custom reports.
7. Working with the templates
BrilliantRetail uses the ExpressionEngine template system to give you familiar control over a site's development as well as its look and feel. Tags follow the same ExpressionEngine logic.
An example product tag shows the simple nature of calling a product with its corresponding product_id:
You can read more about all of the template tags in the BrilliantRetail Docs.
Hint: The blank demo theme included in the default installation contains working examples of all of the tags. Most tags include hidden comments in the source code to guide you.
8. Final thoughts
As you can see from the BrilliantRetail Showcase, you can create any look and feel for a site; the system is only limited to your imagination.
If you need any help, or have any questions, visit our forum or drop us a message via our contact form.
Let us know when you build a BrilliantRetail site. We love to see them in the wild!




8 comments
Comment: 1
Comment: 2
Comment: 3
BrilliantRetail has a lot of ecommerce functionality packed into one EE addon. Works out of the box and very flexible when building into a custom design. Superior support if you run into any issues. I also would also recommend using Focus Lab's master config file, especially if building in a team development environment.
Comment: 4
Re "superior support", I could not comment on the 'BrilliantRetail' support however if you want support from Expression Engine itself then it comes at a cost, and that cost is the PRICE:- http://ellislab.com/support#pricing
The only people who would choose Expression Engine now are people who caught the EE bug years ago and are conditioned to using that system. Times have changed and EE is rapidly losing ground to other players.
Don't get me wrong, I have wanted to like EE and have considered it on a number of occasions but I keep coming back to the same conclusion.
Comment: 5
For me (at this moment in time) it's still the best solution out there. The ability to create specific data models that have no preconceptions over context is killer.
People always bring up the cost but seriously, for the sake of a few hours of billable time you get a whole heap of features.
Comment: 6
EE gives us more freedom and flexabilty, there is a learning curve - but it is worth it!
We constantly check out the alternatives and haven't found a better product yet for our needs. There is a cost involved and I can understand this being an issue for some. For commercial projects it makes sense for us anyway.
Comment: 7
I am thinking of switching to EE, and for the cost of around 500, its a good choice as it provides the flexibility to go to separate mobile site easily if needed.
Comment: 8
They sell their forum module for $100 when that forum is a joke is a middle age forum which is way behind competitors like invisionpower.com
Their framework does not allow to add a user to more than one group which is a huge limitation when you want to build a community around your products.
Their forum works with its own templates which are well... middel age.
Other wise if you don't need community features EE is an exceptional platform but I really want to sucedd the new kid on the block called CRAFT a new CMS build by EE entusiastics but on a more modern and flexible framework http://buildwithcraft.com/