Invoice Email Empty of Data

For general questions and discussions specific to the AbleCommerce 7.0 Asp.Net product.
Post Reply
User avatar
katiebruno
Lieutenant, Jr. Grade (LT JG)
Lieutenant, Jr. Grade (LT JG)
Posts: 42
Joined: Fri Jan 30, 2004 10:57 am
Location: Wadsworth, Oh
Contact:

Invoice Email Empty of Data

Post by katiebruno » Fri Feb 11, 2011 9:34 am

My store is experiencing an intermittent problem where the order confirmation that is sent to the customer does not contain the data. For example the following is what the customer received after completing their order. It looks just like the template without the data populated correctly. Has anyone else seen this? Any ideas on why it happens or how to resolve?

[StoreName] appreciates your business!
To check the status of your order, click here. If you should have any questions please check the Frequently Asked Questions at our website and should have any questions that are not answered in our Frequently Asked Questions page it would be our pleasure to assist.
Thank you for shopping with us!
[StoreName]
[StoreName] Invoice
Order Number: [OrderNumber]
Date: [OrderDate]
Order Total: [OrderTotal]
Order Status: View Online

Bill To:
[BillFirstName] [BillLastName]
[BillingAddress]

[Shipments] Ship From:
[WarehouseName]
[WarehouseAddress] Ship To:
[ShipFirstName] [ShipLastName]
[ShippingAddress]
Residence: [ShipResidence]
[ShipMessage]

SKU Name Options Price Quantity Ext. Price[OrderItems]

[SKU] [Name]
[LineMessage] [OptionNames] [UnitPrice] [Quantity] [ExtPrice][/OrderItems] [/Shipments][NoShipment]
Non-Shipping Items
SKU Name Options Price Quantity Ext. Price[OrderItems]

[SKU] [Name]
[LineMessage] [OptionNames] [UnitPrice] [Quantity] [ExtPrice][/OrderItems] [/NoShipment]
Product Subtotal: [OrderProductTotal]
Tax Total: [OrderTaxTotal]
Shipping: [OrderShippingTotal]
Invoice Total: [OrderTotal]
Last edited by katiebruno on Wed Feb 16, 2011 10:33 am, edited 1 time in total.

User avatar
katiebruno
Lieutenant, Jr. Grade (LT JG)
Lieutenant, Jr. Grade (LT JG)
Posts: 42
Joined: Fri Jan 30, 2004 10:57 am
Location: Wadsworth, Oh
Contact:

Re: Invoice Email Empty of Data

Post by katiebruno » Wed Feb 16, 2011 10:31 am

Help? Anyone?

plugables
Captain (CAPT)
Captain (CAPT)
Posts: 276
Joined: Sat Aug 15, 2009 4:04 am
Contact:

Re: Invoice Email Empty of Data

Post by plugables » Fri Feb 25, 2011 4:43 am

Which version of AbleCommerce are you running?
The email template seems to be from version 5.x?

User avatar
katiebruno
Lieutenant, Jr. Grade (LT JG)
Lieutenant, Jr. Grade (LT JG)
Posts: 42
Joined: Fri Jan 30, 2004 10:57 am
Location: Wadsworth, Oh
Contact:

Re: Invoice Email Empty of Data

Post by katiebruno » Fri Feb 25, 2011 8:00 am

VERSION: 7.0.4.13424

plugables
Captain (CAPT)
Captain (CAPT)
Posts: 276
Joined: Sat Aug 15, 2009 4:04 am
Contact:

Re: Invoice Email Empty of Data

Post by plugables » Thu Mar 10, 2011 9:41 am

And you are using email template of version 5.5?

It will not work in 7.x. Email templates in version 7.x use different syntax. They make use of nVelocity. The default template for new order looks like this in 7.0.4

Code: Select all

