Hi,
The inheritance I mentioned is only a display-time fallback: when the variant's custom field is empty, HikaShop reads the main product's value on the fly to show it on the frontend. It never writes that value to the variant's own row, so if you read the database directly you'll still find the field empty on the variants.
Product custom fields are stored as columns of the hikashop_product table, and variants are rows of that same table (with product_parent_id pointing to the main product). So the column already exists on your variant rows, it's just not filled.
Two solutions:
1) A one-time (or scheduled) SQL query copying the value from the parent to the empty variants. Replace seller_percent with the real column name of your field (its "Column name" in the field configuration, not the label):
UPDATE `#__hikashop_product` AS v
JOIN `#__hikashop_product` AS p ON p.product_id = v.product_parent_id
SET v.seller_percent = p.seller_percent
WHERE v.product_type = 'variant'
AND (v.seller_percent IS NULL OR v.seller_percent = '');
2) Since your plugin already grabs the products from the database, the cleaner option is to do the fallback there: when a variant's field is empty, read the value from its product_parent_id row. This mirrors what HikaShop does and stays correct even when the main product's value changes later, whereas the SQL copy above is a snapshot that goes stale if you edit the main product afterwards.
I would recommend you go for option 2. That's the clean, long-term solution.