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.
From what I have see it processes what in datalayer.
From the above looks like you are using the page url to set the value in the datalayer.
In implementations I have seen there would be an attribute you allow a user to set to overwrite the url reference (so if product id analytics attribute empty use url - if populated then use populated value).
This will allow you to keep historical data if url changes do occur.
A second consideration would be making use of segment builder in Workspace to build a segment that looks like:
PageID = LAPTOP002001
PagID = LAPTOP002001-DELL-XPS-13
This segment can then be used for reporting as it will return the de-duplicated values for metrics in Workspace.
For historical data, the processing rules won't do much. You may take advantage of an upcoming feature in Data Repair APIs which will allow updating values in variables. It will be released later this year.
For ongoing data, processing rules cannot split values. Current functionality only allows concatenation. However, you may set static values for specific URLs. Not sure if that will help you much. You can also get a VISTA rule created for this.