Maison  >  Questions et réponses  >  le corps du texte

Comment « connecter » plusieurs produits en utilisant leurs SKU ?

Je souhaite fusionner l'inventaire de deux produits ou plus basés sur WooCommerce SKU.

Exemple : (Deux produits partageant le même inventaire)

(Trois produits ou plus partageant le même inventaire)

La plupart de nos coques de téléphone sont en transparent, je voulais donc que ces produits partagent le même inventaire.

P粉466909449P粉466909449220 Il y a quelques jours3567

répondre à tous(1)je répondrai

  • P粉744691205

    P粉7446912052024-04-06 00:25:13

    J'ai trouvé quelque chose sur Internet, le contenu est le suivant :

    // Get the order object
        $order = wc_get_order($order_id);
    
        // Loop through order items
        foreach ($order->get_items() as $item_id => $item) {
            $product = $item->get_product();
            $product_sku = $product->get_sku();
    
            // Define your SKU mappings
            $sku_mapping = array(
                'sku1' => array('sku2'),
                'sku3' => array('sku4', 'sku5'),
                'sku6' => array('sku7', 'sku8', 'sku9'),
            );
    
            // Check if the product SKU exists in the mapping
            if (isset($sku_mapping[$product_sku])) {
                $linked_skus = $sku_mapping[$product_sku];
    
                // Update the stock quantities for linked products
                foreach ($linked_skus as $linked_sku) {
                    $linked_product = wc_get_product_id_by_sku($linked_sku);
                    if ($linked_product) {
                        $linked_stock_quantity = get_post_meta($linked_product, '_stock', true);
                        $updated_stock_quantity = $linked_stock_quantity - $item->get_quantity();
                        update_post_meta($linked_product, '_stock', $updated_stock_quantity);
                    }
                }
            }
        }
    }
    
    add_action('woocommerce_new_order', 'custom_sync_stock_on_order');
    add_action('woocommerce_order_status_processing', 'custom_sync_stock_on_order');

    Le seul problème est que lorsque le produit du sku1 est commandé, il met à jour la quantité en stock du sku1 et du sku2, mais pas si le sku2 est commandé. De plus, lorsque j'utilise le bouton de mise à jour (ce que j'ai fait depuis ici), il ne met pas à jour les deux, mais uniquement le produit que je mets à jour.

    répondre
    0
  • Annulerrépondre