Sign in to follow this  
Followers 0

Calcul automatique des Frais de port dans le backoffice

14 posts in this topic

Posted · Report post

Bonjour

Je viens de m'apercevoir d'une chose.

Je suis en train de refaire complètement mes frais de port, non plus par tranche de tarifs, mais par tranches de poids.

Quand je créé une commande dans le backoffice, j'avais jamais fais attention parce que jusqu'à présent je rentrais les frais de port manuellement, MAIS ces frais de port ne se calculent pas automatiquement !

Je comprends pas parce que sous la case des frais de port, il est inscrit "(effacez le coût pour recalcul automatique à la validation du formulaire)"

Hé bien jamais chez moi ces FP ne sont calculés automatiquement et sont toujours à 0, quelque soit les produits que je rajoutte au client !

est ce un bug chez moi ou c'est général ? Ou n'ai je pas compris le fonctionnement de peel ?

D'ailleurs il en est de même pour "les frais sur petite commande"...

Ne pourrait on pas faire dans le backoffice un calcul automatique, puis bon à nous après de modifier manuellement ces valeurs pour chaque cas individuel non ?

Merci pour vos infos.

Cordialement

Jean-Luc

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Le calcul automatique se fait bien le champ cout_transport est vide. Le code qui gère le recalcul des frais de ports pour une commande en back office est


if (!empty($GLOBALS['mode_transport']) && (!isset($frm['cout_transport']) || $frm['cout_transport'] == '')) {
// Calcul du coût du transport
$delivery_cost_infos = get_delivery_cost_infos($frm['total_poids'], $total_produit, vb($frm['type_transport']), $frm['zone'], $frm['nb_produits']);
if ($delivery_cost_infos !== false) {
$shipping_costs['tva_percent'] = ($frm['apply_vat'] ? $delivery_cost_infos['tva'] : 0);
$cout_transport_ht = $delivery_cost_infos['cost_ht'];
} else {
// Pas de port trouvé pour ce poids et ce total
$shipping_costs['tva_percent'] = 0;
$cout_transport_ht = 0;
}
$cout_transport = vn($cout_transport_ht) * (1 + vn($shipping_costs['tva_percent']) / 100);
} else {
// Récupération des données du formulaire
$cout_transport = get_float_from_user_input(vn($frm['cout_transport']), $frm['currency_rate']);
$cout_transport_ht = vn($cout_transport) / (1 + vn(get_float_from_user_input(vn($frm['tva_transport']))) / 100);
}
[/CODE]

La fonction get_delivery_cost_infos est la même qu'utilisé en front office. Assurez-vous que le champ soit vide (est pas égal à 0) et qu'une règle soit défini dans la page administrer/tarifs.php correspondant à la somme des poids des produits de la commande.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Simon

J'ai bien vérifié dans les paramètres du site, j'ai bien un calcul en fonction des tarifs/poids, pas de gratuité..

J'ai beau effacer le 0.0 de frais de port, quand je sauve la commande, ça repasse à 0.0...

Je comprends pas...

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Une autre raison serait une configuration exonérant les frais de ports renseigné dans la partie "Gestion des frais de port" de la page administrer/sites.php. Pouvez-vous vérifier que les seuils

PUBLIC : Seuil de gratuité des frais de port :

REVENDEURS : Seuil de gratuité des frais de port :

et

Exonérer de frais de port si un client achète plus de :

ne sont pas atteint pour la commande ?

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Simon

Je viens de vérifier...

Tous ces paramètres sont à 0. Donc pas de gratuité !!

ce que comprends pas, c'est que quand je suis en front office, ça me calcule les FP correctement alors qu'en backoffice, ça reste à 0.

En plus, comme je vous le signalais dans mon email, j'ai rajouté dans le backoffice la ligne qui m'affiche le poids total de la commande, et y'a des problèmes d'incrémentation...

Je suis un peu déboussolé...

Share this post


: post
Share on other sites

Posted · Report post

Suite...

Je me suis rendu compte ce week end que la FRANCE était configurée en zone "DOM TOM" !!

J'ai rectifié ce paramètre dans mon back office, et depuis, le backoffice me calcule automatiquement les FRAIS de port lorsque j'efface le contenu de la case.

MAIS je me heurte toujours à un problème...

J'ai appliqué votre modif pour avoir l'affichage du poids total de la commande dans le backoffice

"fichier modeles/commande_details.php, il faut ajouter

<tr> <td>Poids de la commande' . BEFORE_TWO_POINTS . ':</td> <td>' . String::str_form_value(vb($commande['total_poids'])) . ' grammes</td> </tr>"

et je m'aperçois qu'il y a un problème dans l'incrémentation des poids...

En effet, dans le backoffice, j'ajoutte un produit pour la première fois et le poids total s'affiche correctement.

Mais si je fais une modif sur la quantité de ce produit par la suite, les modifications ne sont pas prises en compte dans le poids, de telle sorte que le poids affiché reste le même que celui affiché pour la première entrée de produits.

Par contre, si je rajoutte des produits différents dans le panier, là le poids s'incrémente, mais ne bouge plus lorsque je modifie par la suite la quantité de ces nouveaux produits ajoutés...

de ce coup, le calcul automatique en backoffice prenant en compte le poids des objets et erroné...

