One thing I have done in the past that seems to work is to create a custom macro function which uses the orderid as a querystring parameter. Then I fetch the associated order and from that, you can build your own invoice, or fetch the kentico generated invoice. I then call the macro inside of a static html webpart.
The call itself looks like this:
{% BPMacros.BPReturnInvoice(QueryString.orderid) |(identity)GlobalAdministrator%}
The code that just returns the kentico invoice(another option would be for you to create your own knock off invoice if you need the images and other items):
/// <summary>
/// Returns string with Invoice
/// </summary>
/// <param name="context"></param>
/// <param name="parameters"></param>
/// <returns></returns>
[MacroMethod(typeof(string), "Returns invoice as string", 1)]
[MacroMethodParam(0, "param1", typeof(int), "OrderID")]
public static object BPReturnInvoice(EvaluationContext context, params object[] parameters)
{
int OrderID = ValidationHelper.GetInteger(parameters[0], 0);
OrderInfo oi = OrderInfoProvider.GetOrderInfo(OrderID);
if (oi != null)
{
return oi.OrderInvoice;
}
else
{
return string.Empty;
}
}