J'ai un magasin Satchmo qui doit avoir une catégorie d'articles spéciale disponible uniquement pour les utilisateurs qui paient par la méthode de livraison contre remboursement. À moins de coder en dur le processus de paiement, y a-t-il un moyen simple de restreindre les options de paiement pour une catégorie de produits donnée à l'argent comptant à la livraison seulement?Est-il possible de configurer des méthodes de paiement spécifiques à une catégorie ou à un produit dans Satchmo?
Répondre
Solution est que Satchmo émet des signaux presque pour chaque action, donc sur la construction des moyens de paiement forme vous devez écouter un signal spécifique, puis redéfinir méthodes variable kwarg qui se transmet à l'auditeur:
from payment.signals import payment_methods_query
def on_payment_methods_query(sender, methods=None, cart=None, order=None, contact=None, **kwargs):
if not cart.is_empty:
for item in cart.cartitem_set.all():
special_products = settings.SPECIAL_PRODUCTS #(1, 15, 25, 75)
if item.product_id in special_products:
# methods is a list of (option_value, option_label) tuples
methods = [m for m in methods if m[0] in ('COD',)]
return
payment_methods_query.connect(on_payment_methods_query)
Il y a un problème dans la réponse précédente (je sais parce que je me suis essayé), dans la ligne suivante:
methods = [m for m in methods if m[0] in ('COD',)] # won't have the desired effect
le problème est, de la liste des méthodes originales, une liste entièrement nouvelle est créé et stocké dans le même nom de variable. Cela n'affectera pas la liste originale que Satchmo a transmise, donc Satchmo ne le saura même pas. Ce que vous devez faire est en fait de modifier l'objet de la liste transmis, en utilisant des méthodes comme 'methods.remove (...)'.
Dans l'exemple particulier, il devrait y avoir quelque chose comme ceci:
disallowed_methods = [m for m in methods if m[0] not in ('COD',)]
for m in disallowed_methods:
methods.remove(m)
Peut-être que mon code n'est pas le plus élégant; peut-être que quelqu'un peut l'améliorer, et peut-être l'intégrer avec la réponse originale.
- 1. Comment inclure une catégorie dans l'URL du produit dans Satchmo?
- 2. Satchmo Paiement différé
- 3. paiement d'installation pour django satchmo
- 4. Associer chaque nouveau produit à une catégorie
- 5. Magento comment lier une catégorie à un produit spécifique
- 6. Satchmo, Vous voulez changer de modèle en fonction de quelle catégorie de produit est sélectionné
- 7. satchmo: intégration de la passerelle de paiement ccavenue
- 8. Magento Impossible d'ajouter un nouveau produit à une catégorie
- 9. Modèle de produit personnalisé en satchmo
- 10. Est-il possible d'envelopper des classes ou des méthodes spécifiques et de les affecter à un thread?
- 11. AspectJ pointcut à l'appel de méthode dans des méthodes spécifiques
- 12. Est-il possible d'utiliser des méthodes spécifiques à plate-forme de sdk multiplateforme en Java?
- 13. SQL Finding Orders appartenant à une catégorie de produit
- 14. Comment forcer une classe statique à implémenter des méthodes spécifiques?
- 15. Détection de la catégorie d'un produit à partir des attributs de produit en utilisant AI
- 16. ajouter un champ de catégorie à l'intérieur sous forme de produit dans des rails
- 17. Joomla Virtumart - Désactiver le paiement par catégorie de produits
- 18. Suivi des appels de méthodes spécifiques
- 19. Méthodes de paiement Dans l'application iPhone?
- 20. Une catégorie par méthode par rapport à toutes les méthodes dans une catégorie? (ObjC)
- 21. Comment puis-je savoir à quelle catégorie appartient un produit?
- 22. Dons de Satchmo
- 23. Passerelle de paiement pour déposer un paiement à deux (ou plusieurs) comptes
- 24. Modules de paiement Drupal sans "produit",
- 25. Est-il possible d'appliquer une option personnalisée à une catégorie entière de produits dans Magento?
- 26. comment afficher un message sur le panier et la page de paiement pour un produit de catégorie particulière?
- 27. journalisation des appels de fonction spécifiques à des journaux spécifiques
- 28. Comment vérifier si une page est une catégorie ou un produit dans woocommerce?
- 29. Configurer des comboboxes dans un datagridview lié à une collection
- 30. Suggestion concernant la catégorie des modèles de relation produit