Choix des articles avec ou sans paiement

Y a il une option dans les articles pour pouvoir les ajouter à un devis mais ne pas à avoir automatiquement le paiement Stripe ?

Le cas présent, c’est une salle de réunion où l’on veut pouvoir valider les réservations avant le paiement. Les autres salles doivent quand à elle pouvoir être réservée avec paiement automatique.

Autre question proche, pour un même article, est ce possible de ne pas rendre possible le paiement le wd (juste émettre un devis provisoire non “validé”), alors que la semaine ce serait possible ?

Merci,

Bonjour Simon,

Dans tous les cas il est possible d’ajouter les articles à un devis sans procéder au paiement.
L’étape paiement n’intervient que lorsque la commande est passée et le devis transformé en bon de commande.
Vous pouvez alors décider de considéré la réservation comme validée s’il existe un bon de commande, payé dans certains cas, impayé dans d’autres cas.

Par contre il n’y a pas d’option pour activer/désactiver les paiements le week-end.
Tu peux désactiver/activer manuellement l’option dans les paramètres du panier, sinon il est possible de créer un script qui le fait automatiquement en fonction du jour de la semaine.

Bonne journée!

Merci du retour.
Par contre, je ne vois pas d’option pour ne pas laisser la possibilité de payer quand le paiement est activé en automatique avec Stripe. J’ai l’impression qu’une fois activé, le Stripe est mis en place sur tous les articles sans pouvoir déterminer qu’un article en particulier doit d’abord passer par une validation avant de pouvoir procéder au paiement. Je parle de la commande depuis la boutique.

Pour la question des paiements du wd, une astuce est d’avoir un second article dédié au wd (pas géniale comme solution, je vais essayer de creuser la piste du script).

Bonjour Simon,

Le bouton “Payer” apparaîtra bien systématiquement si le paiement en ligne est activé, mais le client n’est pas obligé de payer pour valider sa commande.

Le bouton n’apparaît que dans la commande:

Effectivement tu ne peux ne pas faire apparaître le bouton ou non en fonction de l’article, mais tu as plusieurs solutions (qui nécessitent du code par contre):

  1. Tu peux faire un script web (javascript) qui vient cacher le bouton (id=“pay-for-order”) en fonction de l’article.
    Tu peux ajouter un champ personnalisé dans la fiche de l’article pour activer/désactiver cette fonction.
    Cette solution ne nécessite pas d’application personnalisée.

  2. Tu peux étendre les fonctionnalités de la page “order” (utilisée pour afficher les bons de commande).
    Il existe un hook, te permettant de venir modifier le comportement standard pour mettre une logique personnalisée.

Exemple:
Dans une application personnalisée, tu créé un fichier myapp/templates/pages/myorder.py
Tu y insère le code suivant (à personnaliser):

def get_context(context):
    if context.doc.{{ mon_champ_personnalisé }}:
        context["enabled_checkout"] = 0

Ensuite dans le fichier hooks.py de ton application tu ajoutes:

extend_website_page_controller_context = {
"erpnext.templates.pages.order": "myapp.templates.pages.myorder"
}

Il ne te reste qu’à ajouter un champ personnalisé à cocher dans tes fiches d’articles pour faire apparaître ou non le bouton de paiement dans la commande.
Tu peux évidemment étendre ton script pour déterminer l’affichage aussi en fonction de la date.

Merci,

Est ce que l’on peut aussi mettre du CSS dans des pages spécifiques ?
Auquel cas, juste cela suffirait

.card-body { display: none; }

Mais à priori, ce ne serait plus possible de discriminer l’article.

Pour la création de script web, il y a des exemples de scripts de ce type et de comment les appeler ?

Bonjour Simon,

Il n’y a pas de type de document permettant de n’écrire du CSS que pour une page donnée, par contre tu peux utiliser la balise data-path attachée à la balise globale body du portail (exemple: data-path="sales-orders") pour cibler la page que tu veux et mettre du CSS spécifique.

Pour modifier le CSS du site web, il suffit de créer un nouveau “Thème du site web” dans le module Site Web. Pour un script, c’est dans “Script du site web”.

Il n’y a malheureusement pas encore de documentation sur le sujet, mais tu devrais pouvoir quelques exemples sur le forum d’ERPNext je pense.

Bonne soirée!