Czy są jakieś rozszerzenia, moduły Magento typu open source lub samouczki, które ułatwiają dodanie kroku do kasy na jednej stronie? Kilka razy nacisnąłem na kod podstawowy i wygląda na to, że jest dużo zakodowanych informacji o krokach.
Czy są jakieś rozszerzenia, moduły Magento typu open source lub samouczki, które ułatwiają dodanie kroku do kasy na jednej stronie? Kilka razy nacisnąłem na kod podstawowy i wygląda na to, że jest dużo zakodowanych informacji o krokach.
Odpowiedzi:
Krótka odpowiedź na to pytanie okazała się „nie”. Z wysokiego poziomu oznaczało dodanie nowego etapu kasy
Dodanie nowego bloku do strony kasowania w jednym kroku
Posiadanie tego bloku rejestruje się jako krok
Połącz ten blok z prototypowym obiektem, który obsługiwał wszystkie interakcje
Przepisanie kilku podstawowych metod Magento, aby wstawić blok jako krok
Trochę oszustw ajax, aby działały postępy.
Objęcie tego łącznie wykracza poza zakres pojedynczego pytania dotyczącego przepełnienia stosu. Samouczek połączony z innym pytaniem zawiera wiele potrzebnych informacji, a także stworzyłem nowe rozszerzenie komercyjne, aby ułatwić to wszystko .
Domyślnie magento podaje kilka kroków do kasy. Ale czasami musisz dodać dodatkowe informacje od klienta, aby móc z nich skorzystać w przyszłości. Często wymaganym dostosowaniem jest dodanie niestandardowego formularza w domyślnym procesie realizacji transakcji. Nie jest dobrą praktyką dotykanie podstawowych plików. Możesz to zrobić poprzez przesłanianie modułów. W tym przykładzie Comapnyname to Ipragmatech, a nazwa modułu to Checkoutstep .
Krok 1: Dodaj krok niestandardowy w procesie realizacji transakcji
Otwórz plik Ipragmatech> Checkoutstep> Block> Onepage> Checkoutstep.php i napisz następujący kod
class Ipragmatech_Checkoutstep_Block_Onepage_Checkoutstep extends Mage_Checkout_Block_Onepage_Abstract
{
protected function _construct()
{
$this->getCheckout()->setStepData('checkoutstep', array(
'label' => Mage::helper('checkout')->__('Invitation to participation'),
'is_show' => true
));
parent::_construct();
}
}
Krok 2: Dodaj kroki, które i gdzie chcesz w procesie realizacji transakcji
Otwórz plik Ipragmatech> Checkoutstep> Block> Onepage> Checkoutstep.php i napisz następujący kod
class Ipragmatech_Checkoutstep_Block_Onepage extends Mage_Checkout_Block_Onepage
{
public function getSteps()
{
$steps = array();
if (!$this->isCustomerLoggedIn()) {
$steps['login'] = $this->getCheckout()->getStepData('login');
}
$stepCodes = array('billing', 'shipping', 'shipping_method', 'payment', 'checkoutstep', 'review');
foreach ($stepCodes as $step) {
$steps[$step] = $this->getCheckout()->getStepData($step);
}
return $steps;
}
}
Krok 3: Chwyć przesłaną wartość formularza niestandardowego i ustaw wartości formularza niestandardowego
Otwórz ipragmatech> Checkoutstep> kontrolery> OnepageController.php i napisz następującą funkcję
public function saveCheckoutstepAction()
{
$this->_expireAjax();
if ($this->getRequest()->isPost()) {
//Grab the submited value
$_entrant_name = $this->getRequest()->getPost('entrant_name',"");
$_entrant_phone = $this->getRequest()->getPost('entrant_phone',"");
$_entrant_email = $this->getRequest()->getPost('entrant_email',"");
$_permanent_address = $this->getRequest() ->getPost('permanent_address',"");
$_address = $this->getRequest()->getPost('local_address',"");
Mage::getSingleton('core/session') ->setIpragmatechCheckoutstep(serialize(array(
'entrant_name' =>$_entrant_name,
'entrant_phone' =>$_entrant_phone,
'entrant_email' =>$_entrant_email,
'permanent_address' =>$_permanent_address,
'address' =>$_address
)));
$result = array();
$redirectUrl = $this->getOnePage()->getQuote()->getPayment() ->getCheckoutRedirectUrl();
if (!$redirectUrl) {
$this->loadLayout('checkout_onepage_review');
$result['goto_section'] = 'review';
$result['update_section'] = array(
'name' => 'review',
'html' => $this->_getReviewHtml()
);
}
if ($redirectUrl) {
$result['redirect'] = $redirectUrl;
}
$this->getResponse()->setBody(Zend_Json::encode($result));
}
}
Krok 4: Zapisz informacje o formularzu niestandardowym
Gdy wywoływany jest checkout_onepage_controller_success współdziałanie zdarzeń. Otwórz Ipragmatech> Checkoutstep> Model> Observer.php i napisz następujące
class Ipragmatech_Checkoutstep_Model_Observer {
const ORDER_ATTRIBUTE_FHC_ID = 'checkoutstep';
public function hookToOrderSaveEvent() {
if (Mage::helper('checkoutstep')->isEnabled()) {
$order = new Mage_Sales_Model_Order ();
$incrementId = Mage::getSingleton ( 'checkout/session' )->getLastRealOrderId ();
$order->loadByIncrementId ( $incrementId );
// Fetch the data
$_checkoutstep_data = null;
$_checkoutstep_data = Mage::getSingleton ( 'core/session' )->getIpragmatechCheckoutstep ();
$model = Mage::getModel ( 'checkoutstep/customerdata' )->setData ( unserialize ( $_checkoutstep_data ) );
$model->setData ( "order_id",$order["entity_id"] );
try {
$insertId = $model->save ()->getId ();
Mage::log ( "Data successfully inserted. Insert ID: " . $insertId, null, 'mylog.log');
} catch ( Exception $e ) {
Mage::log ( "EXCEPTION " . $e->getMessage (), null, 'mylog.log' );
}
}
}
}
Magento - Dodaj niestandardowy formularz w rozszerzeniu kasy to kompletne rozwiązanie umożliwiające dodanie dodatkowego kroku w procesie realizacji transakcji w witrynie e-commerce. Umożliwia administratorowi eksport danych z niestandardowej tabeli w formacie CSV.
Odwiedź link, aby uzyskać to bezpłatne rozszerzenie http://www.magentocommerce.com/magento-connect/custom-form-in-checkout.html
tak, tutaj jest dobry tutorial na ten temat „ http://excellencemagentoblog.com/magento-onestep-checkout-add-step ”