Apakah ada ekstensi, modul Magento open-source, atau tutorial yang membuat menambahkan langkah ke checkout satu halaman lebih mudah? Saya telah menyodok kode inti untuk ini beberapa kali dan sepertinya ada banyak informasi langkah kode keras.
Apakah ada ekstensi, modul Magento open-source, atau tutorial yang membuat menambahkan langkah ke checkout satu halaman lebih mudah? Saya telah menyodok kode inti untuk ini beberapa kali dan sepertinya ada banyak informasi langkah kode keras.
Jawaban:
Jawaban singkat untuk pertanyaan ini akhirnya adalah "Tidak". Dari level tinggi, menambahkan langkah checkout baru berarti
Menambahkan Blok baru ke halaman checkout satu langkah
Memiliki blok itu mendaftar sendiri sebagai langkah
Hubungkan blok itu dengan objek prototipe yang menangani semua interaksi
Menulis ulang beberapa metode inti Magento untuk menyisipkan blok sebagai langkah
Beberapa tipuan ajax untuk membuat progres bekerja.
Mencakup ini secara total berada di luar cakupan pertanyaan Stack Overflow. Tutorial yang ditautkan dalam pertanyaan lain memiliki banyak hal yang Anda perlukan, dan saya juga membuat ekstensi komersial baru untuk mempermudah semua ini .
Secara default magento memberikan beberapa langkah checkout. Tetapi kadang-kadang Anda perlu menambahkan informasi tambahan dari pelanggan untuk referensi di masa mendatang. Kustomisasi yang diminta umum adalah menambahkan Formulir Kustom dalam proses checkout default. Ini bukan praktik yang baik untuk menyentuh file inti. Anda dapat melakukan ini melalui Modul utama. Dalam contoh ini Comapnyname adalah Ipragmatech dan nama Module adalah Checkoutstep .
Langkah1: Tambahkan langkah Kustom dalam proses checkout
Buka Ipragmatech> Checkoutstep> Blokir> Onepage> Checkoutstep.php file dan tulis kode berikut
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();
}
}
Step2: Tambahkan langkah mana dan di mana Anda inginkan dalam proses checkout
Buka Ipragmatech> Checkoutstep> Blokir> Onepage> Checkoutstep.php file dan tulis kode berikut
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;
}
}
Langkah3: Raih nilai yang diajukan dari formulir kustom dan atur nilai-nilai formulir kustom
Buka ipragmatech> Checkoutstep> controllers> OnepageController.php dan tuliskan fucntion berikut
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));
}
}
Langkah4: Simpan informasi Formulir Kustom
Saat checkout_onepage_controller_success_action, kail acara dipanggil. Buka Ipragmatech> Checkoutstep> Model> Observer.php dan tulis yang berikut ini
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 - Tambahkan Formulir Kustom di Ekstensi Checkout adalah solusi lengkap untuk menambahkan langkah ekstra dalam proses Checkout untuk situs web e-niaga Anda. Itu memungkinkan admin untuk mengekspor data dari tabel khusus dalam format CSV.
Kunjungi tautan untuk mendapatkan ekstensi gratis ini http://www.magentocommerce.com/magento-connect/custom-form-in-checkout.html
ya ada tutorial bagus tentang ini di sini " http://excellencemagentoblog.com/magento-onestep-checkout-add-step "