<html>
<head>
<style type="text/css">
TABLE.Email {
width: 640px;
padding: 5px;
margin: 0px;
border: 1px solid #5872CB;
}
TABLE.Email TH {
font-weight: bold;
font-size: 12px;
color: #ffffff;
font-family: Arial, Verdana, Sans-Serif;
font-style: strong;
background-color: #304FBA;
text-align: center;
text-decoration: none;
padding: 5px;
}
TABLE.Email TD {
font-weight: normal;
font-size: 12px;
color: #000000;
font-family: Arial, Verdana, Sans-Serif;
background-color: #ffffff;
text-align: left;
text-decoration: none;
padding: 3px;
}
</style>
</head>
<body>
<table class="Email">
<tr>
<td colspan="2" class="Email">
<p><strong>Thank you for your order $order.BillToFirstName $order.BillToLastName !</strong></p>
<p>If you would like to check the status of your order, manage addresses, update your email, or customize many other options, please visit your personal
<a href="${store.StoreUrl}Members/MyAccount.aspx">My Account</a> page.</p>
<p>Thank you for shopping with us.<br>
$store.Name</p>
</td>
</tr>
</table>
<table class="Email">
<tr>
<th class="Email">Order Summary</th>
</tr>
</table>
<table class="Email">
<tr>
<td class="Email"><div align="right"><strong>Email Address:</strong></div></td>
<td class="Email">${order.BillToEmail}</td>
</tr>
<tr>
<td class="Email" width="140"><div align="right"><strong>Order Number:</strong> </div></td>
<td class="Email" width="500"><p>$order.OrderNumber</p></td>
</tr>
<tr>
<td class="Email"><div align="right"><strong>Ordered on:</strong></div></td>
<td class="Email">$order.OrderDate.ToString("G")</td>
</tr>
<tr>
<td class="Email"><div align="right"><strong>Ordered by:</strong></div></td>
<td class="Email">$order.BillToFirstName $order.BillToLastName</td>
</tr>
<tr>
<td><div align="right"><strong>Order Total:</strong></div></td>
<td>$order.Items.TotalPriceById().ToString("ulc")</td>
</tr>
<tr>
<td class="Email"><div align="right"><strong>Order Status:</strong></div></td>
<td class="Email"><a href="${store.StoreUrl}Members/MyOrder.aspx?OrderNumber=$order.OrderNumber&OrderId=$order.OrderId">View Online</a></td>
</tr>
</table>
<table class="Email">
<tr valign="top">
<td class="Email" width="50%"><strong>Billing Address:</strong>
<div style="padding-left:30px;">
$order.FormatAddress(true)
</div>
</td>
<td class="Email" width="50%">
<strong>Payment Method:</strong>
<div style="padding-left:30px;">
#foreach($payment in $payments)
$payment.PaymentMethodName<br />
$payment.ReferenceNumber<br />
#end
</div>
</td>
</tr>
</table>  
#set ($shipNo = 1)	
#foreach($shipment in $order.Shipments)
#beforeall
<table class="Email">
<tr>
<th class="Email">Shipment Information</th>
</tr>
</table>
#each
<table class="Email">
<tr>
<td colspan="4" class="Email" style="text-align: center;">							
<strong><u>Shipment $shipNo of $order.Shipments.Count</u></strong>
#set ($shipNo = $shipNo + 1)			
</td>
</tr>
<tr>
<td class="Email" colspan="4" style="text-align: center;">
<table width="100%">
<tr>
<td class="Email" valign="top">
<strong>Ship From:</strong>
<div style="padding-left:30px;">
$shipment.FormatFromAddress(true)
</div>
</td>
<td class="Email" valign="top">
<strong>Ship To:</strong>
<div style="padding-left:30px;">
$shipment.FormatToAddress(true)
#if ($shipment.ShipMessage.Length > 0)
<br/><strong>Message:</strong>$shipment.ShipMessage
#end					  
</div>
</td>
<td class="Email" valign="top">
<strong>Shipment Method:</strong>
<div style="padding-left:30px;">
$shipment.ShipMethodName</div>
<div style="padding-left:30px;"></div>
</td>
</tr>
</table>	
</td>
</tr>
#foreach($orderItem in $order.Items.FilterByShipmentAndSort($shipment.OrderShipmentId))
#beforeall  
<tr>
<td style="background:#cccccc; color:#00000; text-align: center;"><strong>SKU</strong></td>
<td style="background:#cccccc; color:#00000; text-align: center;"><strong>Description</strong></td>
<td style="background:#cccccc; color:#00000; text-align: center;"><strong>Quantity</strong></td>
<td style="background:#cccccc; color:#00000; text-align: center;"><strong>Price</strong></td>
</tr>
#each
#if ((($orderItem.OrderItemType == "Product") || ($orderItem.OrderItemType == "Discount") || ($orderItem.OrderItemType == "Coupon") || ($orderItem.OrderItemType == "GiftWrap")) && !$orderItem.IsHidden)
<tr class="Email">
<td class="Email" style="text-align: center;">
#if (($orderItem.OrderItemType == "Product"))
$orderItem.Sku
#elseif (($orderItem.OrderItemType == "Discount"))
DISCOUNT
#elseif (($orderItem.OrderItemType == "Coupon"))
COUPON
#elseif (($orderItem.OrderItemType == "GiftWrap"))
GIFTWRAP
#end
</td>
<td class="Email">
$orderItem.Name
#if ($orderItem.VariantName.Length > 0)
($orderItem.VariantName)
#end
#foreach($orderItemInput in $orderItem.Inputs)
#if (!$orderItemInput.IsMerchantField)
<br /><b>$orderItemInput.Name:</b> $orderItemInput.InputValue
#end
#end
#if ($orderItem.WrapStyle)
<br>
Gift Wrap: $orderItem.WrapStyle.Name
#end
#if ($orderItem.GiftMessage.Length > 0)
<br>
Gift Message: $orderItem.GiftMessage
#end
</td>
<td class="Email" style="text-align: center;">$orderItem.Quantity</td>
<td class="Email" style="text-align: right;">$orderItem.ExtendedPrice.ToString("ulc")</td>
</tr>
#end
#end
<tr class="Email"><td colspan="4">&nbsp;</td>
</tr>
</table>		
#end	
<!-- Output Non-Shipping Items -->
#foreach($orderItem in $order.Items.FilterByShipmentAndSort())
#beforeall
<table class="Email">
<tr>
<th class="Email">Non-Shipping Items</th>
</tr>
</table>		
<table class="Email">
<tr>
<td style="background:#cccccc; color:#00000; text-align: center;"><strong>SKU</strong></td>
<td style="background:#cccccc; color:#00000; text-align: center;"><strong>Name</strong></td>
<td style="background:#cccccc; color:#00000; text-align: center;"><strong>Price</strong></td>
<td style="background:#cccccc; color:#00000; text-align: center;"><strong>Quantity</strong></td>
<td style="background:#cccccc; color:#00000; text-align: center;"><strong>Total</strong></td>
</tr>
#each
#if ((($orderItem.OrderItemType == "Product") || ($orderItem.OrderItemType == "Coupon") || ($orderItem.OrderItemType == "Discount")) && !$orderItem.IsHidden)
<tr>
<td class="Email" style="text-align: center;">
#if (($orderItem.OrderItemType == "Product"))
$orderItem.Sku
#elseif (($orderItem.OrderItemType == "Discount"))
DISCOUNT
#elseif (($orderItem.OrderItemType == "Coupon"))
COUPON
#end
</td>
<td class="Email">
$orderItem.Name
#if ($orderItem.VariantName.Length > 0)
($orderItem.VariantName)
#end
#foreach($orderItemInput in $orderItem.Inputs)
#if (!$orderItemInput.IsMerchantField)
<br /><b>$orderItemInput.Name:</b> $orderItemInput.InputValue
#end
#end
</td>
<td class="Email" style="text-align: right;">$orderItem.Price.ToString("ulc")</td>
<td class="Email" style="text-align: center;">$orderItem.Quantity</td>
<td class="Email" style="text-align: right;">$orderItem.ExtendedPrice.ToString("ulc")</td>
</tr>
#end
#afterall
</table>		
#end 
#foreach ($gc in $order.GiftCertificates)
#beforeall
<table class="Email">
<tr>
<th class="Email" >Gift Certificates</th>
</tr>
</table>
<table class="Email">
<tr>
<td style="background:#cccccc; color:#00000; text-align: center;"  ><strong>Name</strong></td>
<td style="background:#cccccc; color:#00000; text-align: center;" ><strong>Status</strong></td>				
</tr>
#each
<tr class="Email">
<td class="Email" style="text-align: left;"  >
<a href="${store.StoreUrl}Members/MyGiftCertificate.aspx?GiftCertificateId=$gc.GiftCertificateId">$gc.Name</a>
</td>
<td class="Email" style="text-align: left;" >
#if($gc.Transactions.Count > 0)
#set ($lastIndex = $gc.Transactions.Count - 1)
#set ($transaction = $gc.Transactions.get_item(${lastIndex}))
$transaction.Description.ToString()
#end
</td>
</tr>
#afterall
</table>
#end
<table class="Email">
<tr>
<th class="Email">Order Totals</th>
</tr>
</table>
<table class="Email">
<tr>
<td width="40%" style="background:#cccccc; color:#00000; text-align: right;">
<strong>Subtotal:</strong>
</td>
<td width="15%" class="Email" style="text-align: right;">
$order.Items.TotalPriceById(0).ToString("ulc")
</td>
<td width="55%" rowspan="5"><p align="center"><strong>Thanks again for shopping with us!</strong></p>
<p align="center"><a href="${store.StoreUrl}"><strong>$store.Name</strong></a></p></td>
</tr>
<tr>
<td width="40%" style="background:#cccccc; color:#00000; text-align: right;">
<strong>Tax:</strong>
</td>
<td width="15%" class="Email" style="text-align: right;">
$order.Items.TotalPriceById(3).ToString("ulc")
</td>
</tr>
<tr>
<td width="40%" style="background:#cccccc; color:#00000; text-align: right;">
<strong>Shipping and Handling:</strong>
</td>
<td width="15%" class="Email" style="text-align: right;">
$order.Items.TotalPriceById(1, 2).ToString("ulc")
</td>
</tr>
<tr>
<td width="40%" style="background:#cccccc; color:#00000; text-align: right;">
<strong>Discounts:</strong>
</td>
<td width="15%" class="Email" style="text-align: right;">
$order.Items.TotalPriceById(4).ToString("ulc")
</td>
</tr>	
<tr>
<td width="40%" style="background:#cccccc; color:#00000; text-align: right;">
<strong>Coupons:</strong>
</td>
<td width="15%" class="Email" style="text-align: right;">
$order.Items.TotalPriceById(5).ToString("ulc")
</td>
</tr>
<tr>
<td width="30%" style="background:#cccccc; color:#00000; text-align: right;">
<strong>Total:</strong>
</td>
<td width="15%" class="Email" style="text-align: right;">
$order.Items.TotalPriceById().ToString("ulc")
</td>
</tr>
</table>
<p>&nbsp;</p>
</body>
</html>


