Development #16065
Gestion des frais de port (et autres)
0%
Description
1/ Permettre d'envoyer des métadonnées supplémentaires à l'ajout d'un élément au panier (nombre d'exemplaires + prix à l'unité + lieu de livraison
Ça doit être relativement simple; il faudrait ajouter un JsonField à l'objet BasketItem et que celui-ci soit alimenté par des paramètres qui seraient passés en plus lors de l'appel à add-basket-item.
2/ permettre "à un moment" (lors du paiement et à chaque fois qu'un élément est ajouté au panier) un calcul de frais de port sur base du contenu du panier. (appel webservice)
Ça peut varier pas mal selon ce qu'on veut laisser comme contrôle à l'administration; il y a de toute façon une première phase qui est de constituer une liste avec toutes les infos des éléments du panier.
Ensuite, faire un truc de cette liste; ça pourrait être l'envoyer à Passerelle, ce qui permettrait là d'y faire un module tout à fait paramétrable, qui pourrait même aller chercher des tarifs à d'autres endroits, etc. Mais en restant sur un module simple, il recevrait en entrée du json qui correspondrait donc aux éléments du panier :
{ "data": [{"url": "https://...", "quantity": "2", "individual_cost": "3"}], [{"url": "https://...", "quantity": "1", "individual_cost": "2", "etranger": "oui"}], ... }
Et le module ferait son calcul, j'imagine que dans un premier temps ça pourrait juste être un module passerelle "frais postaux namur", sans rien de paramétré, avec le calcul dans le code. Et le module renverrait :
{ "data": [{"id": "postal-fees", "label": "Frais postaux", "cost": "5"}] }
Donc à la modification d'un panier, appel à ce webservice, et en retour création de BasketItem "fictifs" correspondant aux différentes lignes (i.e. on peut gérer les frais de port mais ça pourrait aussi ajouter une ligne "15% de réduc", "taxes", etc.). Il faudrait encore ajouter à BasketItem un champ supplémentaire, genre "identifiant frais additionnels", pour qu'il puisse être remplacé correctement en cas de modification du panier, et
qu'il puisse être affiché en dernier élément du panier.
Par ailleurs, pour simplifier, on retire la possibilité d'individuellement sélectionner des éléments du panier (#10177).
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 7 ans
- Lié à Bug #10177: suppression de la possibilité de paiement partiel (?) ajouté
Mis à jour par Frédéric Péters il y a presque 7 ans
- Fichier 0001-lingo-add-possibility-to-compute-extra-fees-16065.patch 0001-lingo-add-possibility-to-compute-extra-fees-16065.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Patch qui correspond de plutôt près à la description du ticket.
- ajout pour une régie d'un attribut extra_fees_ws_url, c'est une URL sur laquelle un POST avec les données décrivant les éléments de panier présent sera envoyé; la réponse attendue est de cette forme :
{ "data": [ { "subject": "Frais postaux", "amount": "3" } ] }
- ajout aux éléments du panier de deux attributs, extra_fee pour différencier les éléments de panier automatiquement créés et représentant des frais additionnels et request_data pour contenir des données supplémentaires qui pourraient être posés via l'appel webservice d'ajout (pour par exemple représenter une quantité, un poids, un type de document, etc.)
- calcul/création de BasketItem supplémentaires en prenant les infos des BasketItem et en les balançant sur le webservice.
Mis à jour par Frédéric Péters il y a presque 7 ans
- Lié à Development #16530: Permettre l'ajout d'éléments sans URL dans le panier ajouté
Mis à jour par Serghei Mihai il y a presque 7 ans
logger.error('failed to compute extra frees (user: %r)', user)
s/frees/fees/
Mis à jour par Frédéric Péters il y a presque 7 ans
- Statut changé de En cours à Résolu (à déployer)
Ok, corrigé.
commit 23b7b294ebb1da6ec83caa01a84a6fc35fb7bf37 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sun May 28 12:47:24 2017 +0200 lingo: add possibility to compute extra fees (#16065)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
lingo: add possibility to compute extra fees (#16065)