This modification will add a new column to your AC7 Order Summary page. The contents of the column will be a clickable number showing the total order history count for the customer that placed the order. This gives you the ability to quickly and easily see which customers are repeat customers without having to switch to the reports page.
The total count is all-inclusive and does not restrict by a particular date range. It is also a link. When clicked, it will take you to the Edit User page so the detailed history for that customer can be viewed.
Modifications
The page file we'll be changing is located in ~/Admin/Orders/. You'll need to change both the default.aspx and default.aspx.cs files, so back them both up before going any further.
Edit the ~/Admin/Orders/default.aspx file first. Look for this section of code:
Code: Select all
<asp:TemplateField HeaderText="Customer" SortExpression="BillToLastName">
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="CustomerName" runat="server" Text='<%# string.Format("{1}, {0}", Eval("BillToFirstName"), Eval("BillToLastName")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Code: Select all
<asp:TemplateField HeaderText="Customer" SortExpression="BillToLastName">
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="CustomerName" runat="server" Text='<%# string.Format("{1}, {0}", Eval("BillToFirstName"), Eval("BillToLastName")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="History" SortExpression="">
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:HyperLink ID="OrderCount" runat="server" Text='<%# string.Format("{0}",OrderCount(Container.DataItem)) %>' SkinID="Link" NavigateUrl='<%# Eval("UserId", "~/Admin/People/Users/Edituser.aspx?UserId={0}") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
Code: Select all
protected string GetPaymentStatus(object dataItem)
{
Order order = (Order)dataItem;
if (order.PaymentStatus == OrderPaymentStatus.Paid) return "Paid";
if (order.Payments.Count > 0)
{
order.Payments.Sort("PaymentDate");
Payment lastPayment = order.Payments[order.Payments.Count - 1];
return StringHelper.SpaceName(lastPayment.PaymentStatus.ToString());
}
return order.PaymentStatus.ToString();
}
Code: Select all
protected string GetPaymentStatus(object dataItem)
{
Order order = (Order)dataItem;
if (order.PaymentStatus == OrderPaymentStatus.Paid) return "Paid";
if (order.Payments.Count > 0)
{
order.Payments.Sort("PaymentDate");
Payment lastPayment = order.Payments[order.Payments.Count - 1];
return StringHelper.SpaceName(lastPayment.PaymentStatus.ToString());
}
return order.PaymentStatus.ToString();
}
protected string OrderCount(object dataItem)
{
Order order = (Order)dataItem;
return order.User.Orders.Count.ToString();
}
Conclusion
Knowing more about your customers is what makes a good business owner great. Give yourself another edge over your competition by quickly and easily knowing your repeat customers before their order has even been filled.