User avatar
hassonmike
Lieutenant (LT)
Lieutenant (LT)
Posts: 76
Joined: Tue Apr 19, 2011 2:13 pm
Contact:

Re: Invoice Email Empty of Data

Post by hassonmike » Wed Jun 15, 2011 10:26 am

I am receiving this same thing when viewing the order summary online. The email has all the correct info, but the online summary is all blank fields.

This is the code that i have for MyOrderPage.ascx

Code: Select all

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MyOrderPage.ascx.cs" Inherits="ConLib_MyOrderPage" %>
<%--
<conlib>
<summary>Display page to show details of an order like order items, shipping address, billing address etc.</summary>
<param name="AllowAddNote" default="true">If true, the customer can add notes to the order.  If false, the customer can only see notes added by the merchant.</param>
<param name="HandleFailedPayments" default="false">If true, the customer is redirected to an order payment page if the payment fails at checkout.</param>
</conlib>
--%>
<%@ Register Src="~/ConLib/OrderTotalSummary.ascx" TagName="OrderTotalSummary" TagPrefix="uc" %>
<%@ Register Src="~/ConLib/BreadCrumbs.ascx" TagName="BreadCrumbs" TagPrefix="uc" %>
<%@ Register Src="~/ConLib/Utility/OrderItemDetail.ascx" TagName="OrderItemDetail" TagPrefix="uc" %>
<%@ Register Src="~/ConLib/Utility/PayPalPayNowButton.ascx" TagName="PayPalPayNowButton" TagPrefix="uc" %>
<asp:PlaceHolder ID="BalanceDuePanel" runat="server" Visible="false" EnableViewState="false">
    <br />
    <asp:Label ID="BalanceDueMessage" runat="server" Text="** Your order has a balance of {0:lc} due.&nbsp&nbsp;<a href='{1}'><u>Pay Now</u></a>" SkinID="ErrorCondition"></asp:Label>
    <br /><br />
