If I'm reading your question right, it sounds like you are pulling the product information from the URL (or, your data layer pulls it from the URL and that's what gets passed to Adobe). There are a couple of ways to resolve this without getting your dev team immediately involved, but the "right" approach depends on whether or not you have a tag manager (ie// Launch) in place and have the ability to make changes there.
Option 1, assuming you have access to Launch
Modify the value being passed to eVar7. This could be as simple as creating a data element where you split the value on the dashes and return the first portion. Then use that data element to populate eVar7.
For example, assume your data layer property is named "productName" and is assigned the value "laptop002001-dell-xps-13". In that scenario, the following logic would return "laptop002001", which is what I think you're looking for: productName.split("-");
If you don't have access to Launch, and you need to account for both existing data and new data, I'd suggest setting up a classification report based on eVar7. Here you can either create classification rules that use regex to do a similar parsing as above, which would account for any/all new values that come in (and can account for up to 6 months of existing data). Or, you could build a lookup table and upload as a tab-delimited file using the standard classification upload.