In the context of email templates for E-commerce purposes, you can access various entities corresponding to given Order or Shopping cart, Customer, Payment option, Billing and Shipping address, etc. You should be able to see the available entities when entering the macro with the "intellisense", i.e. start typing {% or use the Insert macro dialog.
There is also a special entity for e-products: EproductsTable, as you can have more than one e-product per order.
As for E-product links, we have an example in the global email template (you need to switch to "(global)" scope in the selector)
E-commerce - Order payment notification to customer
with the following expression:
{% if (EproductsTable != null && EproductsTable.Any()) { %}
<p>Your <b>e-products download links were activated</b>, please download the files before their expiration. Once the files expire, you won't be able to download them.</p>
{% EproductsTable.ApplyTransformation("Ecommerce.Transformations.Order_EproductsTable") %}
{% } #%}
You can see there is another level where the actual e-product link is created, and that's the transformation. You can find it within a special page type serving as a container for transformations. In Page types app, for type "E-commerce - transformations" in the "Order_EproductsTable" transformation, with the default markup as:
<br />
- {%GetResourceString(OrderItemSKUName)%} (<a href="{%GetEproductUrl(Token, FileName, OrderSiteID)%}" target="_blank" >{%FileName%}</a>) {% String.IsNullOrEmpty(OrderItemValidTo) ? "never expires" : "expires after " + Format(OrderItemValidTo, "{0:G}") #%}
You can see there as now the columns (fields) from the EproductsTable are available for the GetEproductUrl and other methods:
OrderItemSKUName, Token, Filename, OrderSiteID and OrderItemValidTo
Hope this information helps!
Best regards,
Zdenek