</asp:PlaceHolder>
<asp:PlaceHolder ID="OrderInvalidPanel" runat="server" Visible="false" EnableViewState="false">
    <br />
	<asp:Label ID="OrderInvalidMessage" runat="server" Text="** Your order has been cancelled or invalidated." SkinID="ErrorCondition"></asp:Label>
    <br /><br />
</asp:PlaceHolder>
<asp:Panel ID="PageHeaderPanel" runat="server" CssClass="pageHeader">
    <h1><asp:Localize ID="Caption" runat="server" Text="View Order #{0}"></asp:Localize></h1>
</asp:Panel>
<asp:Panel ID="OrderSummaryPanel" runat="server" SkinID="OrderSummaryPanel">
    <table class="orderSummaryTable">
        <tr>
            <th class="rowHeader">
                <asp:Label ID="OrderDateLabel" runat="server" Text="Order Date: "></asp:Label>
            </th>
            <td>
                <asp:Label ID="OrderDate" runat="server" Text=""></asp:Label>
            </td>
            <th class="rowHeader">
                <asp:Label ID="TotalChargesLabel" runat="server" Text="Order Total: "></asp:Label>
            </th>
            <td>
                <asp:Label ID="TotalCharges" runat="server" Text=""></asp:Label>
            </td>
            <th class="rowHeader">
                <asp:Label ID="BalanceLabel" runat="server" Text="Balance: "></asp:Label>
            </th>
            <td>
                <asp:Label ID="Balance" runat="server" Text=""></asp:Label>
            </td>
        </tr>
        <tr>
            <th class="rowHeader">
                <asp:Label ID="OrderStatusLabel" runat="server" Text="Status: "></asp:Label>
            </th>
            <td>
                <asp:Label ID="OrderStatus" runat="server" Text=""></asp:Label>
            </td>
            <th class="rowHeader">
                <asp:Label ID="TotalPaymentsLabel" runat="server" Text="Payments: "></asp:Label>
            </th>
            <td>
                <asp:Label ID="TotalPayments" runat="server" Text=""></asp:Label>
            </td>
			<th class="rowHeader">
                <asp:Label ID="UnprocessedPaymentsLabel" runat="server" Text="Unprocessed Payments: "></asp:Label>
            </th>
            <td>
                <asp:Label ID="UnprocessedPayments" runat="server" Text=""></asp:Label>				
            </td>
        </tr >
		<tr>
			<td colspan="6" align="right">
                <asp:HyperLink ID="PrintOrder" runat="server" Text="Printable Version" NavigateUrl="~/Members/PrintMyOrder.aspx"></asp:HyperLink>
            </td>
		</tr>
    </table>
