Well, you could always track the items as they're added, removed, or changed in the trade, and then record them when the trade succeeds (or clear them if the trade is cancelled). There are
events that are triggered by each of these. You can get items' info using:
Lua Code:
GetTradeItemInfo(TradeParticipant who, luaindex tradeIndex)
Returns: string name, textureName icon, integer stack, integer quality
GetTradeItemLink(TradeParticipant who, luaindex tradeIndex, LinkStyle linkStyle)
Returns: string link
(either one, but you can get more info from a link)
That's how I'd probably approach it, anyway.