solved ... just in case anyone else has need, here is my code
Code:
foreach (CartItem ci in ord.CartItems)
{
// local variables
int categoryId = AppLogic.GetFirstProductEntityID(AppLogic.LookupHelper("Category"), ci.m_ProductID, false);
string categoryName = AppLogic.LookupHelper(base.EntityHelpers, "Category").GetEntityName(categoryId, ThisCustomer.LocaleSetting);
categoryName = categoryName.Replace("'", "");
string productName = ci.m_ProductName.Replace("'", "");
// build strings
categoryIds = categoryIds == string.Empty ? categoryId.ToString() : string.Concat(categoryIds, ", ", categoryId.ToString());
categoryNames = categoryNames == string.Empty ? categoryName : string.Concat(categoryNames, ", ", categoryName);
productIds = productIds == string.Empty ? ci.m_ProductID.ToString() : string.Concat(productIds, ", ", ci.m_ProductID.ToString());
productNames = productNames == string.Empty ? productName : string.Concat(productNames, ", ", productName);
}
this is used in the ordercheckout.aspx.cs to generate comma-separated list of categories and products (eg. to implement order tracking via third party)
this code needs to be optimized so it strips out illegal characters that could throw javascript errors, etc., but hopefully this will be of use to someone.
cheers,
-e