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!
This is how I have set up the variations:
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">–</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!
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 ' × ' . $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 ' × ' . $the_product->get_total_stock() ;
}
}
break;
An you get something like this:
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With