• Resolved mephiston91

    (@mephiston91)


    Bonjour,

    Je n’arrive pas Ă  trouver l’option afin de permettre une assurance optionnelle lors de la commande du client, pouvez-vous m’indiquer l’emplacement de cette option svp.

    Merci d’avance.

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

    (@harasse)

    Bonjour,
    Dans la metabox colissimo de la commande.
    Il faut d’abord indiquer “avec signature” puis mettre Ă  jour ;
    puis indiquer “oui” ) compensation+ puis mettre Ă  jour ;
    puis renseigner le montant (par tranche de 150€) puis mettre à jour.

    Thread Starter mephiston91

    (@mephiston91)

    Bonjour,

    N’est-il pas possible d’ajouter un tarif dans les mĂ©thodes d’expedition afin de laisser le choix Ă  l’internaute de souscrire Ă  une assurance complĂ©mentaire?

    Bonne journée et merci.

    Plugin Author Halyra

    (@harasse)

    Bonjour,
    La shipping method CDI ne gère pas de données spécifiques aux transporteurs ni à la relation entre chargeur et transporteur.
    Si vous voulez mettre en place une telle fonction, vous pouvez utiliser le filtre ‘cdi_filterarray_orderlist_before_metabox’ par lequel vous pouvez forcer une valeur d’assurance (_cdi_meta_amountcompensation) Ă  la crĂ©ation de la metabox CDI. Vous pourrez ainsi y mettre soit une valeur en rĂ©fĂ©rence au shipping choisi par le client. Si vous optez pour une valeur modifiable par le client, il vous faut ajouter une donnĂ©e privĂ©e dans la page checkout de WC pour la rĂ©cupĂ©rer ensuite dans ce filtre.

    Thread Starter mephiston91

    (@mephiston91)

    Du coup, est ce qu’il y a une règle Ă  appliquer Ă  “Domicile avec signature” pour que les frais soient de 90 centimes par tranche de 150€ automatiquement vue que l’on peut dĂ©finir le choix d’une compensation par dĂ©faut ?

    A quoi correspond du coup le Montant par défaut du montant total de la compensation additionnelle ?

    Est ce que le montant dans la metabox colissimo peut être automatiquement complétée avec ces tranches de 150€?

    Plugin Author Halyra

    (@harasse)

    La formule Ă  mettre dans la zone “variable” de votre ligne tarif est : <?php $level = error_reporting(0); define(fare, fare); error_reporting($level); $price=$woocommerce->cart->subtotal; $assurance=ceil($price/150)*0.90; $return = $assurance; ?> .

    Comme son nom l’indique, le montant par dĂ©faut du montant total de la compensation additionnelle est une valeur fixe par dĂ©faut Ă  appliquer.

    Pour remplir automatique la metabox colissimo, il vous faut utiliser le filtre indiqué ci-dessus dans ce post et faire un peu de coding. Le mettre dans functions.php de votre theme ou dans votre plugin de personnalisation.

    Thread Starter mephiston91

    (@mephiston91)

    Vous n’auriez pas le code justement permettant d’insĂ©rer directement le prix de vente dans cette box ?

    function auto_amountcompensation($args){
      $args['_cdi_meta_amountcompensation'] = ???
      return $args;
    }
    add_action('cdi_filterarray_orderlist_before_metabox','auto_amountcompensation');
    Plugin Author Halyra

    (@harasse)

    Non désolé, je n’ai pas travaillé sur ce point.
    Mais je ne doute pas qu’un membre du forum ayant déjà mis en place une telle solution va vous apporter une réponse.

    Thread Starter mephiston91

    (@mephiston91)

    Je ne sais pas ce qui se passe mais le formulaire de recherche du forum ne semble pas bien fonctionner car je ne retrouve aucune information concernant mon besoin. Aucune information sur les assurances complémentaires et surtout comment définir un _cdi_meta_amountcompensation par défaut équivalent au panier ?

    Thread Starter mephiston91

    (@mephiston91)

    Le code que j’ai rĂ©alisĂ© fonctionne bien mais comment rĂ©cupĂ©rer le prix total de mes produits au sein de ma fonction :

    function auto_amountcompensation($args){
      $args['_cdi_meta_amountcompensation'] = ???
      return $args;
    }
    add_action('cdi_filterarray_orderlist_before_metabox','auto_amountcompensation');

    dans $args je n’ai que :

    Array ( 
    [_cdi_meta_departure] => 75004 PARIS 
    [_cdi_meta_typeparcel] => colis-standard 
    [_cdi_meta_parcelweight] => 250 
    [_cdi_meta_signature] => yes 
    [_cdi_meta_additionalcompensation] => yes 
    [_cdi_meta_amountcompensation] => 150 
    [_cdi_meta_typereturn] => no-return 
    [_cdi_meta_nbdayparcelreturn] => 
    [_cdi_meta_productCode] => 
    [_cdi_meta_pickupLocationId] => 
    )
    Thread Starter mephiston91

    (@mephiston91)

    Je pense avoir la solution :

    function auto_amountcompensation($args){
      global $woocommerce, $post;
    
      $order = new WC_Order($post->ID);
      $cart_value = (float) $order->get_total() -
            $order->get_total_shipping() - 
            $order->get_shipping_tax();
            
      $price = ceil($cart_value/150)*150;
    
      $args['_cdi_meta_amountcompensation'] = $price;
      return $args;
    }
    
    add_action('cdi_filterarray_orderlist_before_metabox','auto_amountcompensation');
    

    Merci.

    Plugin Author Halyra

    (@harasse)

    Oui, vous ne devez pas en ĂŞtre loin.
    Mais conditionnez sur le nom de la shipping method, sinon ca va s’appliquer dans tous les cas.

    Plugin Author Halyra

    (@harasse)

    Essayez celui-la :

    add_filter( 'cdi_filterarray_orderlist_before_metabox','example_cdi_filterarray_orderlist_before_metabox_2', 10, 3) ;
      function example_cdi_filterarray_orderlist_before_metabox_2 ($arrayinitmetabox, $order, $valueshippingmethod) {
        global $woocommerce;
        $shipping_method = @array_shift($order->get_shipping_methods());
        $shipping_method_title = $shipping_method['method_title'];
        if ($shipping_method_title == 'Colissimo France avec assurance') {
          $price = $order->get_subtotal();
          $montantassurance = ceil($price/150)*150;
          if ($montantassurance > 1500){
            $montantassurance = 1500;
          }
          $arrayinitmetabox['_cdi_meta_signature'] = 'yes' ;
          $arrayinitmetabox['_cdi_meta_additionalcompensation'] = 'yes' ;
          $arrayinitmetabox['_cdi_meta_amountcompensation'] = $montantassurance ;
        }
        return $arrayinitmetabox;
      }
Viewing 12 replies - 1 through 12 (of 12 total)
  • The topic ‘Assurance complĂ©mentaire’ is closed to new replies.