2 решения:
1. Плохое: есть общая корзина, которая содержит несколько подкорзин - каждая такая подкорзина принадлежит отдельным вендорам. Грубо говоря, ты делаешь группировку по коду вендора в общей корзине: select * from basket group by vendor_code
2. Хорошее: клиент такого разделения не видит и оплачивает сразу все, а разделение будет уже на стороне бэка. Это более удобно для клиента, чем делать несколько различных покупок.