Hi Thanet,
another request confirmed my confusion and my assumption that CategoryL5 behaves as a segment in this case.
When I do the same request without requestion the CategoryLX fields, I get just one result with the OfferId.
SELECT OfferId, AdGroupId, AdGroupStatus, AdGroupName, CampaignName, Brand, ProductCondition, ProductTypeL1, ProductTypeL2, ProductTypeL3, ProductTypeL4, ProductTypeL5, CustomAttribute0, CustomAttribute1, CustomAttribute2, CustomAttribute3, CustomAttribute4, Channel, ChannelExclusivity, SearchClickShare, SearchImpressionShare, Ctr, Clicks, Impressions, Cost, ConversionValue, ConversionRate, Conversions, AverageCpc FROM SHOPPING_PERFORMANCE_REPORT WHERE CampaignStatus IN [ENABLED] AND AdGroupStatus IN [ENABLED] AND ConversionValue > 0 AND Cost > 0 AND OfferId = 12044542
-> 1 Result with OfferId 12044542
SELECT OfferId, AdGroupId, AdGroupStatus, AdGroupName, CampaignName, Brand, ProductCondition, ProductTypeL1, ProductTypeL2, ProductTypeL3, ProductTypeL4, ProductTypeL5, CustomAttribute0, CustomAttribute1, CustomAttribute2, CustomAttribute3, CustomAttribute4, CategoryL1, CategoryL2, CategoryL3, CategoryL4, CategoryL5, Channel, ChannelExclusivity, SearchClickShare, SearchImpressionShare, Ctr, Clicks, Impressions, Cost, ConversionValue, ConversionRate, Conversions, AverageCpc FROM SHOPPING_PERFORMANCE_REPORT WHERE CampaignStatus IN [ENABLED] AND AdGroupStatus IN [ENABLED] AND ConversionValue > 0 AND Cost > 0 AND OfferId = 12044542
-> 2 Results with OfferId 12044542 TWICE -> differing only on CategoryL5
Cheers
Marc