Hi,
It could come from the fact that the vendor is prefilled but not passed in the form.
I have to do more investigations about it but here a fix for the class order (same file than previous).
Replacing
$vendor = $vendorObj->vendor_id . ' - ' . $vendorObj->vendor_name;
By:
$vendor = $vendorObj->vendor_id . ' - ' . $vendorObj->vendor_name . '<input type="hidden" name="data[market][product][order_product_vendor_id]" value="'.$vendorObj->vendor_id.'"/>';
It will force the information of the order_product_vendor_id and create the new suborder for the right vendor.
With my latest tests, I specified manually the vendor id using a generic product, that's why I didn't see it.
For the custom field problem, I guess you have some "item custom fields" only accessible in the backend or linked to a specific category.
When you edit products in the backend, HikaShop can't know fro where category the product come from (sometime from any category) so all fields are displayed. But removing the "required" could be useful, I think.
I will see to pass this information to the rest of the HikaShop team.
Regards,