Building an E-commerce Website With ExpressionEngine, Part 4
Tags: expressionengine, eecms, ecommerce
Published: 2022-06-13 16:02:20

---
title: Building an E-commerce Website With ExpressionEngine, Part 4
series: Building an E-commerce Website With ExpressionEngine
published: true
date: 2022-06-13 10:04:00 UTC
tags: ExpressionEngine,eecms,ecommerce
canonical_url: https://u.expressionengine.com/course/building-an-e-commerce-website-with-expressionengine/building-an-e-commerce-website-with-expressionengine-part-4
cover_image: https://u.expressionengine.com/asset/article-images/building-ecommerce-with-expression-engine.jpg
---

# Part 4: Notifications and Order management

## 4a) Notifications

{% embed https://player.vimeo.com/video/631310597?h=5f9feaea34&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479 %}

We have most of the puzzle pieces of a working store in place. Next we’ll quickly review Notification setup and Order Management within CartThrob. Navigate to the **Notifications** tab.

Starting at the top of the page with the **Log email?** setting; I typically don’t log email unless it’s a troubleshooting situation. When enabled, it writes debug info to a CartThrob database table.

We are going to setup two email notifications. The first notification is intended for the **customer,** while the second is intended for the **store owner**.

In the CartThrob settings, the first block is what we’ll use for the Customer notification. CartThrob likely created a few of these email configuration blocks by default.

![Customer notification](https://creativearc.com/images/uploads/blog/6a-customer-notification.jpg)

Everything is pretty self-explanatory here. The **To email** address is dynamically assigned from the order itself using the ExpressionEngine variable.

Next, the **Email template** needs to point to a standard ExpressionEngine template, in our case a fairly basic HTML table template geared for email delivery.

The **Event** setting is used to match a CartThrob event that must be triggered to send this email. In this case, a successful transaction.

We are ready to move on to the next email block for the store owner. The setup is nearly identical, only differing in subject line, recipient, and email template. The **Event** setting remains as “Successful Transaction,” which means two emails are sent by CartThrob for each successful order. Marked in yellow, below, are the subtle differences in the owner email compared to customer

![Owner notification](https://creativearc.com/images/uploads/blog/6b-owner-notification.jpg)

On the frontend, we’re ready to submit a test order to test the notifications. I’ll add a couple of items to my cart, even specifying an order note. Here is what the email notification looks like to the customer:

![Email preview](https://creativearc.com/images/uploads/blog/6c-email-preview.jpg)

## 4b) Order Management

{% embed https://player.vimeo.com/video/631310816?h=53df09c143&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479 %}


Where does CartThrob store all this?

### Order entries

If you remember when we used that installation function within the CartThrob **Installation** Tab, it created the Coupon Codes and the Orders Channels.

The Orders Channel looks like a standard ExpressionEngine channel with the title being the order number, and then the statuses that we have assigned to the channel.

![Order Entries List](https://creativearc.com/images/uploads/blog/7a-order-entries.jpg)

If I look through a sample Order entry, it’s pretty standard; just a lot of custom fields. In this case, the actual line items for the order appear on the order items CartThrob field.

![Order Entry](https://creativearc.com/images/uploads/blog/7b-individual-order.jpg)

The expected order and customer data is found in the entry fields. Note the layout tabs that capture the billing, shipping payment. It’s all here in the ExpressionEngine Entry!

### Order Manager

The CartThrob order manager is a separate Add-On; you can add both to your ExpressionEngine control panel menu manager as you see fit.

![Order Entry](https://creativearc.com/images/uploads/blog/8a-order-manager.jpg)

Within Order Manager, you’ll have basic reports around order totals by month, product reports, etc.

![Order Reports](https://creativearc.com/images/uploads/blog/8b-order-reports.jpg)

Within Order Manager, the **Orders** menu appears above the Reports. I’m just going to look at a single order I just made. It **looks** like an ExpressionEngine channel entries interface but it is slightly different, supplementing with some CartThrob-specific functionality.

![Order List](https://creativearc.com/images/uploads/blog/8c-order-list.jpg)

Click on a test entry and you’ll see the contents of this order, with functions for deleting the order, re-sending the order notification, or issuing a tracking number.

![Order Entry](https://creativearc.com/images/uploads/blog/8d-order-entry.jpg)

This concludes our tutorial of the CartThrob setup and frontend review. On to our final installment to cover Templates!  
  
**Have questions or comments about this course?** Be sure to join the discussion and post in the [ExpressionEngine Forums](https://expressionengine.com/forums/topic/253239/building-an-e-commerce-website-with-expressionengine)!

 -- 

Originally published by [Paul Larson](https://u.expressionengine.com/author/paul-larson) at [u.expressionengine.com](https://u.expressionengine.com//article/building-an-e-commerce-website-with-expressionengine-part-4)