</asp:Panel>
<asp:Repeater ID="ShipmentRepeater" runat="server" >
    <ItemTemplate>
        <table align="center" class="form" cellpadding="0" cellspacing="0" border="1">
            <tr>
                <th colspan="3">
                    <asp:Localize ID="ShipmentCaption" runat="server" Text="SHIPMENT INFORMATION" Visible='<%# (this.Order.Shipments.Count == 1) %>'></asp:Localize>
                    <asp:Localize ID="ShipmentCaption2" runat="server" Text='<%# string.Format("SHIPMENT {0} OF {1}", ((OrderShipment)Container.DataItem).ShipmentNumber, this.Order.Shipments.Count) %>' Visible='<%# (this.Order.Shipments.Count > 1) %>'></asp:Localize>
                </th>
            </tr>
            <tr>
                <th class="verticalText">
                    S<br />
                    H<br />
                    I<br />
                    P<br /><br />
                    T<br />
                    O<br />
                </th>
                <td class="address">
                    <%# GetShipToAddress(Container.DataItem) %>
                </td>
                <td valign="top" class="expand">
                    <asp:Label ID="ShipStatusLabel" runat="server" Text="Status:" SkinID="FieldHeader"></asp:Label>
                    <asp:Label ID="ShipStatus" runat="server" Text='<%#GetShipStatus(Container.DataItem)%>'></asp:Label><br />
                    <asp:Label ID="ShippingMethodLabel" runat="server" Text="Shipping Method:" SkinID="FieldHeader"></asp:Label>
                    <asp:Label ID="ShippingMethod" runat="server" Text='<%#Eval("ShipMethodName") %>'></asp:Label>
                    <asp:Panel ID="TrackingNumberPanel" runat="Server" Visible='<%#HasTrackingNumbers(Container.DataItem)%>'>
                        <br />         
                        <asp:Label ID="TrackingNumbersLabel" runat="server" Text="Tracking :" SkinID="FieldHeader"></asp:Label>
                        <asp:Repeater ID="TrackingRepeater" runat="server" DataSource='<%#Eval("TrackingNumbers")%>'>
                            <ItemTemplate>
                                <asp:HyperLink ID="TrackingNumberData" Target="_blank" runat="server" Text='<%#Eval("TrackingNumberData")%>' NavigateUrl='<%#GetTrackingUrl(Container.DataItem)%>'></asp:HyperLink>
                            </ItemTemplate>
                            <SeparatorTemplate>, </SeparatorTemplate>
                        </asp:Repeater>                         
                    </asp:Panel>
                    <asp:Panel ID="ShipMessagePanel" runat="Server" Visible='<%# !string.IsNullOrEmpty((string)Eval("ShipMessage")) %>'>
                        <br /><br />
                        <asp:Label ID="ShipMessageLabel" runat="server" Text="Delivery Instructions:" SkinID="FieldHeader"></asp:Label>
                        <asp:Label ID="ShipMessage" runat="server" Text='<%#Eval("ShipMessage")%>'></asp:Label>
                    </asp:Panel>
                </td>
            </tr>
            <tr>
                <td colspan="3" class="dataSheet">
                    <asp:GridView ID="ShipmentItemsGrid" runat="server" Width="100%" AutoGenerateColumns="false" DataSource='<%# GetShipmentProducts(Container.DataItem) %>' GridLines="none" SkinID="ItemList">
                        <Columns>
                            <asp:TemplateField HeaderText="Qty">
                                <HeaderStyle Width="50" HorizontalAlign="Center" />
                                <ItemStyle HorizontalAlign="center" />
                                <ItemTemplate>
                                    <asp:Label ID="Quantity" runat="server" Text='<%#Eval("Quantity")%>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="SKU">
                                <HeaderStyle Width="80" HorizontalAlign="Center" />
                                <ItemStyle HorizontalAlign="center" />
                                <ItemTemplate>
                                    <asp:Label ID="SKU" runat="server" Text='<%#ProductHelper.GetSKU(Container.DataItem)%>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Item">
                                <ItemTemplate>
                                    <uc:OrderItemDetail ID="OrderItemDetail1" runat="server" OrderItem='<%#(OrderItem)Container.DataItem%>' ShowAssets="False" LinkProducts="False" />
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Price">
                                <HeaderStyle Width="80" HorizontalAlign="Center" />
                                <ItemStyle HorizontalAlign="right" />
                                <ItemTemplate>
                                    <asp:Label ID="Price" runat="server" Text='<%#Eval("ExtendedPrice", "{0:ulc}")%>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:Repeater>
