Hi Martin
To update the backend PO document type on the shopping cart, implement badi BBP_DOC_CHANGE_BADI method BBP_SC_CHANGE. Check field CATALOGID on item and update the field BE_DOC_TYPE on the item.
To split the shopping cart items based on catalog/non-catalog, implement badi BBP_BS_GROUP_BE method GROUP_PO_BACKEND. Here you can split catalog items into one pack and non-catalog items into another pack.
Configure two different number ranges in tcode BBNUTo propose different number range for different PO document type, use method GET_NUMBER_OR_RANGE of badi BBP_BS_GROUP_BE .
Both PO doc types have to be configured in BSA attribute on Org structure.
Refer this link
Determine PO number range based on Catalog vs Free text item type
Let me know it it helped
Regards
Vinita