The mixin isn't doing any magic here. If you look at the GetCurrentItemLevel call from the mixin:
Lua Code:
function ItemMixin:GetCurrentItemLevel() -- requires item data to be loaded
if self.itemLink then
return (GetDetailedItemLevelInfo(self.itemLink));
end
if not self:IsItemEmpty() then
return C_Item.GetCurrentItemLevel(self:GetItemLocation());
end
return nil;
end
You can see it's just calling GetDetailedItemLevelInfo with an item link. So item links *do* work, you just need the right one. The link encodes a bunch of info in addition to the item id and I would guess that it needs that. Looking at the definition of an itemstring, (
http://wowwiki.wikia.com/wiki/ItemString) "linkLevel" might be the important bit.