Know How für VirtueMart 2

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Problembeschreibung / Aufgabenstellung

Wir wollen in VirtueMart Produkte gestalten, bei denen es Felder gibt, wo der Kunde eine freien Text eingeben kann und die Textmenge auf den Preis für das Produkt Einfluss haben soll. Ein typisches Beispiel ist das Gravieren von Klingelschildern als Shop-Produkt.

Umsetzung im Detail

Hier der Schnelldurchlauf für die Erstellung dieser Felder und die Verbindung mit dem Produkt:

1. Feldtyp erstellen

» VM-Adminmenü » Produkte » Selbsterstellte Felder » Menübutton "Neu"

  • Benutzerdef. Feld-Typ: Plugins
  • einen Titel vergeben
  • - dann sofort speichern, damit die Feldtyp-relevanten Optionen angeboten werden
  • Warenkorb-Attribut: ja
  • einen Titel des Eingabetextes vergeben
  • Wählen Sie ein Plugin: VM-Customer, customer input text
  • Texteingabe Größe: Die Anzahl Zeichen die wir für dieses Feld zulassen wollen
  • Preis pro Zeichen (wenn eine Zeichen-Preis-Berechnung erfolgen soll): ja
  • ggf. weitere Felder ausfüllen und abschließendes Speichern

2. Produkt mit diesem Feldtyp-Attribut versehen

» VM-Adminmenü » Produkte » Produkte » Produkt aus Liste auswählen oder per Button "Neu" erstellen
» im Registerreiter "Selbsterstellte Felder" » Gruppe "Benutzerdefinierter Feld-Typ" Auswahl des erstellten Feldtypes

  • Im Feldtyp-Optionenblock evtl. noch mal die Feldlänge spezifizieren
  • im 2. Eingabefeld die Preisberechnungsformel eintragen z.B. "+0.2" für 20Cent Aufpreis pro Buchstabe

Diesen 2. Schritt evtl. so oft wiederholen mit dem gleichen Feldtyp, wie Zeilen angeboten werden sollen.

Bewertung: 4 / 5

Stern aktivStern aktivStern aktivStern aktivStern inaktiv

Problembeschreibung:

Wer mit VirtueMart 2.x arbeitet und begonnen hat ein Projekt aufzusetzen, wird i.d.R. schon recht zeitig die ersten Bilder für Kategorien oder Produkte hochladen um diese auf den Seiten anzuzeigen. Erst später stellt man evtl. fest, dass die Vorschaubild zu klein oder zu groß angezeigt werden und möchte dies nun ändern. Die Thumbnailgröße lässt sich in der VM-Konfiguration unter dem Registerreiter "Stilvorlagen" in der Gruppe "Media-Datei Einstellungen" unter den Optionen "Minibild-Breite" / "Minibild-Höhe" recht schnell einstellen. Allerdings, und hier genau liegt das Problem, wirkt sich diese Einstellung nicht auf die Bilder aus, die man schon mal hochgeladen hatte, sondern zunächst nur für die die man ab da neu hochlädt. Was tun? Wenn man schon eine Menge Bilder hochgeladen hatte, kann man diese unmöglich alle noch mal neu auf den Server laden um die automatische Thumbnailerzeugung zu erreichen. Eine Lösungsbeschreibung werden Sie im VM nicht finden.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Die VM-2 Layouts

In VirtueMart 2 spricht man nicht mehr von Themen, sondern von Layouts und dieses Layoutkonzept hält sich eng an die Strukturkonventionen für Komponenten unter Joomla 2.5.x. In der Pfadstruktur der Komponente spiegelt sich das zunächst wieder in dem es im Komponentenverzeichnis ~/components/com_virtuemart/ so wie üblich ein Unterverzeichnis /views/ gibt. Für jeden Seitenbereich von VirtueMart zur Darstellung bestimmter Inhalte im Joomla-Contentbereich gibt es ein separates Unterverzeichnis z.B. /categories/ (für die Kategoriestartseite, also die 0. Ebene, das ist nicht die Shop-Startseite!) oder /category/ (für die früher so genannte Kategorie-Browsepages) usw.

Das Templatescript, welches verwendet wird ist üblich die default.php mit Ihrer Konfigurationsdatei default.xml. In der VirtueMart-Backend-Konfigurarion gibt es z.B. für die Kategorien das Layout in einer DropDown-Liste ausgewählt werden. Standardmäßig eben default.

Bewertung: 4 / 5

Stern aktivStern aktivStern aktivStern aktivStern inaktiv

Ein weiteres Problem in VirtueMart 2.x - leere Produkt-Detailseiten

Dieses Problem trifft zu für mind. alle Versionen von VirtueMart bis 2.0.6, bei der ich das zuletzt getestet hatte.

Der eine oder andere wird, sobald er das Joomla-Core-SEF eingeschaltet hat feststellen, dass zwar der Aufruf der Kategorieseiten hervorragend funktioniert, aber sobald man eine Produkt-Detailseite aufrufen möchte heftig knirscht. Man erhält eine Projektseite, bei der zwar alles da ist aber der Virtuemart-Content-Bereich einfach leer bleibt.

Auch hier leistet sich VirtueMart wieder eine kleine, von der Sinnhaftigkeit schwer begründbare, Gehässigkeit.

In der SEO-Konfiguration von VirtueMart gibt es ein Optionsfeld "SEO Suffix". Das Feld ist üblich leer. Warum sollte man es auch füllen, wenn man bei Adressen in dieser Form /shop/kategorieA/kategorieA/produkt.html landen will?

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Problembeschreibung

