• Resolved halc

    (@halc)


    Bonjour!
    J’utilise votre plugin sur un site multi-vendeurs et la compatibilité se fait très bien, cependant, j’aurais besoin d’une customisation qui permettrait de remplacer le calcul des conditions sur le poids/prix total du panier par un poids/prix total par classe de livraison.
    Pour être plus clair: mon site associe automatiquement une classe de livraison a chaque boutique, ainsi, votre plugin associe parfaitement à chaque vendeur ses propres frais de ports. Cela fonctionne très bien.
    Le hic, c’est que le calcul des conditions par poids ou prix se base sur le poids et le prix du panier total. Cela pose problème si un client commande des produits a deux boutiques différentes: a chaque vendeur ses propres options de livraison, mais les tarifs seront alors basés sur le poids/prix total du panier, or je voudrais limiter ce calcul aux objets appartenant au vendeur, donc désignés par une classe de livraison spécifique.

    Est il possible de faire en sorte que l’activation des conditions se base sur le poids et le prix total associé à chaque classe de livraison?
    Je sais que le plugin “table rate shipping” de Woocommerce gère cette option, mais le votre offre bien plus de possibilités pour des réglages poussés, et j’aimerais continuer à l’utiliser.

    Quoi qu’il en soit, merci pour votre réponse.

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

    (@harasse)

    Bonjour,

    Je ne suis pas certain d’avoir bien compris le sujet?: chacune de vos boutiques fait son propre tarif de livraison, et pour le client qui commande dans plusieurs boutiques vous lui appliquez la somme des tarifs de chaque boutique??
    J’avoue que je n’y ai pas encore réfléchi, mais avez-vous regardé dans les exemples l’utilisation du filtre cdi_filterarray_shipping_rate qui vous permet d’appliquer un tarif sur-mesure selon des combinaisons complexes??

    Thread Starter halc

    (@halc)

    Je vous réexplique:
    Un client passe une commande et achète deux objets a deux vendeurs différents sur mon site.
    Chacun des vendeurs possède sa propre classe de livraison. Chacun configure lui-même ses règles de calcul selon le poids du

      panier

    , ce qui permet aux vendeurs d’avoir chacun leurs règles différentes sur une commande commune.

    Dans cette commande:
    Le vendeur 1 expédie un objet de 250g
    Le vendeur 2 expédie un objet d’un kg

    chaque vendeur se verra attribuer des frais de ports calculés sur le total d’1kg250:
    Le vendeur 1 récupère les frais liés à sa propre classe de livraison, mais calculés sur le poids total du panier! Idem pour le vendeur 2

    Est il possible de calculer ce poids séparément pour chaque classe de livraison plut?t que sur le total du panier?

    J’espère avoir été plus clair quant à ma demande.

    Thread Starter halc

    (@halc)

    En plus court: peut-on remplacer les conditions “poids mini” et “poids maxi” de la grille de tarifs, par “poids mini par classe de livraison” et “poids maxi par classe de livraison” ?

    Plugin Author Halyra

    (@harasse)

    Bonjour,

    Merci pour vos explications.
    Désolé, mais j’ai un peu de mal à conceptualiser une solution.

    ??En plus court: peut-on remplacer les conditions “poids mini” et “poids maxi” de la grille de tarifs, par “poids mini par classe de livraison” et “poids maxi par classe de livraison” ????:
    On pourrait bien évidemment supposer une option for?ant un tel type de fonctionnement, avec toutefois la réserve que les lignes de tarif de CDI sont multi-classes et non sur une seule classe. Dans cette hypothèse la ligne tarif CDI rendrait un résultat tarif sur la base de la première classe reconnue.
    Mais le problème est que Woocommerce ne permet de sélectionner qu’une seule ligne de tarif?selon le choix client. Donc je ne vois pas comment l’algorithme qui s’applique à la première ligne de tarif CDI (donc première classe et premier de vos vendeurs) va pouvoir se propager sur d’autres lignes de tarifs/vendeurs.

    On va réfléchir, le week-end portant conseil.

    Thread Starter halc

    (@halc)

    La propagation se fait toute seule, je l’ai déjà testée sur ma marketplace, donc pas de soucis sur ce point.
    Je vous pose la question car le plugin “Table Rate Shipping”, que j’utilise actuellement, propose 4 types de calculs pour ses tables: Pour chaque méthode de livraison, le logiciel propose 4 méthodes de calcul des conditions.
    Calcul sur:
    -La commande totale (poids prix sur le total panier, comme votre logiciel)
    -Par article
    -Par articles similaires (si un article est présent en plusieurs exemplaires)
    -Par classe de livraison (ce qui me permet de faire le total pour chaque vendeur, voilà ce qui m’intéresse)

    Cependant, leur logiciel ne propose pas de “méthode exclusive”, très pratique pour la gestion de masse en cas de mise à jour des tarifs postaux (leur logiciel m’oblige à mettre à jour les tarifs boutique par boutique…), et j’ai demandé une customisation payée à leurs développeurs, mais on me l’a refusée…

    J’ai payé 99$ pour leur logiciel, et je n’hésiterai pas à vous offrir la même somme (ou même un peu plus) pour une customisation du votre.
    Si vous m’offrez un moyen de vous contacter en privé, je pourrai vous donner un accès admin à mon site ainsi qu’au code des fichiers du plugin, afin de vous aider à comprendre la différence de comportement entre les deux logiciels.

    Quoi qu’il en soit, merci pour l’intérêt que vous portez à ma requête.

    • This reply was modified 7 years, 6 months ago by halc.
    • This reply was modified 7 years, 6 months ago by halc.
    Thread Starter halc

    (@halc)

    Pour info, j’ai testé en appliquant le code suivant qui permet de limiter le panier à un seul vendeur, mais en termes d’expérience utilisateur, ce n’est pas l’idéal:

    add_filter( ‘woocommerce_add_cart_item_data’, ‘woo_custom_add_to_cart’ );
    function woo_custom_add_to_cart( $cart_item_data ) {
    global $woocommerce;
    $items = $woocommerce->cart->get_cart(); //getting cart items
    $_product = array();
    foreach($items as $item => $values) {
    $_product[] = $values[‘data’]->post;
    }
    if(isset($_product[0]->ID)){ //getting first item from cart
    $product_in_cart_vendor_id = get_post_field( ‘post_author’, $_product[0]->ID);
    $prodId = (int) apply_filters( ‘woocommerce_add_to_cart_product_id’, $_GET[‘add-to-cart’] );
    $product_added_vendor_id = get_post_field( ‘post_author’, $prodId );

    if( $product_in_cart_vendor_id !== $product_added_vendor_id ){$woocommerce->cart->empty_cart();wc_add_notice( __(“Vous ne pouvez pas ajouter les articles de plusieurs vendeurs dans un même panier !”, “wcvendors”));}
    return $cart_item_data; }
    }

    Plugin Author Halyra

    (@harasse)

    Bonjour,
    Je n’ai pas oublié votre question et j’ai vainement tenté d’y trouvé une bonne réponse générale.
    La comparaison avec ??Table Rate Shipping?? est peu pertinente car ces 2 plugins ont des principes différents?: ??Table Rate Shipping?? est sur une logique de calcul d’un shipping tarif (a priori unique) calculé selon différentes tables; la ??shipping méthod? Colissimo? est quant à elle sur le principe de différents tarifs (a priori fixes) qui sont sélectionnés/éligibles quand ils répondent à différents critères.
    Vous pouvez très bien utiliser ??Table Rate Shipping?? avec CDI, et en paramétrant dans les réglages CDI les ?Références aux méthodes de livraison?? devant pointer sur ??Table Rate Shipping??.
    Si vous souhaitez absolument réaliser avec la ??shippig méthod? Colissimo? une fonction de calcul de tarif par classe des produits du panier, il faudrait le faire via le filtre ?cdi_filterarray_shipping_rate?? lequel vous donne accès à l’ensemble du contexte Woocommerce.
    Je suis désolé de ne pas pouvoir aller plus loin sur votre demande, mais je pourrais vous orienter si besoin. ?
    NB?: Je vous remercie de votre offre généreuse, mais je ne fais pas de prestations.

    Thread Starter halc

    (@halc)

    Et bien c’est dommage, je vais essayer de trouver une parade…
    En tout cas merci!

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Changer le calcul poids/prix du panier en poids/prix par classe de livraison’ is closed to new replies.