/**
     * Update quantity for a product
     * @param integer $product_id The product we want to update quantity for
     * @param decimal $qty The new quantity
     */
    public static function reduce_product_stock_qty($product_id, $qty, $variation_id = '')
    {
        global $wpdb;
        $product = self::get_product_data($product_id);
        /** Check if there is variation ***/
        if (!empty($variation_id) && $variation_id != $product_id) {
            $variation_post_type = get_post_type($variation_id);
            if ($variation_post_type == WPSHOP_NEWTYPE_IDENTIFIER_PRODUCT_VARIATION) {
                /** Check if variation def is combined **/
                $variations = get_post_meta($product_id, '_wpshop_variation_defining', true);
                if (!empty($variations) && !empty($variations['options']) && !empty($variations['options']['priority']) && in_array('combined', $variations['options']['priority'])) {
                    /** Get post meta of variation */
                    $variation_metadata = get_post_meta($variation_id, '_wpshop_product_metadata', true);
                    if (!empty($variation_metadata) && isset($variation_metadata['product_stock'])) {
                        $product = self::get_product_data($variation_id);
                        $product_id = $variation_id;
                    }
                }
            }
        }
        if (!empty($product)) {
            $newQty = $product['product_stock'] - $qty;
            $value_id = 0;
            if ($newQty >= 0) {
                $query = '
					SELECT wp_wpshop__attribute_value_decimal.value_id
					FROM wp_wpshop__attribute_value_decimal
					LEFT JOIN wp_wpshop__attribute ON wp_wpshop__attribute_value_decimal.attribute_id = wp_wpshop__attribute.id
					WHERE wp_wpshop__attribute_value_decimal.entity_id=' . $product_id . ' AND wp_wpshop__attribute.code="product_stock"
					LIMIT 1
				';
                $value_id = $wpdb->get_var($query);
                $update = $wpdb->update('wp_wpshop__attribute_value_decimal', array('value' => wpshop_tools::wpshop_clean($newQty)), array('value_id' => $value_id));
            }
            // Historic
            $attribute_histo_content = array();
            $attribute_histo_content['status'] = 'valid';
            $attribute_histo_content['creation_date'] = current_time('mysql', 0);
            $attribute_histo_content['creation_date_value'] = !empty($attribute_histo[0]->creation_date_value) ? $attribute_histo[0]->creation_date_value : current_time('mysql', 0);
            $attribute_histo_content['original_value_id'] = $value_id;
            $attribute_histo_content['entity_type_id'] = wpshop_entities::get_entity_identifier_from_code(WPSHOP_NEWTYPE_IDENTIFIER_PRODUCT);
            $stock_atribute = wpshop_attributes::getElement('product_stock', "'valid'", 'code');
            $attribute_histo_content['attribute_id'] = $stock_atribute->id;
            $attribute_histo_content['entity_id'] = $product_id;
            $attribute_histo_content['value'] = $product['product_stock'];
            $attribute_histo_content['value_type'] = 'wp_wpshop__attribute_value_decimal';
            $wpdb->insert(WPSHOP_DBT_ATTRIBUTE_VALUES_HISTO, $attribute_histo_content);
            $product_meta = get_post_meta($product_id, '_wpshop_product_metadata', true);
            $product_meta['product_stock'] = $newQty;
            update_post_meta($product_id, '_wpshop_product_metadata', $product_meta);
        }
    }