​Personnaliser Woocommerce

Comment aller plus loin dans le paramétrage de votre boutique en ligne ?

En personnalisant Woocommerce, vous pouvez vous heurter à certaines limitations. Voici comment quelques cas ont été résolus sur la boutique en ligne de la cave coopérative de Sommières.

Modifier la sidebar de la page Produit

Woocommerce va afficher sur les pages de votre boutique, la sidebar par défaut avec les articles récents, les archives, etc… En fin de compte, tout ce qui concerne la partie Blog mais pas vraiment la partie Boutique. Vous pouvez préférer afficher les différentes catégories de produit.

Pour ce faire, il va falloir créer une nouvelle zone widget, appelée “shop” par exemple, dans laquelle vous allez ajouter le widget “Catégorie de produits”.
Ensuite, vous allez modifier la page sidebar.php du plugin Woocommerce.

sidebar.php

/**
* Sidebar
* This template can be overridden by copying it to yourtheme/woocommerce/global/sidebar.php.
*/

if ( ! defined( ‘ABSPATH’ ) ) {
exit; // Exit if accessed directly
}

get_sidebar( ‘shop’ );

A noter que dans les commentaires de la page, il vous est conseillé de réécrire la page dans le répertoire de votre thème dans le répertoire woocommerce/global.

Vous pouvez à cette occasion créer un thème enfant pour recevoir ces modifications.

Contournement d’une contrainte dans la vente de bouteilles de vin avec Woocommerce

Le client ne veut pas vendre de bouteilles à l’unité mais simplement des cartons. Par contre, le prix affiché est celui de la bouteille et non celui du carton de 6 bouteilles.
Cependant, les bag-in-box ou les magnums sont toujours vendus à l’unité. Il faut donc créer des catégories de produits pour chaque conditionnement.
Nous allons cette fois, modifier la fonction utilisée par Woocommerce dans le fichier functions.php, idéalement situé dans le répertoire d’un thème Enfant.

functions.php

// Adjust the quantity input values
add_filter( ‘woocommerce_quantity_input_args’, ‘wine_woocommerce_quantity_input_args’, 10, 2 ); // Simple products

function wine_woocommerce_quantity_input_args( $args, $product ) {
$categ = $product->get_categories();
if ((strpos($categ,”Bag In Box”)=== false) && (strpos($categ,”Magnum”)=== false)) {
if ( is_singular( ‘product’ ) )
$args[‘input_value’] = 6; // Starting value (we only want to affect product pages, not cart)
$args[‘min_value’] = 6; // Minimum value
$args[‘step’] = 6; // Quantity steps
}
else {
if ( is_singular( ‘product’ ) )
$args[‘input_value’] = 1; // Starting value (we only want to affect product pages, not cart)
$args[‘min_value’] = 1; // Minimum value
$args[‘step’] = 1; // Quantity steps
}
return $args;
}

Il faut également modifier le pas de variation de la quantité : passer de 6 à 12, et non à 7, lorsque l’on clique sur la flèche pour incrémenter.

functions.php

add_filter( ‘woocommerce_available_variation’, ‘wine_woocommerce_available_variation’ ); // Variations

function wine_woocommerce_available_variation( $args ) {
$args[‘min_qty’] = 6; // Minimum value (variations)
return $args;
}

Réglage de Woocommerce pour proposer 2 conditionnements possibles

Passons maintenant à la vente de bouteilles de bière avec la Brasserie de Sommières.
Pour une bière donnée, on veut donner le choix entre l’achat d’un carton de 12 bouteilles de 33cl ou d’un carton de 6 bouteilles de 75cl.

Pour cela, pas de problème, ni code à modifier, ni plugin à installer, il suffit de paramétrer Woocommerce.

Il faut créer un attribut “Conditionnement”.
Pour chaque produit, choisir “Produit variable”, ajouter l’attribut “Conditionnement” avec 2 valeurs possibles : 33cl et 75cl. Puis, 2 variations liés à ces attributs avec des prix pour chacun.