I offer Cash on Delivery as one of my payment methods. Courier services charge an extra 1euro for CoD shippings. I have accounted for this my adding a 1euro surcharge when CoD is selected as payment method.
The issue is that, if a customer orders from 2 different vendors, and chooses CoD as the payment method, the surcharge is calculated only once (so customer pays only 1 extra euro instead of 2) which is split proportionally between the 2 orders. How can I set the system so that the surcharge is charged once per shipping (just like the shipping costs)?
Thanks EZ but I don't think it will work and I explain. If I add COD as a different shipping method, I will have to apply the same payment method to it (i.e. only COD). If a customer orders only from vendors who offer COD all good.
If a customer orders products from a vendor who offers COD and a vendor who doe not offer COD, I guess there would be no available payment methods to this customer to proceed with the order. Am I right?
Well, give I don't ship physical products, I don't have the practical experience. However, it does seem that if you have a shipping method called COD, that you would have that shipping method available and the rate would by your COD service charge. And given it has a rate, it would be available as a method. Not sure what the payment method has to do with the shipping method. Do you have a dependency of shipping methods on payment methods? Maybe step back from the problem and look at it through a customer's eyes.
Actually, I have a dependency of payment methods on shipping methods. For example, door 2 door shipping service comes with CC, PP and COD as payment options. If COD becomes one of the available shipping methods, obviously it does not make sense to offer CC or PP as payment options (customer expects to pay on delivery).
D2D as shipping method --> CC, PP and COD as payment options
COD as shipping method = COD only as payment
and the question remains when customer buys from 2 different vendors:
Vendor 1 (not offering the COD option): Customer selects D2D
Vendor 2: Customer selects COD
What payment methods will be available for this order?
Generally there is one payment method per purchase. So I'm not sure how to solve your problem via standard methods.
A customization could be done by manually backing out payment (forcing $order_data['subtotal']) for products that are COD shipping methods. It would NOT be an elegant solution but it would be doable I think. It most likely would NOT work with paypal (without extra and specific effort) since they recalculate things based on the price of the items in the cart. And then taxes add to the complexity...