2010-06-24 17 views
6

मेरे पास Magento में कुछ सरल कैटलॉग उत्पाद हैं, इसलिए मेरे पास उनके SKUs & आईडी हैं। अब मैं बंडल आइटम्स के "bundle_options" & "bundle_selections" सरणी तत्वों का उपयोग करके एक बंडल उत्पाद बनाना चाहता हूं, जिसका उपयोग ऑब्जर्वर क्लास में Magento Admin कोडिंग द्वारा किया जाता है।सरल आइटमों के एसकेयू/आईडी का उपयोग करके Magento में प्रोग्रामिक रूप से बंडल उत्पाद जोड़ें

इसके अलावा पर्यवेक्षक कक्षा में, वहाँ दो कार्यों की विधि कॉल कर रहे हैं "setBundleOptionsData()" & "setBundleSelectionsData()", जिसका के लिए मैं किसी भी समारोह परिभाषा ढूँढने में सक्षम नहीं हूँ।

कृपया यहां कोई पेशेवर पोस्ट करें, क्योंकि मुझे इस काम को करने का कुछ उचित तरीका चाहिए। यदि इसकी आवश्यकता है, मॉड्यूल को ओवरराइड करना या घटनाओं का उपयोग करना, तो मैं करूँगा, लेकिन मुझे वास्तव में पेशेवर मदद की ज़रूरत है। अग्रिम धन्यवाद।

संपादित करें: -
दो तरीकों के बारे में ऊपर उल्लेख किया "setBundleOptionsData()" & "setBundleSelectionsData()", क्या मैं लगभग कुछ कर रहा हूँ कि वे पीएचपी जादू विधियों में से किसी प्रकार का प्रयोग कर रहे हैं, लेकिन मैं जहां पता नहीं है है इन जादू तरीकों का मुख्य तर्क लिखा है?

कृपया कोई भी सही उत्तर प्रदान करें। कोई भी मदद बहुत ही सराहनीय होगी।

+0

मैं अभी भी कुछ शरीर प्रदान करने के लिए इंतज़ार कर रहा हूँ कुछ और उपयोगी जानकारी। –

+0

सही तरीके से, बंडल उत्पादों को प्रोग्रामेटिक रूप से जोड़ने के तरीके के बारे में अधिक मूल्यवान जानकारी के लिए कृपया इस लिंक को देखें। http://stackoverflow.com/questions/6161128/magento-programatically-added-bundle-product-isnt-showing-up-in-frontend/6161246#6161246 –

उत्तर

0

मैं इसके लिए किसी भी वेब सेवा का उपयोग नहीं कर रहा हूं। मैं बस का इस्तेमाल किया है निम्न विधियों बंडल उत्पाद है, जो कर रहे हैं के लिए विशेष रूप मतलब: -

  1. setBundleOptionsData()
  2. setBundleSelectionsData()
  3. setCanSaveBundleSelections (सच)

पहली विधि के लिए , बंडल विकल्प का विवरण विधि को पैरामीटर के रूप में पैरामीटर के रूप में प्रदान किया जाता है। इसी प्रकार, दूसरी विधि "setBundleSelectionsData()" के लिए, हम इस विधि में बंडल चयन का विवरण सरणी के रूप में पैरामीटर के रूप में प्रदान कर रहे हैं।

Magento में किसी भी बंडल उत्पाद को जोड़ने के लिए यह मुख्य तर्क है। उम्मीद है कि यह किसी भी नए शौक में मदद करता है !!!


को उचित तरीके से बंडल उत्पाद निर्माण पर अधिक जानकारी के लिए this link की जांच करें।

2
  $MyOptions[0] = array (
      'title' => 'My Bad','default_title' => 'My Bad', 
      'delete' => '', 
      'type' => 'radio', 
      'required' => 0, 
      'position' => 0 
     ); 

या

$ optionModel = दाना :: getModel ('बंडल/विकल्प') -> addSelection ('op111') -> setTitle ('op111') -> setDefaultTitle (' op111 ') -> setParentId ($ product_id) -> setStoreId ($ product-> getStoreId()); $ विकल्प मॉडल-> सहेजें();

