2010-07-23 5 views
8

J'ai un service d'abonnement que les gens paient tous les mois, j'ai donc configuré un «produit virtuel» avec un profil récurrent. En même temps, je veux l'avoir pour qu'ils puissent ajouter différents produits uniques. Pour ce faire, j'ai essayé de créer un «produit groupé» avec tous les différents produits à usage unique et d'ajouter le «produit virtuel» à ce «produit groupé». Cependant, quand je vais à la caisse, il est écrit "L'article nominal peut être acheté seul." Pour continuer, veuillez supprimer les autres éléments du devis. "Comment autoriser les gens à s'abonner au service et à acheter les produits en même temps?Profil récurrent et article groupé

Note: J'utilise Paypal Website Payment Pro comme compte marchand.

+0

Je déteste cogner, mais quelqu'un? –

+0

Les commentaires ne bump votre question, mais les modifications font. S'il vous plaît ajouter des informations supplémentaires si vous n'avez pas encore résolu ce problème, ou une réponse si vous avez. Je vous remercie. –

+0

quelle version de Magento utilisez-vous? –

Répondre

2

Malheureusement, il s'agit d'une restriction codée en dur dans le code Mage_Paypal.

Vous pouvez voir Mage_Sales_Model_Service_Quote::submitAll() qu'il exécute submitNominalItems() qui contient:

$this->_validate(); 
    $this->_submitRecurringPaymentProfiles(); 
    $this->_inactivateQuote(); 
    $this->_deleteNominalItems(); 

Ainsi, il tue le panier après avoir soumis des articles nominaux. Je ne suis pas sûr exactement pourquoi il fait cela, mais je suppose que c'est en raison de la façon dont les abonnements sont créés à Paypal.

Voici le code qui empêche l'ajout d'éléments à un panier contenant valeurs nominales dans Mage_Sales_Model_Quote::addItem():

if ($item->isNominal() && $this->hasItems() || $this->hasNominalItems()) { 
     Mage::throwException(Mage::helper('sales')->__('Nominal item can be purchased standalone only. To proceed please remove other items from the quote.')); 
    } 

Je travaille sur l'utilisation des profils récurrents de Magento pour d'autres fournisseurs de paiement au moment (son d'une tâche de fond: Magento Recurring Profiles with non-Paypal payment method) et il est possible de commander à la fois les produits nominaux (aka abonnement) et les produits réels en même temps, mais cela le rend un peu plus complexe. Si c'est un gros problème, il devrait être possible de refactoriser le code Mage_Paypal pour ce faire, mais c'est une tâche compliquée qui ne peut pas vraiment être résolue dans un seul article.

+0

Oui, il semble qu'il n'y a pas un moyen facile de contourner ce problème :( –

+0

Salut, il a résolu le problème, mais il crée deux commandes pour le même produit.Comment pouvons-nous surmonter ce problème? – Shivanand

3

Voici le commentaire à partir du code Magento:

/** * Solution temporaire pour le processus d'achat: il est trop dangereux d'acheter plus d'un élément nominal * ou un mélange de nominal et non nominal articles, bien que techniquement possible. * * Le problème est qu'il est actuellement implémenté en tant que soumission séquentielle des articles et commandes nominaux, en un clic. * Il est logiquement impossible de sécuriser le processus d'achat. * La solution appropriée est de soumettre les articles un par un avec la confirmation du client à chaque fois. */

En fait, vous pouvez supprimer le code ci-dessous:

if ($item->isNominal() && $this->hasItems() || $this->hasNominalItems()) { 
    Mage::throwException(Mage::helper('sales')->__('Nominal item can be purchased standalone only. To proceed please remove other items from the quote.')); 
} 

Magento gère encore plusieurs produits nominaux, cependant, vous utilisez qu'avec vos propres risques.