Projet

Général

Profil

Development #16065

Gestion des frais de port (et autres)

Ajouté par Frédéric Péters il y a presque 7 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
27 avril 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Lié à Combo - Bug #10177: suppression de la possibilité de paiement partiel (?)Fermé03 mars 2016

Actions
Lié à Combo - Development #16530: Permettre l'ajout d'éléments sans URL dans le panierFermé28 mai 2017

Actions

Révisions associées

Révision 23b7b294 (diff)
Ajouté par Frédéric Péters il y a presque 7 ans

lingo: add possibility to compute extra fees (#16065)

Historique

#1

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é
#2

Mis à jour par Frédéric Péters il y a presque 7 ans

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.
#3

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é
#4

Mis à jour par Serghei Mihai il y a presque 7 ans

logger.error('failed to compute extra frees (user: %r)', user)

s/frees/fees/

#5

Mis à jour par Serghei Mihai il y a presque 7 ans

Sinon ok pour moi.

#6

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)
#8

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

Formats disponibles : Atom PDF