2012-07-14 13 views
5

Sto provando a inviare un utente per il checkout a livello di codice in Magento. Posso inviarli a $this->_redirect('checkout/onepage'); ma se hanno una sorta di estensione di checkout di terze parti non userò quella giusta. C'è un modo per ottenere l'url di checkout predefinito per il sito e reindirizzare lì?Come ottengo l'url di checkout predefinito per un negozio Magento?

+0

Nel carrello.phtml, ha ' getMethods (' metodi ') come $ metodo):?> ', che elenca tutti i metodi di pagamento disponibili per il sito. Se 'getMethods()' restituisce solo un metodo, allora c'è un URL di checkout predefinito. Cosa succede se restituisce più di un metodo? – kiatng

risposta

4

Il collegamento di checkout predefinito viene restituito dalla funzione getCheckoutUrl() della classe Mage_Checkout_Block_Onepage_Link. Se è abbastanza semplice:

public function getCheckoutUrl() 
{ 
    return $this->getUrl('checkout/onepage', array('_secure'=>true)); 
} 

estensioni 3rd party molto probabilmente ignorare questa classe (ho controllato OneStepCheckout 1.4 e funziona come questo).

+1

Sembra che sia esattamente ciò di cui ho bisogno. Tuttavia, quando creo un nuovo oggetto Mage_Checkout_Block_Onepage_Link mi dice che la funzione non è definita. – smokingoyster

+3

Ho finito con l'utilizzo di questo in Front Controller 'Mage :: helper ('checkout/url') -> getCheckoutUrl()' – smokingoyster

+0

Questo non funzionerà bene se il sito utilizza solo il controllo multishipping. – kiatng

19

si può provare con

$checkout_link = Mage::helper('checkout/url')->getCheckoutUrl(); 

questo link ritorno cassa in tutte le condizioni

  • durante l'utilizzo di eventuali estensioni come OnePagecheckout o OneStepcheckout
  • se il prolungamento sono stati utilizzati restituisce semplicemente la base url di check-out
+0

Questo è l'approccio più corretto. Nice – bla0009

+1

Non è vero che 'Mage :: helper ('checkout/url') -> getCheckoutUrl();' restituisce il link checkout in tutte le condizioni. Restituisce sempre l'URL di checkout onepage: '$ this-> getUrl ('checkout/onepage', array ('_ secure' => true));' Quindi, non funzionerà bene se il sito utilizza solo il controllo multishipping. – kiatng

+0

Sono d'accordo che non sempre funziona. Per noi, con Magento 1.9, restituisce http: // /onestepcheckout/e dopo aver provato a reindirizzare a quell'URL, Magento dice "Il controllo di una pagina è disabilitato." –

Problemi correlati