<asp:Panel ID="NonShippingItemsPanel" runat="server">
    <table align="center" class="form" cellpadding="0" cellspacing="0" border="1">
        <tr>
            <th colspan="3">
                <asp:Localize ID="NonShippingItemsCaption" runat="server" Text="NON SHIPPING ITEMS"></asp:Localize>
            </th>
        </tr>
        <tr>
            <td colspan="3" class="dataSheet">
                <asp:GridView ID="NonShippingItemsGrid" runat="server" Width="100%" AutoGenerateColumns="false" GridLines="none" SkinID="PagedList">
                    <Columns>
                        <asp:TemplateField HeaderText="Qty">
                            <HeaderStyle Width="50" HorizontalAlign="Center" />
                            <ItemStyle HorizontalAlign="center" />
                            <ItemTemplate>
                                <asp:Label ID="Quantity" runat="server" Text='<%#Eval("Quantity")%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="SKU">
                            <HeaderStyle Width="80" HorizontalAlign="Center" />
                            <ItemStyle HorizontalAlign="center" />
                            <ItemTemplate>
                                <asp:Label ID="SKU" runat="server" Text='<%#ProductHelper.GetSKU(Container.DataItem)%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Item">
                            <ItemTemplate>
                                <uc:OrderItemDetail ID="OrderItemDetail1" runat="server" OrderItem='<%#(OrderItem)Container.DataItem%>' ShowAssets="False" LinkProducts="False" />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Price">
                            <HeaderStyle Width="80" HorizontalAlign="Center" />
                            <ItemStyle HorizontalAlign="right" />
                            <ItemTemplate>
                                <asp:Label ID="Price" runat="server" Text='<%#Eval("ExtendedPrice", "{0:ulc}")%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
            </td>
        </tr>
    </table>
</asp:Panel>
<asp:PlaceHolder ID="DigitalGoodsPanel" runat="server">
    <table align="center" class="form" cellpadding="0" cellspacing="0" border="1">
        <tr>
            <th colspan="3">
                <asp:Localize ID="DigitalGoodsCaption" runat="server" Text="DIGITAL GOODS"></asp:Localize>
            </th>
        </tr>
        <tr>
            <td colspan="3" class="dataSheet">
                <asp:GridView ID="DigitalGoodsGrid" runat="server" AutoGenerateColumns="false" 
                    GridLines="none" OnRowDataBound="DigitalGoodsGrid_RowDataBound" Width="100%"
                    SkinID="PagedList">
                    <Columns>
                        <asp:TemplateField HeaderText="Name">
                            <HeaderStyle HorizontalAlign="Left" />
                            <ItemStyle HorizontalAlign="Left" Width="200px" />
                            <ItemTemplate>
                                <%#Eval("Name")%>
                                <asp:PlaceHolder ID="phAssets" runat="server"></asp:PlaceHolder>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Download">
                            <ItemStyle HorizontalAlign="Center" Width="80px" />
                            <HeaderStyle HorizontalAlign="Center" />
                            <ItemTemplate>
                                <asp:PlaceHolder ID="phDownloadIcon" runat="server" Visible='<%# ((DownloadStatus)Eval("DownloadStatus")) == DownloadStatus.Valid %>'>
                                    <a href="<%#GetDownloadUrl(Container.DataItem)%>"><asp:Image ID="DI" runat="server" SkinID="DownloadIcon" AlternateText="Download" /></a>
                                </asp:PlaceHolder>
                                <asp:Literal ID="DownloadStatus" runat="server" Text='<%# Eval("DownloadStatus") %>' Visible='<%# ((DownloadStatus)Eval("DownloadStatus")) != DownloadStatus.Valid %>'></asp:Literal>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Remaining">
                            <HeaderStyle HorizontalAlign="Center" />
                            <ItemStyle HorizontalAlign="Center" Width="80px" />
                            <ItemTemplate>
                                <%#GetMaxDownloads(Container.DataItem)%>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="">
                            <HeaderStyle HorizontalAlign="Left" />
                            <ItemStyle HorizontalAlign="Left" />
                            <ItemTemplate>
                                <asp:Label ID="SerialKeyLabel" runat="server" Text="Serial Key: " SkinID="FieldHeader" Visible='<%#!string.IsNullOrEmpty(Eval("SerialKeyData").ToString())%>'></asp:Label>
                                <asp:Literal ID="SerialKey" runat="server" Visible='<%#ShowSerialKey(Container.DataItem)%>' Text='<%#Eval("SerialKeyData")%>' />
                                <asp:LinkButton runat="server" ID="SerialKeyLink" Text="view" OnClientClick="<%#GetPopUpScript(Container.DataItem)%>" Visible='<%#ShowSerialKeyLink(Container.DataItem)%>'></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
            </td>
        </tr>           
    </table>
