Sure...simple enough. Note that this method requires no source or database modifications, however the receipt will always display the current product description (eg. if you change the description of a product that someone ordered, and that someone comes back in 2 months and re-views the receipt on your site they will see the changed description and not the original...saving the original will require modifications to the dbo.Orders_ShoppingCart table as well as source code and stored procedure mods to store the original description with the item).
Open the XmlPackages/notification.receipt.xml.config xmlpackage and find the OrderItems query at the top
Code:
<query name="OrderItems" rowElementName="Item">
Near the bottom you'll need to pull the description in the select statement and then join on the product table
Code:
s.TaxRate,
ISNULL(s.IsAKit, 0) AS IsAKit,
ISNULL(s.IsAPack, 0) AS IsAPack,
ISNULL(s.IsSystem, 0) AS IsSystem,
p.Description
FROM dbo.Orders_ShoppingCart s WITH (NOLOCK)
left join dbo.Product p WITH (NOLOCK) on s.ProductID = p.ProductID
WHERE s.ordernumber = @ordernum
ORDER by s.ShippingAddressID
Then further down, you'll need to find the Item template
Code:
<xsl:template match="Item" >
A few lines down from that you'll see where the name is rendered...I would put the description right under there
Code:
<!-- Product Name Column -->
<td id="colProductName" width="40%">
<span id="lblProductName">
<xsl:value-of select="aspdnsf:GetMLValue(OrderedProductName)" />
<xsl:if test="OrderedProductVariantName != ''">
<xsl:text>-</xsl:text>
<xsl:value-of select="aspdnsf:GetMLValue(OrderedProductVariantName)" />
</xsl:if>
</span>
<br/>
<span id="lblProductDescription">
<xsl:value-of select="aspdnsf:GetMLValue(Description)"/>
</span>
and that's all there is to it