Ну должна быть следующая логика:
завести переменные
prevName, prevUserName, prevPhone
prodetcs = ""
в вашем цикле for
- получить name, user_name, phone
- если хоть один их них отличается от значений в предыдущей строке (prevName, prevUserName, prevPhone), то
-- выводите prodetcs если он не пустой (ну и всю информацию prevName, prevUserName, prevPhone)
-- prevName = name, prevUserName = userName, prevPhone=phone, prodetcs=""
- если полностью совпадают, то prodetcs = prodetcs + {prodect} - {quantity}шт
После цикла так же вывести строку если prodetcs не пустой