Although all the products are published and live, they will still have a master version of the item, which means you will have items with OriginalContentId == Guid.Empty as many as you have actual items (live + draft).
Make sure that you check the for ContentLyfecycle.Live and for Visible == true in the query. Following is an example:
var products = dynamicModuleManager.GetDataItems(carType).Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live && i.Visible ==
You can find out more about the sitefinity content life cycle if you follow this
Do not hesitate to write us if any other issue arises.
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking
system and vote to affect the priority of the items