Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Variations Sku not showing up Wordpress/woocommerce

I have set up a woocommerce store and I add some variations to some products. Each variation has its own sku number, but for some reason they are not showing up on the products overview panel. Is there any way were I can add them or somebody could show me the right direction to go. Also, if I try to search the variation, is not showing up the product were is located. Do I have to register the variation sku somewere? Is this comming by default with woocommerce or not?

Thanks!

enter image description here

This is how I have set up the variations:

enter image description here

like image 566
Mario Sanchez Maselli Avatar asked Oct 30 '22 17:10

Mario Sanchez Maselli


1 Answers

Ok given that nobody came with an aswer I had to dig a little bit myself :D So here is the solution that I found for the moment.

On file class-wc-admin-post-types.php which is located on woocommerce/includes/admin

You have to modify some code on line 277

case 'sku' :

    $type = (get_class($the_product));

    if( $type == 'WC_Product_Variable' ){

        $available_variations = $the_product->get_available_variations();

        echo '<strong> Variations: </strong>' . count($available_variations) . '<br><br>';

        for ($i = 0; $i <  count($available_variations); $i++ ) {

            echo ($available_variations[$i]['sku']) . '<br>';
        }
    }
    else {
        echo $the_product->get_sku() ? $the_product->get_sku() : '<span class="na">&ndash;</span>';
    }
break;

And now you can get something like this: When you have variations on your product you will show the amount of variations and all of the available sku's and if is not a variable product you will only show the sku.

Now I'm thinking that I will probably modify also the stock colum and show the amount of stock on each one of them.

Hope this helps someone else. And thanks for the ones who tried to help!

enter image description here

Ok... so I added the support for stock nothing much different than then previous code... So on the same document now on line 344, you can add this.

case 'is_in_stock' :

            $type = (get_class($the_product));

            if( $type == 'WC_Product_Variable' ){

                $available_variations = $the_product->get_available_variations();

                echo '<strong> Variations stock: </strong> <br><br>';

                for ($i = 0; $i <  count($available_variations); $i++ ) {


                    if ( $available_variations[$i]['is_in_stock'] == 0 ) {
                        echo '<mark class="outofstock">' . __( 'Out of stock', 'woocommerce' ) . '</mark>';
                    }else {

                        echo '<mark class="instock">' . __( 'In stock', 'woocommerce' ) . '</mark>';

                    }
                    if ($available_variations[$i]['variation_is_active']) {
                        echo ' &times; ' . $available_variations[$i]['max_qty'] . '<br>' ;
                    }
                }
            } else {

                if ( $the_product->is_in_stock() ) {
                    echo '<mark class="instock">' . __( 'In stock', 'woocommerce' ) . '</mark>';
                } else {
                    echo '<mark class="outofstock">' . __( 'Out of stock', 'woocommerce' ) . '</mark>';
                }

                if ( $the_product->managing_stock() ) {
                    echo ' &times; ' . $the_product->get_total_stock() ;

                }
            }
            break;   

An you get something like this:

enter image description here

For more information check out link below. Resume: this approach can have some performance problems... carefull on how many product variations do you have.

https://github.com/woothemes/woocommerce/issues/9396

like image 92
Mario Sanchez Maselli Avatar answered Nov 02 '22 10:11

Mario Sanchez Maselli