এমন কোনও এক্সটেনশন, ওপেন-সোর্স ম্যাজেন্টো মডিউল বা টিউটোরিয়াল রয়েছে যা এক পৃষ্ঠার চেকআউটে একটি পদক্ষেপ যুক্ত করা আরও সহজ করে? আমি কয়েকবার এর জন্য মূল কোডটি দেখেছি এবং দেখে মনে হচ্ছে প্রচুর হার্ড কোডেড ধাপের তথ্য রয়েছে।
এমন কোনও এক্সটেনশন, ওপেন-সোর্স ম্যাজেন্টো মডিউল বা টিউটোরিয়াল রয়েছে যা এক পৃষ্ঠার চেকআউটে একটি পদক্ষেপ যুক্ত করা আরও সহজ করে? আমি কয়েকবার এর জন্য মূল কোডটি দেখেছি এবং দেখে মনে হচ্ছে প্রচুর হার্ড কোডেড ধাপের তথ্য রয়েছে।
উত্তর:
এই প্রশ্নের সংক্ষিপ্ত উত্তরটি "না" হয়ে শেষ হয়েছিল। একটি উচ্চ স্তর থেকে, একটি নতুন চেকআউট পদক্ষেপ যুক্ত মানে
এক ধাপ চেকআউট পৃষ্ঠায় একটি নতুন ব্লক যুক্ত করা হচ্ছে
যে ব্লক একটি পদক্ষেপ হিসাবে নিজেকে নিবন্ধভুক্ত
সেই ব্লকটিকে এমন কোনও প্রোটোটাইপ অবজেক্টের সাথে সংযুক্ত করুন যা সমস্ত মিথস্ক্রিয়া পরিচালনা করে
পদক্ষেপ হিসাবে ব্লকটি সন্নিবেশ করানোর জন্য বেশ কয়েকটি মূল ম্যাজেন্টো পদ্ধতি পুনর্লিখন
অগ্রগতিতে কাজ করার জন্য কিছু অজ্যাক্স ট্র্যাবেরি।
এটি সামগ্রিকভাবে আচ্ছাদন করা একটি একক স্ট্যাক ওভারফ্রো প্রশ্নের সুযোগের বাইরে। অন্য প্রশ্নের সাথে সংযুক্ত টিউটোরিয়ালটিতে আপনার যা প্রয়োজন তা অনেকগুলি রয়েছে এবং এগুলি আরও সহজ করার জন্য আমি একটি নতুন বাণিজ্যিক এক্সটেনশনও তৈরি করেছি ।
ডিফল্ট হিসাবে ম্যাজেন্টো কিছু চেকআউট পদক্ষেপ দেয়। তবে ভবিষ্যতের রেফারেন্সের জন্য আপনাকে গ্রাহকের কাছ থেকে অতিরিক্ত তথ্য যুক্ত করতে হবে। একটি সাধারণ অনুরোধিত কাস্টমাইজেশন হ'ল ডিফল্ট চেকআউট প্রক্রিয়াতে কাস্টম ফর্ম যুক্ত করা। কোর ফাইলগুলি স্পর্শ করার পক্ষে এটি ভাল অনুশীলন নয়। আপনি ওভাররাইডিং মডিউলগুলির মাধ্যমে এটি করতে পারেন। এই উদাহরণে Comapnyname হয় Ipragmatech এবং মডিউল নাম Checkoutstep ।
পদক্ষেপ 1: চেকআউট প্রক্রিয়াতে কাস্টম পদক্ষেপ যুক্ত করুন
Ipragmatech> Checkoutstep> ব্লক> 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> ব্লক> 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: কাস্টম ফর্মের জমা দেওয়া মানটি ধরুন এবং কাস্টম ফর্মের মান সেট করুন
আইপ্রেমেটেক> চেকআউটস্টেপ> কন্ট্রোলারস> 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));
}
}
পদক্ষেপ 4: কাস্টম ফর্ম তথ্য সংরক্ষণ করুন
যখন চেকআউট_নেজপেজ_কন্ট্রোলার_স্যাক্সেস_অ্যাকশন ইভেন্ট হুক বলা হয়। 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' );
}
}
}
}
ম্যাজেন্টো - চেকআউট এক্সটেনশনে কাস্টম ফর্ম যুক্ত করুন আপনার ইকমার্স ওয়েবসাইটের জন্য চেকআউট প্রক্রিয়াতে অতিরিক্ত পদক্ষেপ যুক্ত করার একটি সম্পূর্ণ সমাধান। এটি অ্যাডমিনকে সিএসভি ফর্ম্যাটে কাস্টম টেবিল থেকে ডেটা রফতানি করার অনুমতি দেয়।
এই নিখরচায় এক্সটেনশনটি পেতে লিঙ্কটি দেখুন: http://www.magentocommerce.com
হ্যাঁ এখানে এই সম্পর্কে একটি ভাল টিউটোরিয়াল আছে " http://excellencemagentoblog.com/magento-onestep-checkout-add-step "