Hi,
1. I think you can already specify packaging type by product and transmit to FedEx accordingly.
To do that, you could create different warehouses in HikaShop, one per packaging type.
Then, in each product, you can select the corresponding warehouse.
Then, you can duplicate your FedEx shipping method, and in each one select a different warehouse, and adapt the packaging type.
That way, during the checkout HikaShop will group the products by warehouse, and for each warehouse group, it will load the corresponding shipping method(s).
2. I'm not clear on what you want.
Are you talking about the "serviceType" as per
i.imgur.com/NUZQnrO.png
on
developer.fedex.com/api/en-us/catalog/rate/v1/docs.html
?
There, it says "If no serviceType is indicated then all the applicable services and corresponding rates will be returned."
So there should be no need to specify a serviceType. That way, all possible service types will be returned.
However, supposing that reality is different from their documentation (which it shouldn't), maybe the solution would be to create two shipping method ? If you create one with the One Rate shipping service, and one without the service, both shipping methods should be able to provide rates with their specifics. Might that help ? I'm not clear.
Please understand that I've never lived or worked in the USA, and I have personally never shipped anything with FedEx, or anything close. So I'm not privy to FedEx's lingo and how their USA-specific offerings work so it's all a bit confusing to me.
3. As I said, the plugin will use the "address_company" custom field. How you use it is up to you. If you want to make it a checkbox or a dropdown instead of a input field, you can do so by editing it via the Display>Custom fields menu. You just need to make sure that the value is empty when the address is residential, and not empty if the address is not residential.
You can always create another custom address field to allow the customer to provide a name for the company and adapt the "address format" in the HikaShop configuration to use that new field value instead of address_company.