+0

धन्यवाद दोस्त, आपका दूसरा समाधान मेरे लिए काम करता है। –

4

इस के साथ एक मुश्किल समय हो रही थी, लेकिन पाया गया कि यह मेरे कूबड़ से अधिक हो गया है:

   $items[] = array(
       'title' => 'test title', 
       'option_id' => '', 
       'delete' => '', 
       'type' => 'radio', 
       'required' => 1, 
       'position' => 0); 

      $selections = array(); 
      $selectionRawData[] = array(
       'selection_id' => '', 
       'option_id' => '', 
       'product_id' => '159', 
       'delete' => '', 
       'selection_price_value' => '10', 
       'selection_price_type' => 0, 
       'selection_qty' => 1, 
       'selection_can_change_qty' => 0, 
       'position' => 0); 
      $selections[] = $selectionRawData; 

      $productId = 182; 
      $product = Mage::getModel('catalog/product') 
      ->setStoreId(0); 
      if ($productId) { 
       $product->load($productId); 
      } 
      Mage::register('product', $product); 
      Mage::register('current_product', $product); 
      $product->setCanSaveConfigurableAttributes(false); 
      $product->setCanSaveCustomOptions(true); 

      $product->setBundleOptionsData($items); 
      $product->setBundleSelectionsData($selections); 
      $product->setCanSaveCustomOptions(true); 
      $product->setCanSaveBundleSelections(true); 

      $product->save(); 

विशेष रूप से,

   Mage::register('product', $product); 
      Mage::register('current_product', $product); 

था कुंजी

संपादित :: यह भी लगता है कि कई विकल्प/चयन जोड़ने की कोशिश करते समय एक असाधारणता है। setBundleOptionsData एक सरणी लेता विकल्प यानी

Array(
[1] => Array 
    (
     [title] => Option 2 
     [option_id] => 
     [delete] => 
     [type] => select 
     [required] => 1 
     [position] => 
    ) 

[0] => Array 
    (
     [title] => Option 1 
     [option_id] => 
     [delete] => 
     [type] => select 
     [required] => 1 
     [position] => 
    )) 

और फिर चयन उनके अनुक्रमित विकल्प सरणी के लिए इसी के साथ चयन सरणियों की एक सरणी होगा:

Array(
[1] => Array 
    (
     [2] => Array 
      (
       [selection_id] => 
       [option_id] => 
       [product_id] => 133 
       [delete] => 
       [selection_price_value] => 0.00 
       [selection_price_type] => 0 
       [selection_qty] => 1 
       [selection_can_change_qty] => 1 
       [position] => 0 
      ) 

     [3] => Array 
      (
       [selection_id] => 
       [option_id] => 
       [product_id] => 132 
       [delete] => 
       [selection_price_value] => 0.00 
       [selection_price_type] => 0 
       [selection_qty] => 1 
       [selection_can_change_qty] => 1 
       [position] => 0 
      ) 

    ) 

[0] => Array 
    (
     [0] => Array 
      (
       [selection_id] => 
       [option_id] => 
       [product_id] => 206 
       [delete] => 
       [selection_price_value] => 0.00 
       [selection_price_type] => 0 
       [selection_qty] => 1 
       [selection_can_change_qty] => 1 
       [position] => 0 
      ) 

     [1] => Array 
      (
       [selection_id] => 
       [option_id] => 
       [product_id] => 159 
       [delete] => 
       [selection_price_value] => 0.00 
       [selection_price_type] => 0 
       [selection_qty] => 1 
       [selection_can_change_qty] => 1 
       [position] => 0 
      ) 

    )) 
+0

धन्यवाद एक टन प्रिय, तुमने मुझे एक विशाल अराजकता से बचा लिया। विशेष रूप से कई विकल्पों और उत्पादों के लिए कोड जीवन उद्धारक था। बहुत बहुत धन्यवाद। –