Solange man das SEF für VM nicht korrekt eingerichtet hat, wird man bei der Umsetzung zu SEF-Adressen immer wieder Fehler feststellen. Zu diesen Fehlern können z.B. solche Symptome gehören, dass trotz SEF noch immer Parameter an der URI hängen z.B. ?Itemid=0, oder aber dass das Shop-Kategorie-Menü auf der J!-Startseite andere URI erzeugt (z.B. dort enthalten noch /component/virtuemart/) als auf den Shopseiten selbst. Das sind typische Anzeichen dafür, dass hier was nicht zuende konfiguriert wurde.

Dabei ist die Umsetzung nicht damit getan, dass das J!-SEF aktiviert ist und das SEF auch in der VM-Konfiguration erledigt wird. Es sind weitere Schritte notwendig, die nirgends so richtig dokumentiert sind. Mit Englischkenntnissen und etwas Verständnis über die Funktionsweise und Fantasie, kann man sich die Lösung erlesen. Hier ein kurze Anweisung um dies schnell zu erreichen. 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Hier eine Sammlung von Erkenntnissen die das SEF unter VirtueMart 2.x betreffen.

 

Die Router-Scripte

Zunächst sollte man wissen, dass VirtueMart bemüht ist, sich an die J!2.5-Konventionen für das SEF zu halten. Das bedeutet ganz grob, dass durch den J!-Kern schon das SEF über die router.php bereitgestellt wird. Selbstverständlich kann J! nicht die möglichen URi-Parameter einer Komponenten kennen. Deshalb muss auch die Komponenten selbst sich um ihr Routing kümmern. Das passiert üblich ebenfalls über eine Scriptdatei router.php aber im jeweiligen Komponentenverzeichnis - bei Virtuemart z.B. in der /components/com_virtuemart/router.php.

 

Der ein-eindeutige Kategorie-Alias-Name in VirtueMart

Es gibt ein paar Automatismen die man mitunter beobachten kann und sich dann fragt, warum man bestimmt Dinge nicht so erreicht wie man es gerade wünscht.

Am Beispiel: In einem Kundenshop gibt es diverse Autoteile die zunächst in Baugruppen kategorisiert sind und innerhalb der Baugruppen dann nach Fahrzeugmarken. Deshalb kann es also die Kategorie mit dem Namen Porsche in verschiednen Bereichen des Kategoriebaumes geben. Schaut man sich jetzt das dann entstehende SEF an, stellt man fest, dass die SEF-Adressen, die ja aus den Alias-Bezeichnern der Kategorien gebildet werden, zusätzlichen Anhänge erhält. Das kann dann z.B. so aussehen: Aus dem Produktkategorienamen wird beim Speichern automatisch "porsche2012-04-23-14-44-29_". Es wird das Datum und die Uhrzeit angehängt. So eine Datumsangabe macht im SEF selten Sinn, weshalb man die weg haben möchte.

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Zielstellung

Diese kleine Beschreibung soll erklären, wie man bei einer Migration von Virtuemart von der unter Joomla 1.5.x gebräuchlichen Version 1.1.9 auf die neue Version 2.0.x migriert - dann möglichst unter einer Joomla 2.5.x. Umgebung.

 

Vorab etwas Grundsätzliches

Folgendes ist wichtig zu wissen: VirtueMart 2.0.x ist nicht nur eine forgeschriebene 1.1.9-Version sondern quasi eine neue Generation von VirtueMart. Es enthält so viele und gravierende Neuerungen, dass hiermit auch nicht mehr einfach nur ein Upgrade/Update vorgenommen werden kann, sondern unbedingt eine Migration notwendig ist. D.h. VirtueMart 2.0.x muss quasi neu installiert werden und dass alte VirtueMart aus den Verzeichnissen entfernt werden. Die VirtueMart-Daten müsen dann in die neuen Tabellen übertragen werden. Hierfür stellt das Neue VirtueMart ein Migrationstool zur Verfügung, welches als Bestandteil von VM 2.0.x gleich mit installiert wird und im VM Menübaum eingebunden ist.

Bewertung: 4 / 5

Stern aktivStern aktivStern aktivStern aktivStern inaktiv

Die Mehrwertsteuerberechnung in VirtueMart 2.x ist nun anders geregelt als in den Versionen von VM 1.1.x.

Zunächst ein paar gesammelte Erkenntnisse:

  • In der Tabelle #_virtuemart_product_prices liegen die Preise für die Produkte. Als Fremdschlüssel zur Product-Tabelle wird hier logisch die Produkt-ID (#_virtuemart_product_id) verwendet. Im Feld product_tax_id steht eine id für die anzuwendende Mehrwertsteuerregel. 0 entspricht der Standardregel.
  • In VM 2.x gibt es nun generell Rechenregeln, die im Backend erstellt werden und in der Tabelle #_virtuemart_calcs verwaltet werden. Hier können auch sehr umfangreich konfigurierbare Mehrwertsteuerregeln definiert werden. Diese können z.B. abhängig gemacht werden von Ländern, Kategorien, Staaten, Shoppergruppen u.v.m. Folglich sollte hier auch eine MwSt.-Regel für den deutschen Standardsatz von 19% angelegt werden.
  • Ganz wichtig ist die Zuordnung der Shoppergruppen zu diesem Steuersatz, damit am Anfang überhaupt etwas passiert, zu den Steuergruppen -default- und -anonymous-.