</asp:PlaceHolder>
<asp:Panel ID="GiftCertificatesPanel" runat="server">
    <table align="center" class="form" cellpadding="0" cellspacing="0" border="1">
        <tr>
            <th colspan="3">
                <asp:Localize ID="Localize1" runat="server" Text="GIFT CERTIFICATES"></asp:Localize>
            </th>
        </tr>
         <tr>
            <td colspan="3" class="dataSheet">
                <asp:GridView ID="GiftCertificatesGrid" runat="server" Width="100%" AutoGenerateColumns="False" GridLines="none" SkinID="ItemList">
                    <Columns>
                        <asp:TemplateField HeaderText="Name" ItemStyle-HorizontalAlign="Left">
                            <ItemTemplate>
                                <asp:HyperLink ID="Name" runat="server" Text='<%#Eval("Name")%>' NavigateUrl='<%# Eval("GiftCertificateId", "~/Members/MyGiftCertificate.aspx?GiftCertificateId={0}")%>'></asp:HyperLink>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Status" ItemStyle-HorizontalAlign="Left">
                            <ItemTemplate>
                                <asp:Label ID="Status" runat="server" Text='<%#GetGCDescription(Container.DataItem)%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                          <asp:TemplateField HeaderText="Expiration Date" ItemStyle-HorizontalAlign="Left">
                            <ItemTemplate>
                                <asp:Label ID="ExpirationDate" runat="server" Text='<%#Eval("ExpirationDate", "{0:d}")%>' visible='<%# ((DateTime)Eval("ExpirationDate") != DateTime.MinValue) %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>                          
                    </Columns>
                </asp:GridView>
            </td>
        </tr>
    </table>
</asp:Panel>
<asp:Panel ID="PaymentPanel" runat="server">
<table align="center" class="form" cellpadding="0" cellspacing="0" border="1">
    <tr>
        <th colspan="2">
            <asp:Localize ID="PaymentMethodCaption" runat="server" Text="PAYMENT INFORMATION"></asp:Localize>
        </th>
    </tr>
    <tr>
        <td class="orderSummary" valign="top">
            <uc:OrderTotalSummary ID="OrderTotalSummary1" runat="server" />
        </td>
        <td valign="top" class="expand">
            <asp:Label ID="BillingAddressCaption" runat="server" Text="Billing Address:" SkinID="FieldHeader"></asp:Label><br />
            <asp:Literal ID="BillToAddress" runat="server"></asp:Literal><br /><br />
            <asp:Repeater ID="PaymentRepeater" runat="server">
                <ItemTemplate>
                    <asp:Label ID="PaymentMethodLabel" runat="server" Text="Payment Method: " SkinID="FieldHeader"></asp:Label>
                    <asp:Label ID="PaymentMethodName" runat="server" Text='<%#Eval("PaymentMethodName")%>'></asp:Label> 
                    <asp:Label ID="ReferenceNumber" runat="server" Text='<%#Eval("ReferenceNumber")%>'></asp:Label><br />
                    <asp:Label ID="PaymentStatusLabel" runat="server" Text="Status: " SkinID="FieldHeader"></asp:Label>
                    <asp:Label ID="PaymentStatus" runat="server" Text='<%#StoreDataHelper.GetFriendlyPaymentStatus((Payment)Container.DataItem)%>'></asp:Label>
                    <asp:Panel ID="ExtendedDetailsPanel" runat="server" Visible='<%#ShowExtendedPaymentDetails(Container.DataItem) %>'>
                        <asp:Label ID="PaymentDateLabel" runat="server" Text="Date: " SkinID="FieldHeader"></asp:Label>
                        <asp:Label ID="PaymentDate" runat="server" Text='<%#Eval("PaymentDate", "{0:g}")%>'></asp:Label><br />
                        <asp:Label ID="AmountLabel" runat="server" Text="Amount: " SkinID="FieldHeader"></asp:Label>
                        <asp:Label ID="Amount" runat="server" Text='<%#Eval("Amount", "{0:ulc}")%>'></asp:Label><br />
                    </asp:Panel>
                    <asp:Panel ID="MailPayMethodMessage" runat="server" Visible='<%# ShowMailPaymentMessage(Container.DataItem) %>'>
                        <asp:Label ID="MessageLabel" runat="server" Text="Make your check payable to:" SkinID="FieldHeader"></asp:Label><br />
                        <asp:Label ID="StoreNameLabel" runat="server" Text='<%# Token.Instance.Store.Name%>'></asp:Label><br />
                        <asp:Label ID="StoreAddress" runat="server" Text='<%# Token.Instance.Store.DefaultWarehouse.FormatAddress(true)%>'></asp:Label>
                    </asp:Panel>
                    <uc:PayPalPayNowButton ID="PayPalPayNowButton" runat="server" PaymentId='<%#Eval("PaymentId")%>'></uc:PayPalPayNowButton><br />
                </ItemTemplate>
            </asp:Repeater>
        </td>
    </tr>
