Maximale Anzahl von Einträgen des Multiselects erhöhen
Magento speichert die Werte eines Multiselect-Feldes kommasepariert in der Entität catalog_product_entity_varchar. Das ist eigentlich kein Problem außer man benötigt mehr als 40 aktive Einträge. Dann eröffnet sich schnell das Problem das die Länge des Varchars mit 255 Zeichen nicht genug Platz bietet um alle Einträge aufzunehmen. Wenn ein Eintrag aus einer vierstelligen ID besteht und das Komma zur Auswahl noch benötigt wird sind das immerhin schon 6 Zeichen pro aktivierten Eintrag. 255 / 6 = 42 Einträge maximal.
Dafür gibt es nun zwei Patches. Auf der einen Seite kann man anstelle des Backend_Type varchar einfach Text verwenden. Damit können (quasi) beliebig viele Einträge gespeichert werden. Leider macht der Indexer der Layered-Navigation dort ein paar Probleme. Dazu habe ich aber gerade einen Patch geschrieben.
Auf der anderen Seite kann, wie Jan mit gerade nebenbei sagte, ab MySQL 5 die Anzahl der Einträge des Varchars, abhängig von der Max-Row-Length, auf bis zu 65.000 Zeichen erhöht werden. Das geht z.B. mit folgendem SQL:
ALTER TABLE `catalog_product_entity_varchar` CHANGE `value` `value` VARCHAR( 21000 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''
Bleibt die Frage welche der Herangehensweisen die bessere ist. Aber das überlasse ich euch selbst
Der Autor
Tobias Vogt arbeitet seit 2008 mit Magento und ist seit 2011 durch Magento zertifizierter Entwickler. Beschäftigt ist er bei der code-x GmbH, einer Agentur für Internet und Marketing aus Paderborn. Er gehört zum Gründer-Team der Webguys und ist seit November 2011 Bachelor of Science (Wirtschaftsinformatik). Sie erreichen Ihn per E-Mail unter tobi@webguys.de.



