To answer my own, aggregates does work with grouping. You just need to show the status bar to see it.
groupable: true,
groupsrenderer: groupsrenderer,
showstatusbar: true,
statusbarheight: 50,
showaggregates: true,
columns: [{
...
},{
text: 'Quantity',
datafield: 'quantity',
width: 70,
cellsalign: 'right',
aggregates: ['sum']
},{
...
}],
...