une idée ?

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Les produits que vous ajoutez au panier sont-il dans votre base de donnée? Le poids total de la commande est recalculé en même temps que le reste. Si le poids du produit n'a pas été additionné, il y a de forte probabilité que le produit n'a pas été 'reconnu' par la fonction de mise à jour de la commande et que les informations complémentaires (notamment le poids) n'ont pas été pris en compte.

Dans la fonction save_commande_in_database du fichier ib\fonctions\fonctions_admin.php, pouvez-vous vérifier que les lignes 1363 à 1367 correspondent à celle-ci :


if(!empty($frm["id" . $i])) {
$this_article['product_id'] = $frm["id" . $i];
} else {
$this_article['product_id'] = get_product_id_by_name($nom);
}[/CODE]

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Simon

J'ai vérifié les lignes de code, ce sont bien les même.

Les produits sont bien dans la base de donnée...

Ce qui est étrange, c'est qu'en fait, comme je vous le disais, le poids d'1 seul article s'affiche, même si on augmente les quantités dans le panier.

J'ajoutte par exemple 1 impression Photo (IMP-PHOT-10x15), il me met bien les 3g qui sont défini dans le poids de l'article.

par contre, si je modifie la quantité que je mets à 100, lorsque je valide, le poids total reste à 3g.

Par contre, ce poids sera incrémenté du poids d'1 Objet différent que je rajoutterai dans le panier...

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Effectivement, le poids n'est pas multiplié par la quantité lors du calcul de la commande en back office. Dans la fonction save_commande_in_database(), il faut remplacer la ligne 1432

   	 $frm['total_poids'] += $product_object->poids;
par
   	 $frm['total_poids'] += ($product_object->poids + $product_object->configuration_overweight) * $this_article['quantite'];

.

La correction sera dans la futur version, merci.

Share this post


: post
Share on other sites

Posted · Report post

Haaaaaaaaaaaaaaaaaaaa !!

je savais bien que je suis pas encore sénile !!!!

merci mon ptit Simon !!!!

et vraiment, je suis super content de peel shopping !!

merci !

bonne journée

JL

Share this post


: post
Share on other sites

Posted · Report post

Bonjour tout le monde

 

je remonte ce sujet une nouvelle fois car il y a encore un problème sur la mise à jour automatique du poids dans le backoffice de la 6.4.2...

J'ai défini pour les bandes audio que je numérise 2 classes de bandes audio. Des bandes jusqu'à 18cm de diamètre (sans surplus de poids) et des bandes dites NAB professionnelles de 26cm de diamètre (qui pèsent près de 650g de plus).

Je me sers donc maintenant du paramètre d'origine des "tailles" de peel shopping, et j'ai bien affiché 640g de plus pour la taille "professionnel NAB".

Hé bien dans le backoffice, quand j'ajoutte cette option de taille dans le panier, le poids de la commande n'est pas incrémenté des 640g...

 

Une aide svp ?

merci

bonne journée

 

JL

Share this post


: post
Share on other sites

Posted · Report post

Bonjour carcy,

 

Pour corriger, il faut supprimer la ligne 1413 du fichier lib/fonctions/fonctions_admin.php :

        $frm['total_poids'] += $product_object->poids;

Et ajouter 

        $frm['total_poids'] += ($product_object->poids + $product_object->configuration_overweight) * $this_article['quantite'];

sous 

        $product_object->set_configuration($this_article['couleurId'], $this_article['tailleId'], null, is_reseller_module_active() && is_reseller()); // on fixe les options

Les numéros de ligne sont donnés pour une 6.4.2. La futur version bénéficiera de cette correction.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Simon !!

merci pour votre aide ! ça marche effectivement !

On avait déjà fait la correction

  $frm['total_poids'] += ($product_object->poids + $product_object->configuration_overweight) * $this_article['quantite'];

 

mais cette ligne était beaucoup plus haut dans le code.

En la mettant là ou vous dîtes, c'est tout bon  !!

merci !!!!

 

Par contre, j'ai pas testé la v7 encore... Je suis trop nouille pour me l'installer en local !! LOL

Mais je balise pas mal par rapport aux modifs que j'ai apportées sur la V6...

On verra bien !!

 

merci et bonne soirée !!

 

cordialement

 

JL

Share this post


: post
Share on other sites

Posted · Report post

Bonjour à tous

 

Je fais suite à ce message (hé oui ! encore !!)

alors ça marche, c'est ok. C'est pas ça le problème.

 

J'ai téléchargé la version 7Béta de peel pour regarder un peu

j'ai zyeutté dans le fichier lib/fonctions/fonctions_admin.php

 

et la correction que vous apportez sur la 6.4.2

 

( $frm['total_poids'] += ($product_object->poids + $product_object->configuration_overweight) * $this_article['quantite'];

en dessous de

 $product_object->set_configuration($this_article['couleurId'], $this_article['tailleId'], null, is_reseller_module_active() && is_reseller()); // on fixe les options)

 

n'est pas appliquée sur la 7béta puisque $frm['total_poids'] += (......  est ligne 1316   et que $product_object->set_configuration(.....   se trouve en ligne 1326...

est ce normal  ?

 

merci pour l'info

 

JL

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

Twitter Advisto ecommerce

Facebook PEEL Shopping