Return entries where custom field partially contains
You could use the Preparse plugin to save the product ID part of your field in a new hidden field.

Add a new "productId" Preparse field to your entry type with this code in the field's settings:

{{ entry.customField|split('-')|first }}


To update all existing entries, re-save them by going into Settings → Sections → Section Name and click Save.
You can now set up a criteria model exactly like you mentioned in your question, except that you now use the
Preparse field as your custom field parameter:

{% set entries = craft.entries.section('sectionName').productId(pluginIds) %}