क्या कोई एक्सटेंशन, ओपन-सोर्स मैगेंटो मॉड्यूल, या ट्यूटोरियल हैं जो एक पेज चेकआउट के लिए एक कदम जोड़ना आसान बनाते हैं? मैंने इसके लिए कोर कोड पर कुछ समय के लिए पाला है और ऐसा लगता है कि बहुत सारी कठोर कोड जानकारी है।
क्या कोई एक्सटेंशन, ओपन-सोर्स मैगेंटो मॉड्यूल, या ट्यूटोरियल हैं जो एक पेज चेकआउट के लिए एक कदम जोड़ना आसान बनाते हैं? मैंने इसके लिए कोर कोड पर कुछ समय के लिए पाला है और ऐसा लगता है कि बहुत सारी कठोर कोड जानकारी है।
जवाबों:
इस प्रश्न का संक्षिप्त उत्तर "नहीं" होने के कारण समाप्त हुआ। एक उच्च स्तर से, एक नया चेकआउट कदम जोड़ने का मतलब है
एक कदम चेकआउट पृष्ठ पर एक नया ब्लॉक जोड़ना
उस ब्लॉक के पास एक कदम के रूप में खुद को पंजीकृत करना
उस ब्लॉक को एक प्रोटोटाइप ऑब्जेक्ट से कनेक्ट करें जिसने सभी इंटरैक्शन को संभाला है
ब्लॉक को एक कदम के रूप में सम्मिलित करने के लिए कई मुख्य मैगेंटो विधियों को फिर से लिखना
कुछ अजाक्स चालबाजी प्रगति सामान काम करने के लिए।
इसे कुल में कवर करना एकल स्टैक ओवरफ्लो प्रश्न के दायरे से परे है। एक अन्य प्रश्न में जुड़े ट्यूटोरियल में बहुत सारी चीजें हैं जिनकी आपको आवश्यकता होगी, और मैंने यह सब आसान बनाने के लिए एक नया वाणिज्यिक विस्तार भी बनाया ।
डिफ़ॉल्ट रूप से Magento कुछ चेकआउट चरण देता है। लेकिन कभी-कभी आपको भविष्य के संदर्भ के लिए ग्राहक से अतिरिक्त जानकारी जोड़ने की आवश्यकता होती है। एक सामान्य अनुरोधित अनुकूलन कस्टम चेक को डिफ़ॉल्ट चेकआउट प्रक्रिया में जोड़ना है। यह कोर फ़ाइलों को छूने के लिए अच्छा अभ्यास नहीं है। आप मॉड्यूल को ओवरराइड करके ऐसा कर सकते हैं। इस उदाहरण में Comapnyname Ipragmatech है और मॉड्यूल का नाम Checkoutstep है ।
Step1: चेकआउट प्रक्रिया में कस्टम चरण जोड़ें
Ipragmatech> Checkoutstep> Block> Onepage> Checkoutstep.php फ़ाइल खोलें और निम्नलिखित कोड लिखें
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();
}
}
स्टेप 2: चेकआउट प्रक्रिया में आप जो और जहां चाहते हैं, वह चरण जोड़ें
Ipragmatech> Checkoutstep> Block> Onepage> Checkoutstep.php फ़ाइल खोलें और निम्नलिखित कोड लिखें
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;
}
}
चरण 3: कस्टम फॉर्म के जमा किए गए मूल्य को पकड़ो और कस्टम फॉर्म के मूल्यों को सेट करें
Ipragmatech> Checkoutstep> नियंत्रकों> OnepageController.php को खोलें और निम्न फ़्यूकसेंट लिखें
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));
}
}
Step4: कस्टम फ़ॉर्म जानकारी सहेजें
जब checkout_onepage_controller_success_action इवेंट हुक कहा जाता है। Ipragmatech> Checkoutstep> Model> Observer.php खोलें और निम्नलिखित लिखें
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 - चेकआउट एक्सटेंशन में कस्टम फॉर्म जोड़ें अपनी ईकॉमर्स वेबसाइट के लिए चेकआउट प्रक्रिया में अतिरिक्त कदम जोड़ने के लिए एक पूर्ण समाधान है। यह व्यवस्थापक को CSV प्रारूप में कस्टम तालिका से डेटा निर्यात करने की अनुमति देता है।
इस मुफ्त एक्सटेंशन को पाने के लिए लिंक पर जाएँ http://www.magentocommerce.com/magento-connect/custom-form-in-heckoutout.html
हाँ यहाँ इस बारे में एक अच्छा ट्यूटोरियल है " http://excellencemagentoblog.com/magento-onestep-checkout-add-step "