Produktvarianten / abhängige Attribute

14.03.2017 09:17 #1
Andi
Aus Lutherstadt Eisleben
73 Beiträge

Produktvarianten / abhängige Attribute

Hallo Herr Schmidt,

langsam verstehe ich den Aufbau des Contao Produktshops. Soweit so gut. :)

Wie funktioniert das mit den (abhängigen) Varianten auf dem Produktleser? Im Modul Bestellformular für den Produktleser ist das Feld "booking_legend" immernoch leer, obwohl ich Varianten (z.B. Farbe,Größe) im Produkt selbst schon zugewiesen habe.

Desweiteren fehlt mir auch das Varianten-Icon im Backend auf dem jeweiligen Produkt. Gibt es hierzu eine Anleitung?

Im Demo Shop sind nur Checkboxen und z.b. keine abhänigen Select-Felder.

Danke!

14.03.2017 09:23 #2
Andi
Aus Lutherstadt Eisleben
73 Beiträge

Jetzt habe ich in den Einstellungen das Feld Varianten benutzen gefunden.

Nachdem ich es aktiviert habe und meine bereits angelegten Varianten zuweisen wollte trat der Fehler auf:

Fatal error: Uncaught exception Exception with message Query error: Unknown column 'ausfuehrung' in 'field list' (SELECT SUM(CASE WHEN ausfuehrung != '' AND ausfuehrung != 'a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}' THEN 1 ELSE 0 END) AS ausfuehrung,SUM(CASE WHEN standard != '' AND standard != 'a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}' THEN 1 ELSE 0 END) AS standard,SUM(CASE WHEN masse != '' AND masse != 'a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}' THEN 1 ELSE 0 END) AS masse,SUM(CASE WHEN masse2 != '' AND masse2 != 'a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}' THEN 1 ELSE 0 END) AS masse2,SUM(CASE WHEN producer != '' AND producer != 'a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}' THEN 1 ELSE 0 END) AS producer,SUM(CASE WHEN mark != '' AND mark != 'a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}' THEN 1 ELSE 0 END) AS mark,SUM(CASE WHEN color != '' AND color != 'a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}' THEN 1 ELSE 0 END) AS color,SUM(CASE WHEN weight != '' AND weight != 'a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}' THEN 1 ELSE 0 END) AS weight,SUM(CASE WHEN dimension != '' AND dimension != 'a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}' THEN 1 ELSE 0 END) AS dimension FROM tl_product_variant WHERE pid = '1') thrown in system/modules/core/library/Contao/Database/Statement.php on line 295

#0 system/modules/core/library/Contao/Database/Statement.php(264): Contao\Database\Statement->query()
#1 system/cache/dca/tl_product_variant.php(171): Contao\Database\Statement->execute('1')
#2 system/modules/core/library/Contao/DcaLoader.php(76): include('/Applications/M...')
#3 system/modules/core/library/Contao/Controller.php(1298): Contao\DcaLoader->load(false)
#4 composer/vendor/codefog/contao-haste/library/Haste/Model/Relations.php(288): Contao\Controller::loadDataContainer('tl_product_vari...')
#5 composer/vendor/codefog/contao-haste/library/Haste/Model/Relations.php(362): Haste\Model\Relations->loadDataContainers()
#6 system/modules/core/drivers/DC_Table.php(1531): Haste\Model\Relations->cleanRelatedRecords(Object(Contao\DC_Table), 80)
#7 system/modules/core/drivers/DC_Table.php(1584): Contao\DC_Table->delete(true)
#8 system/modules/core/classes/Backend.php(650): Contao\DC_Table->deleteAll()
#9 system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('product_setting...')
#10 contao/main.php(20): Contao\BackendMain->run()
#11 {main}
14.03.2017 11:32 #3
Andi
Aus Lutherstadt Eisleben
73 Beiträge

Nachdem ich das ganze zurückgerollt habe, konnte ich das jetzt nachstellen.

Wenn man die Varianten anlegt und anschließend "für Varianten nutzen" deaktiviert, verschuckt sich Contao in der Datenbank.

Desweiteren werden serialisierte Daten im Frontend ausgegeben: 
<option value="a:2:{i:0;s:5:" 6x25m";i:1;s:5:"6x50m";}"="" class="available">a:2:{i:0;s:5:"6x25m";i:1;s:5:"6x50m";}</option>

Wenn man dort einen Wert aus der Select Box auswählt, dann erscheint, dass das Produkt nicht mehr auf Lager ist.

14.03.2017 11:47 #4
Christian Schmidt
Fast & Media Team
Aus Blankenburg (Harz)
363 Beiträge

Hallo Herr Kroll,

nach dem Anlegen von eigenen Feldern und auch beim Festlegen von Varianten, sollte man anschließend die Datenbank aktualisieren.

14.03.2017 12:03 #5
Andi
Aus Lutherstadt Eisleben
73 Beiträge

Genau das habe ich ja auch getaen. Ich habe Datenbankupdate gemacht, mir scheint es so, als dass er dann immernoch auf Daten zugreifen will welche bereits gelöscht (oder verändert wurden) sind.

Haben Sie noch einen Hinweis mit den serialisierten Daten? Das sieht für mich aus wie ein Fehler.

14.03.2017 15:33 #6
Andi
Aus Lutherstadt Eisleben
73 Beiträge

Ich habe es jetzt herrausgefunden wie es funktioniert. Man muss für jeden einzelnen Wert eine Attributs-Variante anlegen. Etwas irreführend war, dass ich es als Checkbox-Menü angelegt habe und gleich mehrere Daten innerhalb einer Attribut-Variante vergeben wollte. Das funktioniert also nicht. Man muss händisch alle Werte einzlen anlegen. OK!

Wenn ich jetzt noch das div mit den "Produktdaten werden geladen ..." komme ich langsam ans Ziel.

22.03.2017 10:00 #7
Andi
Aus Lutherstadt Eisleben
73 Beiträge

Hallo Herr Schmidt,

nocheinmal auf die Variaten zurückzukommen. Ich habe immernoch das Problem, dass die Values innerhalb der Select-Options identisch mit den Labels sind. Beispiel:

Antworten

Datenschutz*
Bitte addieren Sie 8 und 9.