de_DEus

Magento: Import von Bundle-Produkten mit AvS_FastSimpleImport

Der Import von Bundle-Produkten (auch “Bündel-Produkte” genannt) ist mit dem Magento-Standard nicht möglich – weder über eine API, noch über ImportExport oder gar DataFlow. Seit Kurzem ist es über mein Modul AvS_FastSimpleImport dennoch möglich. Dieser Artikel beschreibt das notwendige Vorgehen zum Import von Bundle-Produkten.

Über AvS_FastSimpleImport

Das Modul ist unter http://www.avs-webentwicklung.de/nc/blog/artikel/magento-import-mit-der-neuen-schnellen-import-schnittstelle-fuer-produkte-und-kunden.html ausführlich beschreiben. Kurz gesagt handelt es sich um eine Möglichkeit, die schnelle Magento-Schnittstelle “ImportExport” über beliebige PHP-Skripte und -module anzusprechen und Produkt- und Kundendaten in Magento zu importieren. Die Daten werden dabei in einem Array erwartet, statt in CSV-Dateien, wie im Original. Das Array muss dabei nach einem bestimmten Format aufgebaut sein, das ich unter http://www.webguys.de/magento/turchen-19-produktimport-mit-der-importexport-schnittstelle/ beschrieben habe. Ein einfaches “Simple Product” kann dabei wie folgt importiert werden:

Selbstverständlich können auch tausende Produkte in einem Array übergeben werden.

Das Modul kann man kostenlos bei GitHub herunterladen. Dort sind auch alle Funktionen kurz beschrieben.

Bundle-Produkte

Ein Bundle fasst mehrere Unterprodukte zu einem zusammen. Ein aussagekräftiges Beispiel findet sich im offiziellen Magento-Demo-Shop beim Produkt My Computer. Ein Bundle beinhaltet dabei eine oder mehrere Optionen (beispielsweise “Case” im Beispiel), die jeweils eine Gruppe von Produkten beinhalten. Je nach Art der Optionsauswahl (Radio-Button, Dropdown, Checkboxen, Mehrfachauswahl) wählt der Kunde kein, ein oder mehrere Unterprodukte. Der Preis wird “on the fly” als Summe der Preise der ausgewählten Produkte berechnet.

Backend-Ansicht eines Bundle-Produktes

Eine häufige Verwendung ist, dem Kunden mehrere Produkte gemeinsam zum günstigeren Festpreis anzubieten, ohne dass der Kunde hier Unterprodukte auswählen darf/muss. Hierfür wird das Feld “Benutzerdefinierte Menge” auf “Nein” gestellt und die gewünschten Produkte als “Standard” definiert. Der Preis sollte dann natürlich nicht dynamisch kalkuliert werden, hierfür gibt es eine Einstellung im Tab “Preise”.

Der Import

Diese Grundlagen sollten bekannt sein, wenn man Bundle-Produkte importieren will. Alle oben aufgeführten Einstellungen kann man über den Import treffen. Sowohl die Optionen als auch die Unterprodukte können mehrfach vorkommen. Außerdem müssen dem Produkt zwei zusätzliche Attribute zugewiesen werden: “price_view” und “price_type”. Ein Beispiel sagt mehr als tausend Worte:

Hier wird eine Option mit zwei Unterprodukten eingefügt. Für weitere Optionen können ebenso weitere Zeilen eingefügt werden. Wichtig ist, dass die Zuordnung eines Unterprodukts über das Feld “_bundle_option_title” erfolgt – ist dieses bei zwei Unterprodukten gleich, landen sie auch in der gleichen Option.

Eine kurze Erläuterung der einzelnen Felder:

Produktspezifische Felder:

  • _type: Für Bundle-Produkte “bundle”.
  • price_view: Bestimmt, wie der Preis dargestellt wird – entweder als “ab”-Preis (Wert “As low as”) oder als Preisspanne mit dem niedrigsten und höchsten Preis (Wert “Price Range”).
  • price_type: Fester Preis (Wert 1) oder dynamischer Preis (Wert 0)

Optionen:

  • _bundle_option_required: Bestimmt, ob die Option eine Pflichtoption ist. Werte sind 0 (“Nein”) oder 1 (“Ja”).
  • _bundle_option_position: Die Position der Option
  • _bundle_option_type: Der Typ der Option. Mögliche Werte: radio, checkbox, select, multi.
  • _bundle_option_title: Der Titel der Option (z.B. “Case” im Beispiel “My Computer”). Lokalisierung ist hier nicht möglich.

Unterprodukte:

  • _bundle_product_sku: Die Artikelnummer des Unterproduktes
  • _bundle_product_position: Die Position des Artikels innerhalb der Artikel dieser Option
  • _bundle_product_is_default: Bestimmt, ob dieses Produkt vorausgewählt ist (1) oder nicht (0)
  • _bundle_product_qty: Die voreingestellte Menge des Produktes
  • _bundle_product_can_change_qty: Bestimmt, ob die voreingestellte Menge vom Kunden angepasst werden kann (1) oder nicht (0)

Dank

Mein Dank für die Umsetzung dieser Funktion geht an Daniël Sloof (@daniel_sloof auf Twitter und @danslo auf GitHub).

Andreas von Studnitz

Autor: Andreas von Studnitz

Andreas von Studnitz ist Diplom-Informatiker, Magento-Entwickler und Geschäftsführer von integer_net. Seine Schwerpunkte sind Schnittstellenentwicklung, Backendentwicklung, Beratung und Entwicklerschulungen. Seit 2011 ist er Magento Certified Developer, seit 2014 Magento Certified Solution Specialist.

Mehr Informationen

Dieser Beitrag hat 0 Kommentare

Einen Kommentar hinterlassen