Jump to content

bloquer la livraison si la zone d'un transporteur n''est pas possible pour un produit


Recommended Posts

Bonjour, 

je m'explique nous avons 1 pays (le cap vert) et plusieurs îles associées à ce pays, nous avons créé des zones en fonction des iles (pas de code postal pour ce pays)

Pour faire fonctionner nous avons créé des ETATS (ce sont les îles ) et en dur les zones en fonction des îles.

 

On a un produit B qui peut etre livré dans toute les îles avec un transporteur TB

on a un produit A qui peut etre livré dans une ile X avec un transporter TA

On a créer une zone par îles liée à un etat qui est aussi le nom de l'ile relié au pays du coup quand on selectionne le CAP vert on a la liste des etat liés (iles) on peut selectionner et du coup on lie les transporteurs aux zones (qui sont les iles aussi) et on peut filtrer avec ce système

je choisis dans mon panier un objet A pour l'ile Y , j'ai bien mon transporteur TB OK 

je choisi dans mon panier l'"objet B pour l'ile Y, je n'ai pas de trasnporteur disponible OK auss

 

mais si je choisi un objet B et un objet A pour l'ile Y au ieu de me bloquer car un des produits n'est pas livrable il m'affiche le transporteur TB qui ne devrai tpas s'afficher car le produit B n'est pas livrable

 

est-ce le fonctionnement normal de presta ? quand on a 2 produits et un non livrable dans le pays ou la zone il va prendre l'autre transporteur ? 

 

merci c'est u n tres gros soucis pou rnous

Link to comment
Share on other sites

Heu...

Il y a 1 heure, abouzouzou a dit :

On a un produit B qui peut etre livré dans toute les îles avec un transporteur TB

 

Il y a 1 heure, abouzouzou a dit :

mais si je choisi un objet B et un objet A pour l'ile Y au ieu de me bloquer car un des produits n'est pas livrable il m'affiche le transporteur TB qui ne devrai tpas s'afficher car le produit B n'est pas livrable

Tu viens de dire que TB livre partout ... c'est donc logique non?

Link to comment
Share on other sites

Non , 

 

comme j'ai un produit A associé à un transporteur qui ne livre pas l'ile Y

et mon produit B associé à un transporteur qui livre l'ile Y on se retrouve avec un produit non livrable et un produit livrable (chaque produit est associé à un transporteur pour une zone différente) donc plutôt que mettre le transporteur qui ne peut livrer que 1 produit(et donc rendre livrable l'autre produit alors que c'est pas possible) il devrait afficher un message que pas de transporteur possible pour les 2 produits.... car on a des produits congelés donc impossible de les transporter d'une îl à une autre

en plus suivant l'ordre d'ajout des produits le compportement est différent (j'ai lu cela aussi dans d'autre post)

Link to comment
Share on other sites

on est en version 1.7.5.1 oui j'ai vu aussi malheureusement on est pas dans cette version ,en fait j'aimerais avoir dans le code ou je peux faire le plus siplement :

si dans la panier (requetes sql) je trouve au moins un produits qui n'a pas de transporteur dans la zone que je veux alors je n'affiche rien.....

vous savez dans quelle classe je peux faire cela ? (je me tape toutes la db et les classes)

d'ailleurs dans la DB je ne voi pas ou sont gérées les zones et les etats, je vois juste country

Link to comment
Share on other sites

La 1.7 est tellement mal foutue mon pauvre... Le problème n'est pas en base de données, c'est le code qui devrait proposer le multi-shipping qui semble ne pas avoir été mis en oeuvre en 1.7. Classique, ce qui marchait ne marche plus

Link to comment
Share on other sites

en fait je suis dans le code qui récupère les transporteurs, moi mon problèm est bien pire , je ne veux pas pouvoir livrer si un des produits n'est pas livrable (denré congelées, impossible a envoyer , je veux donc bloquer ou supprimer le produit du panier peu importe...) mais la je viens de voir un bou de code affreux

 

   if (count($carriers) > 1) {
                                $carrier['label'] = $carrier['price'];
                            } else {
                                $carrier['label'] = $carrier['name'] . ' - ' . $carrier['delay'] . ' - ' . $carrier['price'];
                            


 

donc la si il y a plusieurs transporteurs s uivant l'ordre d'ajout je me retouver avec un choix vide !

 

en plus suivant l'ordre d'ajout des produits le fonctionnement est différent

 

et dans les classes les tableau qui comprennnet tous les objets, c'est horrible....

Link to comment
Share on other sites

if (count($carriers) > 1) {
                                $carrier['label'] = $carrier['price'];
}

cette partie la qui est du grand n'importe quoi du coup j'ai fais si carriers > 1 et name == vide alors on renvoi vide.... et ca fonctionne comme cela mais va comprendre l'algorithme

Link to comment
Share on other sites

  • 1 year later...
5 minutes ago, Prestashop Addict said:

Dès que le client renseigne son adresse, les produits sont supprimés du panier et il a une alerte avec la liste des produits supprimés et pourquoi.

Pour une experience utilisateur je pense pas que ce soit bien , c'est frustrant de se voir retirer un objet d'un panier, déjà que c'est dur de faire ajouter...

 

Il y avait des posts qui proposait de capter la geolocalisation ou encore de mettre l'adresse des le début ou la zone de livraison...

Link to comment
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
×
×
  • Create New...