</table>
</asp:Panel>    
<asp:Panel ID="OrderNotesPanel" runat="server">
    <ajax:UpdatePanel ID="OrderNotesAjax" runat="server">
        <ContentTemplate>
            <table align="center" class="form" cellpadding="0" cellspacing="0" border="1">
                <tr>
                    <th>
                        <asp:Label ID="OrderNotesCaption" runat="server" Text="ORDER NOTES"></asp:Label>
                    </th>
                </tr>
                <tr>
                    <td class="dataSheet">
                        <asp:GridView ID="OrderNotesGrid" runat="server" Width="100%" AutoGenerateColumns="false" 
                            GridLines="none" SkinID="ItemList" EnableViewState="false">
                            <Columns>
                                <asp:TemplateField HeaderText="Date" ItemStyle-Wrap="false">
                                    <ItemTemplate>
                                        <%# Eval("CreatedDate") %>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="From">
                                    <ItemTemplate>
                                        <%# GetNoteAuthor(Container.DataItem) %>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="Comment">
                                    <ItemTemplate>
                                        <%# Eval("Comment") %>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>
                    </td>
                </tr>
                <tr id="trAddNote" runat="server">
                    <td>
                        <table class="inputForm">
                            <tr>
                                <th class="rowHeader" valign="top">
                                    Add Note:
                                </th>
                                <td>
                                    <asp:TextBox ID="NewOrderNote" runat="server" TextMode="multiline" Width="400px" Height="80px"></asp:TextBox>
                                </td>
                            </tr>
                            <tr>
                                <td>&nbsp;</td>
                                <td><asp:LinkButton ID="NewOrderNoteButton" runat="server" Text="Submit my Note" SkinID="Button" OnClick="NewOrderNoteButton_Click"></asp:LinkButton></td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </table>
        </ContentTemplate>
    </ajax:UpdatePanel>
</asp:Panel>
<asp:Panel ID="SubscriptionsPanel" runat="server">
    <table align="center" class="form" cellpadding="0" cellspacing="0" border="1">
        <tr>
            <th>
                <asp:Localize ID="SubscriptionsCaption" runat="server" Text="SUBSCRIPTIONS"></asp:Localize>
            </th>
        </tr>
        <tr>
            <td class="dataSheet">
                <asp:GridView ID="SubscriptionGrid" runat="server" AutoGenerateColumns="False" DataKeyNames="SubscriptionId" DataSourceID="SubscriptionDs" 
                    SkinID="ItemList" AllowSorting="False" AllowPaging="false" CellSpacing="4" BorderWidth="0" EnableViewState="false">
                    <Columns>
                        <asp:TemplateField HeaderText="Subscription Plan">
                            <HeaderStyle HorizontalAlign="Left" />
                            <ItemStyle HorizontalAlign="Left" />
                            <ItemTemplate>
                                <asp:Label ID="SubscriptionPlan" runat="server" text='<%#Eval("SubscriptionPlan.Name")%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Ship To">
                            <HeaderStyle HorizontalAlign="Left" />
                            <ItemStyle HorizontalAlign="Left" />
                            <ItemTemplate>
                                <asp:Label ID="ShipTo" runat="server" text='<%#Eval("OrderItem.OrderShipment.ShipToFullName")%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Active">
                            <ItemStyle HorizontalAlign="Center" />
                            <ItemTemplate>
                                <asp:CheckBox ID="Active" runat="server" Checked='<%#Eval("IsActive")%>' Enabled="False" />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Expiration">
                            <ItemStyle HorizontalAlign="Center" />
                            <ItemTemplate>
                                <asp:Label ID="Expiration" runat="server" text='<%#Eval("ExpirationDate", "{0:d}")%>' visible='<%# ((DateTime)Eval("ExpirationDate") != DateTime.MinValue) %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                    <EmptyDataTemplate>
                        <asp:Label ID="EmptyMessage" runat="server" Text="There are no subscriptions associated with this order."></asp:Label> 
                    </EmptyDataTemplate>
                </asp:GridView>
                <asp:ObjectDataSource ID="SubscriptionDs" runat="server" OldValuesParameterFormatString="original_{0}"
                    SelectMethod="LoadForOrder" TypeName="CommerceBuilder.Orders.SubscriptionDataSource" DataObjectTypeName="CommerceBuilder.Orders.Subscription">
                    <SelectParameters>
                        <asp:QueryStringParameter Name="OrderId" QueryStringField="OrderId" />
                    </SelectParameters>
                </asp:ObjectDataSource>
            </td>
        </tr>
    </table>
</asp:Panel>

Post Reply