2010-06-24 1 views
6

Ich habe einige einfache Katalog-Produkte in Magento, so habe ich ihre SKUs & IDs. Jetzt möchte ich ein Bundled-Produkt mit den Array-Elementen "bundle_options" & "bundle_selections" der Bundle-Items erstellen, die von der Magento Admin-Programmierung in seiner Observer-Klasse verwendet werden.Programmpaket hinzufügen Produkte in Magento, mit der Artikelnummer/ID von einfachen Artikeln

Auch in der Observer-Klasse gibt es Methodenaufrufe von zwei Funktionen „setBundleOptionsData()“ & „setBundleSelectionsData()“, für das ich bin nicht in der Lage jede Funktionsdefinition zu finden.

Bitte irgendeinen professionellen Posten hier, weil ich eine richtige Art, dieses Ding zu tun brauche. Wenn es nötig ist, Module zu überschreiben oder Ereignisse zu verwenden, werde ich tun, aber ich brauche wirklich professionelle Hilfe. Vielen Dank im Voraus.

Edit: -
In Bezug auf die beiden oben genannten Methoden „setBundleOptionsData()“ & „setBundleSelectionsData()“, was ich fast sicher bin, ist, dass sie irgendeine Art von PHP magische Methoden verwenden, aber ich weiß nicht, wo Die Hauptlogik dieser magischen Methoden wird geschrieben?

Bitte jemand geben Sie eine richtige Antwort. Jede Hilfe wird sehr geschätzt.

+0

ich noch am waiting für einige Körper zu schaffen, einige hilfreiche Informationen. –

+0

Klicken Sie auf diesen Link, um weitere Informationen zum programmgesteuerten Hinzufügen von Bundle-Produkten zu erhalten. http://stackoverflow.com/questions/6161128/magento-programatically-added-bundle-product-isnt-showing-up-in-frontend/6161246#6161246 –

Antwort

0

Ich verwende dafür keine Web Services. Ich habe verwendet einfach die folgenden Verfahren speziell für die gebündelten Produkte gemeint, die da sind: -

  1. setBundleOptionsData()
  2. setBundleSelectionsData()
  3. setCanSaveBundleSelections (true)

Für die erste Methode Die Details der Bündeloptionen werden der Methode als Parameter in Form eines Arrays zur Verfügung gestellt. In ähnlicher Weise stellen wir für die zweite Methode "setBundleSelectionsData()" dieser Methode die Details der Bündelauswahl als Parameter in Form eines Arrays zur Verfügung.

Dies ist die Hauptlogik für das Hinzufügen von gebündelten Produkten in Magento. Hoffe das hilft jedem Neuling !!!


Bitte überprüfen this link für weitere Details über Bundle Produkterstellung in einem richtigen Weg.

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

oder

$ optionModel = Mage :: getModel ('Bündel/Option') -> addSelection ('OP111') -> setTitle ('OP111') -> setDefaultTitle (‘ op111 ') -> setParentId ($ product_id) -> setStoreId ($ produkt-> getStoreId()); $ optionModel-> save();

+0

Danke Kumpel, Ihre zweite Lösung arbeitete für mich. –

4

war eine harte Zeit mit diesem hat, fand aber, dass dies hat mich über den Buckel:

   $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(); 

Insbesondere die

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

war der Schlüssel

EDIT :: Es sieht auch so aus, als ob es eine Besonderheit beim Versuch gibt, mehrere Optionen/Auswahlen hinzuzufügen. Die setBundleOptionsData nimmt eine Reihe von Optionen

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] => 
    )) 

dh Und dann der Auswahl wird eine Reihe von Auswahlmöglichkeiten Arrays mit ihrem Indizes entsprechend den Optionsarray sein:

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

Dank einer TON Liebe, du rettest mich aus einem riesigen Chaos. Vor allem Code für mehrere Optionen und Produkte war Lebensretter. Danke vielmals. –

Verwandte Themen