• Resolved unikboards

    (@unikboards)


    Bonjour,

    Dans mon Shop j’ai un article que je ne souhaite pas livrer dans certain pays, ici l’exemple des états-unis.

    J’ai donc configuré 2 classes de livraisons. La première classe des produits “autorisés”, la deuxième “non autorisé”.

    Dans les réglages de livraison des état-unis je configure les lignes avec la classe “autorisé” seulement.

    – Si j’ai dans mon panier un produit (bundle) qui a la classe “non autorisé”, la livraison est active.
    – Si j’ai dans mon panier un produit simple “non autorisé”, la livraison n’est pas active.
    – Si j’ai dans mon panier un produit un produit “autorisé” + un “non autorisé” la livraison est active.

Viewing 10 replies - 1 through 10 (of 10 total)
  • Plugin Author Halyra

    (@harasse)

    Bonjour,

    La logique de CDI est de considérer que les shipping class sont un critère éligibilité de la méthode Colissimo en cours. Autrement dit, il doit y avoir au moins 1 produit dans le panier ayant la shipping class pour activer la livraison. Cela fonctionne pour les produits simples et les produits variables, mais l’impasse a été faite jusqu’à ce jour pour les produits groupés. Mais ceci me semble réparable à l’occasion d’une prochaine version.

    En ce sens, des 3 cas que vous soumettez, le 2ème et le 3ème ont un comportement normal. Le 1er cas est en revanche anormal et la livraison devrait être ??inactive?? (après la correction ci-dessus) si aucun des produits simples du groupement ne possède la class ??autorisé??.

    Mais comme votre client peut combiner des produits autorisés et des produits non autorisés, je me demande si la meilleure solution à votre problème ne serait pas, dans la page checkout, de mettre un filtre pour supprimer du panier les produits de class ??non autorisé?? quand le pays de livraison est les Etats-unis (par exemple le filtre woocommerce_cart_item_product pourrait faire l’affaire).

    Plugin Author Halyra

    (@harasse)

    Je n’arrive pas à reproduire le bug de votre 1er cas : Si j’ai dans mon panier seulement un produit groupé dont tous les produits simples contenus sont de classe “A” (i.e. différent de “B”), la shipping méthode sélectionnant la classe “B” n’est pas activée.
    Peut-être aviez-vous en plus dans votre panier dans ce cas de figure un autre produit de classe “B” (i.e. “autorisé”) qui déclenche l’activation ?

    Thread Starter unikboards

    (@unikboards)

    Dans mon premier cas le bundle (de classe B) comporte plusieurs articles qui sont en classe “A” (livrable) et 1 qui est en classe “B” (non livrable), et l’option de livraison de la classe “A” est active.

    Je regarde du coté des filtres que je ne connaissais pas.

    Thread Starter unikboards

    (@unikboards)

    Hello ! je reviens ici car j’ai vu la mise a jour.

    Cependant ?a ne regle toujours pas mon probleme :/

    J’ai simplifié mes classes.
    Classe 1 : world
    classe 2 : france only

    Dans mon panier j’ai un article classe 1 et un article classe 2 mais toujours la livraison active.

    Plugin Author Halyra

    (@harasse)

    Une méthode de livraison ne supprime pas des produits du panier. Mais il y a 2 fa?ons principales de traiter votre problème?:

    1) Soit vous créez dans function.php (ou ailleurs) un morceau de code à mettre dans un filtre comme woocommerce_cart_item_product, qui éliminera du panier les produits de classe ??France only?? si le pays n’est pas ??FR??. Dans cette solution, le client verra ses produits interdits dispara?tre automatiquement quand il arrivera à la page checkout (les autres produits restant dans le panier). Mais ca pourrait être déroutant pour le client.

    2) Soit vous utilisez la méthode de livraison Colissimo?:
    -créez une shipping zone ??France?? et y mettre une méthode Colissimo avec un ou des tarifs ayant comme sélection de classe de livraison ?All Shipping classes??.
    -Dans la dernière shipping zone ??Reste du monde?? ajoutez une méthode Colissimo avec un ou des tarifs ayant comme sélection de classe de livraison ?France only??, ET cochez la case ??Mode classe de livraison “Exclure”?? en bas de la méthode.
    Pour plus de clarté pour votre client, vous aurez probablement à adapter le texte woocommerce quand il n’y a aucune méthode de livraison disponible.

    Thread Starter unikboards

    (@unikboards)

    Hello !
    la méthode 2 c’est bien ce que j’ai fait.
    Zone de livraison USA : classe “only france” et la coche Exclure. mais si deux classes differentes dans le panier la méthode est disponible au client.

    je me remet donc aux filtres, si vous avez un lien qui explique je suis preneur …

    Je tiens quand même à vous remercier pour votre travail et pour ce plugin. je l’attendais depuis longtemps. Bravo

    Plugin Author Halyra

    (@harasse)

    Je vous assure que la méthode 2 fonctionne, et je l’ai testée pas plus tard qu’hier sur votre exemple.
    N’auriez-vous pas avant la zone de livraison USA une autre zone de livraison englobant les USA qui serait prise en priorité (woocommerce prend la première trouvée du haut vers le bas) ?
    Pouvez-vous me passer par “Votre assistance personnalisée !”, soit un lien vers votre site, soit des copies d’écran des shipping zones et parametrage de vos méthodes colissimo.

    Thread Starter unikboards

    (@unikboards)

    Bon j’ai essayé en mettant la zone US en premier dans la liste mais rien.
    Je sui vraiment désolé, il doit y avoir un detail qui m’a échappé …

    https://unikboards.com

    shipping zone
    shipping zone

    zone 5 US
    zone 5 US

    Commande type
    commande type

    Dans la commande type, l’article “courroie” est en classe “world” et la batterie en classe “only france”

    • This reply was modified 8 years, 5 months ago by unikboards.
    Plugin Author Halyra

    (@harasse)

    Trouvé?! C’est un bug CDI quand il y a un espace dans le nom de la classe de livraison.
    Ce sera corrigé à la prochaine version.

    En attendant, si vous savez faire, vous pouvez sur la version 1.14.1 , aux lignes 345 et 351 de includes/WC-colissimo-shipping-zone.php, remplacer strtolower($rates[‘class’]) par sanitize_title($rates[‘class’]) .

    • This reply was modified 8 years, 5 months ago by Halyra.
    Thread Starter unikboards

    (@unikboards)

    Parfait !! (Car coté filtres je bloque pour le moment …)

    Encore merci pour votre travail.

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘Interdire livraison d’un produit spécifique dans un pays’ is closed to new replies.