"Причина заключается в пробелах после тэгов в HTML-коде. Блочно-строчные ведут себя как текст, поэтому если в коде есть пробел между элементами, то он отображается и на странице. Этот пробел увеличивает отступы между товарами, не давая им поместиться в одну строку.
А вот и сам код
Тут же нет никаких пробелов, о чем речь? или идут по умолчанию после тегов?