ওয়ান পেজ চেকআউটে একটি পদক্ষেপ যুক্ত করা হচ্ছে


18

এমন কোনও এক্সটেনশন, ওপেন-সোর্স ম্যাজেন্টো মডিউল বা টিউটোরিয়াল রয়েছে যা এক পৃষ্ঠার চেকআউটে একটি পদক্ষেপ যুক্ত করা আরও সহজ করে? আমি কয়েকবার এর জন্য মূল কোডটি দেখেছি এবং দেখে মনে হচ্ছে প্রচুর হার্ড কোডেড ধাপের তথ্য রয়েছে।


5
দুর্ভাগ্যক্রমে চেকআউট কোডটি খুব নমনীয় বলে মনে হচ্ছে না, প্রচুর তথ্য টেমপ্লেট থেকে জাভাস্ক্রিপ্ট অ্যাকর্ডিয়ান ফাইলগুলিতে হার্ডকড করা আছে।
অ্যালান ম্যাকগ্রিগোর

1
আমি এই টিউটোরিয়ালটি অনুসরণ করেছি এবং অনপেজ চেকআউটটিতে একটি নতুন পদক্ষেপ যুক্ত করতে সক্ষম হয়েছি। যাইহোক এই পদক্ষেপটি অর্জন করতে প্রচুর কোর ফাইলগুলিকে ওভাররাইড করা দরকার। এই ইচ্ছার সহায়ক আশা করি excellencemagentoblog.com/magento-onestep-checkout-add-step
Sukeshini

উত্তর:


6

এই প্রশ্নের সংক্ষিপ্ত উত্তরটি "না" হয়ে শেষ হয়েছিল। একটি উচ্চ স্তর থেকে, একটি নতুন চেকআউট পদক্ষেপ যুক্ত মানে

  1. এক ধাপ চেকআউট পৃষ্ঠায় একটি নতুন ব্লক যুক্ত করা হচ্ছে

  2. যে ব্লক একটি পদক্ষেপ হিসাবে নিজেকে নিবন্ধভুক্ত

  3. সেই ব্লকটিকে এমন কোনও প্রোটোটাইপ অবজেক্টের সাথে সংযুক্ত করুন যা সমস্ত মিথস্ক্রিয়া পরিচালনা করে

  4. পদক্ষেপ হিসাবে ব্লকটি সন্নিবেশ করানোর জন্য বেশ কয়েকটি মূল ম্যাজেন্টো পদ্ধতি পুনর্লিখন

  5. অগ্রগতিতে কাজ করার জন্য কিছু অজ্যাক্স ট্র্যাবেরি।

এটি সামগ্রিকভাবে আচ্ছাদন করা একটি একক স্ট্যাক ওভারফ্রো প্রশ্নের সুযোগের বাইরে। অন্য প্রশ্নের সাথে সংযুক্ত টিউটোরিয়ালটিতে আপনার যা প্রয়োজন তা অনেকগুলি রয়েছে এবং এগুলি আরও সহজ করার জন্য আমি একটি নতুন বাণিজ্যিক এক্সটেনশনও তৈরি করেছি


4

ডিফল্ট হিসাবে ম্যাজেন্টো কিছু চেকআউট পদক্ষেপ দেয়। তবে ভবিষ্যতের রেফারেন্সের জন্য আপনাকে গ্রাহকের কাছ থেকে অতিরিক্ত তথ্য যুক্ত করতে হবে। একটি সাধারণ অনুরোধিত কাস্টমাইজেশন হ'ল ডিফল্ট চেকআউট প্রক্রিয়াতে কাস্টম ফর্ম যুক্ত করা। কোর ফাইলগুলি স্পর্শ করার পক্ষে এটি ভাল অনুশীলন নয়। আপনি ওভাররাইডিং মডিউলগুলির মাধ্যমে এটি করতে পারেন। এই উদাহরণে 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


0

হ্যাঁ এখানে এই সম্পর্কে একটি ভাল টিউটোরিয়াল আছে " http://excellencemagentoblog.com/magento-onestep-checkout-add-step "


4
এই ইউআরএল শেষে যা পাওয়া যায় তা আপনাকে একটু ব্যাখ্যা করা উচিত। একক লিঙ্কের উত্তরগুলি সেরা উত্তর নয়।
মারিয়াস

ইউআরএল নিজেই বলেছে ম্যাজেন্টো-জেনস্টেপ-চেকআউট-অ্যাড-স্টেপ এবং এটিই প্রশ্নটি জিজ্ঞাসা করছে।
ধনপত সরণ

5
আমি আপনার সাথে একমত, লিঙ্কটিতে ব্যাখ্যাটি দুর্দান্ত, তবে এসও ওয়েবসাইটগুলিতে উত্তরগুলি কেমন হওয়া উচিত তা একবার দেখুন: meta.stackexchange.com/a/8259/224252 এবং এটি: magento.stackexchange.com/help/how -তে-উত্তর
মারিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.