2013-03-20 1 views
0

Je suis en train de jouer avec Magento 1.7.2, mais je n'arrive pas à le comprendre. J'ai créé une boutique en ligne qui vend des produits personnalisés (produits virtuels).Magento: page de paiement personnalisée

Il est inutile d'autoriser les utilisateurs à s'inscrire sur mon magasin car ils ne peuvent acheter les produits qu'une seule fois. J'ai donc besoin de désactiver l'enregistrement.

La page de paiement comporte par défaut 4 étapes que le client doit remplir avant de commander.

  1. Commander Méthode
  2. Informations de facturation
  3. Informations de paiement
  4. Review Commander

donc ce que je dois est d'éliminer l'étape 1 comme je l'utilise uniquement la caisse invité et il n'y a pas de point dans fournir une option de connexion ou d'enregistrement. Ainsi, après que le client a cliqué sur la commande, il doit passer directement à l'étape 2.

À l'étape 2 à savoir les informations de facturation J'ai besoin que le nom du client (Nom et prénom) et l'e-mail et tout doit être supprimé, comme le numéro de téléphone, adresse, etc.,

À l'étape 3 Je ne fournissent que PayPal et ce sera bien si je peux éliminer cette étape.

Étape 4, pas de problème avec cela.

Donc, quelqu'un peut-il me dire comment je peux modifier la page de paiement ou est-il possible de créer une nouvelle page de paiement personnalisée qui répond à mes exigences. Il serait utile que quelqu'un puisse pointer vers de bonnes ressources ou des tutoriels.

Appréciez toute sorte d'aide.

Répondre

0

Si vous souhaitez supprimer une étape du processus de commande, vous devez localiser cette variable:

$stepCodes = array('billing', 'shipping', 'shipping_method', 'payment', 'review'); 

Donc, si vous voulez supprimer le processus de facturation (par exemple), puis votre code devrait ressembler à ceci:

$stepCodes = array('shipping', 'shipping_method', 'payment', 'review'); 

la meilleure façon de le faire est fait un module personnalisé, étendre la classe Mage_Checkout_Block_Onepage ainsi:

class Vendor_ModuleName_Block_Onepage extends Mage_Checkout_Block_Onepage 
{ 
    public function getSteps() 
    { 
     $steps = array(); 

     if (!$this->isCustomerLoggedIn()) { 
      $steps['login'] = $this->getCheckout()->getStepData('login'); 
     } 

     $stepCodes = array('shipping', 'shipping_method', 'payment', 'ddate', 'review'); 

     foreach ($stepCodes as $step) { 
      $steps[$step] = $this->getCheckout()->getStepData($step); 
     } 
     return $steps; 
    } 
} 

et conserver ce dossier local sur cette structure:

local/fournisseur/module_name/Bloc/Onepage.php

J'espère que cela aide.

-2

Localisez le fichier app\code\core\Mage\Checkout\Block\Onepage.php

classe modifier & remplacer par le code suivant:

class Mage_Checkout_Block_Onepage extends Mage_Checkout_Block_Onepage_Abstract 
{ 
    /** 
    * Get 'one step checkout' step data 
    * 
    * @return array 
    */ 
    public function getSteps() 
    { 
     $steps = array(); 
     $stepCodes = $this->_getStepCodes(); 

     if ($this->isCustomerLoggedIn()) { 
      $stepCodes = array_diff($stepCodes, array('login')); 
     } 

     foreach ($stepCodes as $step) { 
      $steps[$step] = $this->getCheckout()->getStepData($step); 
     } 

     return $steps; 
    } 

    /** 
    * Get active step 
    * 
    * @return string 
    */ 
    public function getActiveStep() 
    { 
     return $this->isCustomerLoggedIn() ? 'billing' : 'login'; 
    } 
} 

à ce qui suit:

class Mage_Checkout_Block_Onepage extends Mage_Checkout_Block_Onepage_Abstract 
{ 
    /** 
    * Get 'one step checkout' step data 
    * 
    * @return array 
    */ 
    public function getSteps() 
    { 
     $steps = array(); 

     if (!$this->isCustomerLoggedIn()) { 
      $steps['login'] = $this->getCheckout()->getStepData('login'); 
     } 

     $stepCodes = array('shipping','billing','shipping_method', 'payment', 'review'); 
// or new 
//$stepCodes = array('shipping','payment', 'review'); 

     foreach ($stepCodes as $step) { 
      $steps[$step] = $this->getCheckout()->getStepData($step); 
     } 
     return $steps; 
    } 
} 

Actualiser le cache et vérifier maintenant ..

Questions connexes