• Resolved goobackcom

    (@goobackcom)


    Hello, we need help to achieve the following:

    We want there to be a single shipping cost per order and that it is automatically divided among all the sellers who have participated in that order.

    That is, if the shipping cost is € 4 and there are two different sellers in the order, each seller must receive € 2 of the shipment.

    Thank you

    The page I need help with: [log in to see the link]

Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Author WC Lovers

    (@wclovers)

    What will be the rule/condition for division?

    Thread Starter goobackcom

    (@goobackcom)

    Equal parts between the number of sellers participating in the order.

    Thread Starter goobackcom

    (@goobackcom)

    Good morning, can we see if it’s possible?

    Plugin Author WC Lovers

    (@wclovers)

    Equal parts between the number of sellers participating in the order.

    – Possible.

    But what is one vendor has 1 product in order and another vendor has 5 products?
    Still we divide shipping cost by 2?

    Thread Starter goobackcom

    (@goobackcom)

    Yes, regardless of the number of products.
    We want it to be divided equally among the sellers participating in the order.

    Thread Starter goobackcom

    (@goobackcom)

    Hello, we need an answer please.

    Plugin Author WC Lovers

    (@wclovers)

    Hi,

    Please add this snippet to your site for the purpose-

    add_filter( 'wcfmmmp_commission_shipping_cost', function( $shipping_cost, $vendor_shipping, $order_id ) {
    	$order = wc_get_order( $order_id );
    	if( $order && is_a( $order , 'WC_Order' ) ) {
    		$total_shipping_cost = (float) $order->get_shipping_total();
    		
    		$processed_vendors = array();
    		if( function_exists( 'wcfm_get_vendor_store_by_post' ) ) {
    			$items = $order->get_items( 'line_item' );
    			if( !empty( $items ) ) {
    				foreach( $items as $order_item_id => $item ) {
    					$line_item  = new WC_Order_Item_Product( $item );
    					$product_id = $line_item->get_product_id();
    					$vendor_id  = wcfm_get_vendor_id_by_post( $product_id );
    					
    					if( !$vendor_id ) continue;
    					if( in_array( $vendor_id, $processed_vendors ) ) continue;
    					
    					$processed_vendors[$vendor_id] = $vendor_id;
    				}
    			}
    		}
    		
    		if( !empty( $processed_vendors ) ) {
    			$shipping_cost = $total_shipping_cost / count( $processed_vendors );
    		}
    	}
    	return $shipping_cost;
    }, 50, 3 );

    Add custom code(s) to your child theme’s functions.php
    In case you do not have child theme then add those using this plugin –?https://www.ads-software.com/plugins/code-snippets/

    Thank You

    Hola @wclovers, yo necesito una solución similar, es posible hacer esto como opción de envió, a parte de las que ya hay? Para poder ofrecer un servicio de envió de varios vendedores, en un solo pedido! Igualmente he probado este código corto con snippets y no me funciona.
    A ver si me pueden ayudar, muchas gracias.

    • This reply was modified 4 years, 4 months ago by danesmarc.
Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Divide the shipping cost among all the sellers of the order’ is closed to new replies.