Applicable depuis le 7 octobre 2023, la loi Darcos n’est pas nativement gérée par WooCommerce.

Loi Darcos ?

La loi Darcos, promulguée le 30 décembre 2021, a été mise en application à partir du 7 octobre 2023. Elle a pour objectif de soutenir l’économie du livre et d’instaurer une équité entre les différents acteurs du marché du livre, notamment face aux grandes plateformes en ligne comme Amazon. Voici les principales dispositions de cette loi concernant les frais de port des livres :

Tarif minimal des frais de port :

  • Un tarif minimal de 3 euros est fixé pour les frais de port des commandes de livres neufs en ligne, lorsque le montant total de la commande de livres neufs est inférieur à 35 euros.
  • Si le montant total de la commande dépasse 35 euros, les frais de port peuvent être réduits à un seuil minimal de 1 centime d’euro.

Cette mesure vise notamment à contrer la politique de frais de port très bas pratiquée par certaines grandes plateformes en ligne, et à rééquilibrer ainsi la concurrence en faveur des librairies physiques et en ligne plus petites.

Loi Darcos et WooCommerce ?

Nativement WooCommerce gère des zones d’expédition, des classes d’expédition et des méthodes d’expédition. Il n’est donc pas possible de conditionner le montant des frais d’expédition des livres d’une boutique en ligne en fonction de son montant.
Plutôt que d’ajouter une Nième extension à même de répondre à ce besoin, solution acceptable si vous avez l’utilité de cette extension pour d’autres spécificités que la loi Darcos, je préfère utiliser quelques lignes de code.

# Passer les frais de port des livres à 1 cent si commande de livre supérieure ou égale à 35 € (Classe de livraison livre)
add_filter('woocommerce_package_rates', 'adjust_shipping_for_livre_class', 10, 2);
function adjust_shipping_for_livre_class($rates, $package) {
// Total de produits de classe "Livre"
$total_livre = 0;
// Parcourir les produits dans le panier
foreach ($package['contents'] as $item_id => $values) {
$product = $values['data'];
// Vérifier si le produit a la classe de livraison "Livre"
if ($product->get_shipping_class() === 'livre') {
$total_livre = ($product->get_price() * $values['quantity']);
}
}
// Si le total pour les produits "Livre" est supérieur ou égal à 35 €, ajuster les frais de port
if ($total_livre >= 35) {
foreach ($rates as $rate_key => $rate_values) {
// Construire l'ID de la méthode d'expédition
$shipping_method_id = $rate_values->get_method_id() . ':' . $rate_values->get_instance_id();
// Si c'est l'ID de votre méthode d'expédition pour la classe "Livre", mettez à jour les frais
// Remplacez 'flat_rate:6' par l'ID correct de votre taux d'expédition pour "Livre"
if ($shipping_method_id === 'flat_rate:6') {
// Définir les frais de port à 0,01€
$rates[$rate_key]->cost = 0.01;
}
}
}
return $rates;
}
Loi Darcos sur WooCommerce

Méthodologie

La première étape consiste à créer la classe d’expédition « Livre » depuis WooCommerce > Réglages > Expédition > Classes d’expédition.

Il faut ensuite associer cette classe d’expédition à tous les livres de votre boutique. Dans la liste des produits, vous pouvez filtrer sur la catégorie correspondante puis utiliser les actions groupées pour modifier la classe d’expédition des livres.

Il reste à valoriser les frais d’expédition à hauteur de 3 € dans le ou les forfaits que vous utilisez sur votre boutique (WooCommerce > Réglages > Expédition > Zone à modifier > Forfait). Pour rappel, avec la méthode Forfait, les produits sans classe d’expédition se voient attribuer un montant et vous pouvez ensuite attribuer un montant spécifique aux classes associées à certains produits, comme ici les livres.

Notez l’identifiant de la méthode de livraison (/wp-admin/admin.php?page=wc-settings&tab=shipping&instance_id=6).

Adapter le code source ci-dessus en conséquence (flat_rate:6) et placez ce code dans le fichier functions.php de votre thème enfant.

Testez !