There is currently not a way to make the SKU field in the product settings required.
Currently, the only fields that are required in the admin dashboard are those that are required for functionality reasons.
You can allow duplicate SKU by adding this code to your active theme functions.php file.
add_filter( 'wc_product_sku_enabled', '__return_false' );
Use below code for updating status to draft if no SKU
// define the woocommerce_process_product_meta callback
function action_woocommerce_process_product_meta( $post_id, $post ) {
// make action magic happen here...
if ( empty( $_POST[ '_sku' ] ) ) {
wp_update_post( array(
'ID' => $post_id,
'post_status' => 'draft',
) );
}
}
// add the action
add_action( 'woocommerce_process_product_meta', 'action_woocommerce_process_product_meta', 10, 2 );