October 2, 2014 at 2:47 am #27871
I bought 3 items in Ebay from 3 different sellers in the same order and paied with paypal once. But in my paypal i see them as 3 different payments to the sellers and not to ebay.
But for Dokan I think you are making the payment for the main order and not for the suborders.
That is why you had to impose the single seller mode in your Dokan PayPal Adaptive Payments plugin (http://wedevs.com/27510/dokan-paypal-adaptive-payments-v1-0-released/) which is not good and the marketplace will loose its value if you force the buyer to only buy from one seller at once.
Also that is why the myCred Escrow will not work with Dokan (http://wedevs.com/support/topic/dokan-payment-escrow/)
You should split the order and create suborders first then make the payments for each suborder and not pay before splitting. That is how it should work i think. Ebay is doing like that.
May be you should use the woocommerce filter “woocommerce_create_order” which is meant for that.
Eid Mubarek and happy vacation.October 2, 2014 at 7:39 am #27875
MahiMemberPost count: 135
Thank you for great suggestions Lahcen. We are desperately looking for a solution for this. Will forward it to dev team to dig more.
Cheers.October 3, 2014 at 4:42 pm #27952
See in this screenshot how ebay splits the cart view by seller: https://www.dropbox.com/s/bnozsh4bx1aiu3i/ebay-checkout.jpg?dl=0
You can do them for woocommerce cart by personalizing it to group items by seller.
If the buyer chooses to pay only one seller then you create only one order and pay it, and remove the paid items from the cart but let others from other sellers in the cart.
If the seller pays all items then you should use the filter woocommerce_create_order in the function create_order() of the class WC_Checkout (file includes/class-wc-checkout.php line 161)
You create one suborder per seller then create the main order and make it the parent order and return its id, that way, Woocommerce won't create any order. you can see how that function ( WC_Checkout.create_order() ) is coded to use the same logic.October 14, 2014 at 12:54 pm #28345
Sekander BadshaMemberPost count: 2067
We really appreciate your awesome suggestions. I will personally discuss with our developer team about these features.
Thank You 😀October 14, 2014 at 5:05 pm #28371
Tareq HasanKeymasterPost count: 2831
Thanks for the suggestions Lahcen, could you post a screenshot of the transaction lists from PayPal. And I guess you authorize the payments first in PayPal, then you finally purchase the products? That way PayPal can create as many transactions they want?October 14, 2014 at 10:01 pm #28395
Tareq, there is nothing special in the paypal transactions list, this is what i see for the items that were in the same order:
JUL 29 2014 eBay - Synergy Fulfillment Services Inc - $0.78 USD JUL 29 2014 eBay - shen zhen song hua dian zi ke ji - $7.26 USD JUL 29 2014 eBay - 高 汉华 - $17.20 USD
For the process, it is the same as woocommerce, i first added the items to the cart then view the cart and click on Checkout, it will take me to paypal where i see the logo of Ebay and a one total amount of all the orders i click pay and it is done.
You can see how is this explained in the PayPal API, and i think the one that you are after is called
Parallel Payment. See it here: https://developer.paypal.com/docs/classic/adaptive-payments/integration-guide/APIntro/
May be you should try this yourself try to by two items or three of 1$ each and see how it happen.
For woocommerce orders, I think there is another solution that you can do, try only creating separate orders and do not create any parent order (Ebay does not create parent order) because this parent order will make your plugin incompatible with any other plugin that do further treatment on the created order. Think of FreshBooks plugin for example, which will automatically create an invoice in the FreshBook account of the store owner, it will certainly not work with the Dokan plugin because it will only see the parent order.
The topic ‘Payments of Suborders’ is closed to new replies.