<mediaDESIGN> St. Kraft + lens*flares
  • Joomla-Erweiterungen
  • Knowledgebase
  • Startseite

Sprache auswählen

  • Deutsch
  • English (UK)
Suche - Kategorien
Suche - Inhalt
  • FAQs für meine Kunden
  • Eigene Joomla-Erweiterungen
    • Update-Downloads
    • VM2/3-Category-Menu-Modul
  • Software-Design / Interface-Design
  • Referenzen / Auszeichnungen
  • Knowledgebase
    • Joomla und Erweiterungen (allg.)
    • Gantry 4 und 5 - Tipps, Know How
    • VirtueMart - Know How und Bugfixes
    • MySQL - Tipps
    • BreezingFoms / FacileForms
    • J!-Extensions selbst erstellen
    • JTL-Shop und -WaWi
  • Shop Warenkorb

VirtueMart - Know How und Bugfixes

VirtueMart Admin

Infos zum Installieren/Einrichten/Anpassen von VirtueMart für Shop-Administratoren

Einbinden von PDF-Dokumenten in Produkten oder Kategorien

Details
Zuletzt aktualisiert: 17. Februar 2020

Bewertung: 2 / 5

Problembeschreibung

Leider gibt es keine direkte und komfortable Möglichkeit PDF-Dokumente direkt zu Kategorienbeschreibungen hinzuzufügen. Die Komponente "Attachements" arbeitet nicht mit Virtuemart zusammen. Über den Registerreiter "Bilder" in der Kategorie-Administration lassen sich nur für VM bekannte Bildformate einbinden. PDFs werden zwar hochgeladen, aber es wird versucht aus ihnen eine Thumbnail zu erzeugen. Die Datei landet dann ohne Erweiterung im VM-Category-Bilderverzeichnis und in der Datenbank. Hier wären Eingriffe notw. Diese Aussage bezieht sich auf alle getesteten VM Versionen bis einschließlich 1.1.9.

Weiterlesen: Einbinden von PDF-Dokumenten in Produkten oder Kategorien

VirtueMart 1.1.x: AddToCart-Meldungsbox verdeckt

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3 / 5

Problembeschreibung

Wer an sein Joomla-Site-Template bestimmte Ansprüche hegt, kommt mitunter nicht drum herum über z-index die Layerinhalte nach Notwendigkeiten zu schichten. Damit bekommt VM aber Probleme, denn die Meldungsbox, das ein Produkt in den Warenkorb hinzugefügt wurde, kann dann mitunter von anderen Seitenelement teilweise oder gar vollständig überdeckt sein. Dieser Workaround zeigt, wie man das Problem beseitigt.

 

Grundlagen und prinzipielle Fehlerbehebung

Zunächst sollte man wissen, das die von VM erzeugte Meldung in einem modalen DIV-Bereich eingeblendet wird. Virtuemart verwendet dazu die mootools.js-Bibliothek welche eingebunden wird durch moopromt.js. In Virtuemart muss das overlaying in der Administration eingeschalten sein, damit das moopromt-Script hierfür verwendet wird. Diese Verfahrensweise mit dem modalen Meldungsdialog ist benutzerfreundlicher, weil dann nicht mit jedem hinzugefügten Artikel die Warenkorbseite aufgerufen wird. Statt dessen erfolgt die Befüllung per Ajax, der user erhält die Meldung und bleibt aber auf der Seite, die er vorher aufgerufen hatte.

Weiterlesen: VirtueMart 1.1.x: AddToCart-Meldungsbox verdeckt

VirtueMart: "Produkt weiter empfehlen" fehlt der Produktlink in E-Mail

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 1 / 5

Problembeschreibung / Fehler

Es ist schon eigenartig mit Virtuemart. Auch dieser hier beschriebene Fehler existiert seit mehreren Versionen, einschließlich der Version 1.1.9. Worum geht's:

Auf den Produkt-Detailseiten (Flypages) wird ein Link angeboten zum Versenden einer "Weiterempfehlen-Mail" (recommend-mail). Wird das Formular ausgefüllt, und abgesendet, wird die Mail auch korrekt versendet - nur im Text fehlt der Link zur HomePage - erst recht  zum Produkt das ich empfehlen will. Wem nützt eine solche Mail???
Nun ich vermute, der Grund warum dieser Bug seit einigen Versionen von VM noch nicht behoben ist, ist der, dass hierüber noch ein Disput geführt wird, ob es wohl besser wäre dieses Feature über das Joomla-Mainframe zu realisieren, oder durch VM selbst. Ziel sollte schon sein, dass VM möglichst viele J!-Werkzeuge verwendet ... Aber das kann noch dauern und deshalb wollen wir den Fehler wenigstens vorübergehend beheben:

Weiterlesen: VirtueMart: "Produkt weiter empfehlen" fehlt der Produktlink in E-Mail

VirtueMart: Fehlverhalten bei Produkt-Pagenavigation und aktives Menüelement

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 2 / 5

Fehlerbeschreibung

Schon in früheren Versionen mind. 1.1.3 und aktuell einschließlich Version 1.1.9 tritt bei VirtueMart nach wie vor ein Fehler auf, sobald man über die Produkt-Page-Navigation (vorheriges / nächstes Produkt) oberhalb der Produktdetailanzeige klickt. Der Fehler äußert sich in drei Symptomen:

  1. Auffällig ist besonders, dass im Shopmenü die vorher gewählte, nun aktuelle Kategorie plözlich nicht mehr als aktiv angezeigt wird - abhängig von Menütyp (muss also bei reinen JavaScriptMenüs nicht auftreten - ich nutze eine Art Mod-Mainmenü für die Kategorien).
  2. Wenn man z.B. einer Kategorie eine eigenen oder von der Standard flypage abweichende Flypage zugewiesen hat, wird diese plötzlich nicht mehr verwendet, das Design wechselt unerwartet und unerwünscht zur Standard-Flypage.
  3. Arbeitet man mit Child-Artikeln wird bei Auswahl eines Childartikels auf der Produktdetailseite plötzlich ebenfalls nicht mehr die korrekte Flypage zu Anzeige verwendet.

Fraglich ist, warum die Entwickler diesen Fehler seit vielen Versionen nicht korrigieren.

Weiterlesen: VirtueMart: Fehlverhalten bei Produkt-Pagenavigation und aktives Menüelement

Virtuemart: Admin - Product-Details - Kategorieauswahl Fehlverhalten

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4 / 5

Problembeschreibung

Bei einem Kundenprojekt zeigte sich in VirtueMart im Bereich Produktpflege beim Versuch Kategorien zuzuweisen eine abnormes Verhalten dieses Formularelementes. Üblicherweise wird man hier im VM-Backoffice für die Kategoriezuweisung eine einfach Multiselektliste vorfinden. Erst wenn man sehr viele Kategorien hat, was verständlicherweise nur bei weniges Shops überhaupt zutrifft, ändert sich der Typ dieses Formularelementes. Statt o.g. Multiselektliste wird es nun zu einem intelligenten Suchfeld. Der Grund warum diese von den Entwicklern so gehandhabt wird ist klar. Die Suche nach Katerorien soll im Backoffice schneller gehen. Bei vielen Kategorien, wäre die Multiselektliste einfach zu umfangreich und damit langsam.

Weiterlesen: Virtuemart: Admin - Product-Details - Kategorieauswahl Fehlverhalten

VirtueMart: Mehrwertsteuer auf Versandkosten bei B2B

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 2 / 5

Hierfür relevante Scripte und Funktionen:

basket_b2b_html.php basket/ Templatescript, welches die Ausgabe des änderbaren Warenkorbes layoutet.
ro_basket_b2b_html.php basket/ Adäquates Templatescript, welches die Ausgabe des Read-Only-Warenkorbes layoutet.
basket.php html/ Steuerscript, welches die Daten für die Warenkorb-Templates organisiert und dem Template bereitstellt.
ps_checkout.php classes/ Klassen- und Funktionsbibliothek für den Warenkorb
standard_shipping.php
classes/
shipping/
Eine der Shipping-Module, welches als Standard-Versand-Variante geladen wird. Das Objekt _SHIPPING in ps_checkout.php basiert auf diese hier definierte Objektklasse ($this->_SHIPPING = new $filename()) und seiner wichtigen Funktionen wie z.B. die get_tax_rate()
jos_vm_shipping_rate MySQL Enthält die Kosten und den MwSt.-Satz für die Versandarten sowie Gebietsangaben und Gewichtsbereiche.
jos_vm_tax_rate MySQL Enthält die konkreten Prozentangaben für die MwSt.-Sätze.

Fehlerursache 1 - in standard_shipping.php

Dieser Fehler tritt erst auf mit der Version 1.1.4 von VM und war vorher nicht feststellbar.
Grund für den Fehler ist eine falsche IF-Behandlung für $state in der standard_shipping.php. Die Korrektur geht am einfachsten wie folgt: In Zeile ca. 182 f. innerhalb der Funktion get_tax_rate() folgendes ersetzen:
classes/shipping/standard_shipping.php get_tax_rate()
if ($state) {
$q .= " AND tax_state = '" . $state . "'";
}

ersetzen durch:
classes/shipping/standard_shipping.php get_tax_rate()
if( !empty($state)) { 
$q .= " AND (tax_state='$state' OR tax_state=' $state ' OR tax_state='-')";
}
 

Zum einen kommte es mitunter in der DB-Tabelle jos_vm_tax_rate zu unterschiedlichen Einträgen im Feld tax_state. Mal steht dort "-" und mal " - ". Damit funktionierte die ursprüngliche Vergleichsabfrage nicht immer zuverlässig, weshalb beide Varianten in den Query eingebaut wurden.
Zum anderen ist $state im Fall von Dtld. leer, weil es hier keine Staaten wie in Amerika gibt, die unterschiedliche MwSt-Sätzen haben könnten, weshalb dann hier eine Zuordnung notw. wäre. Unsere Bundesländer sind in diesem Fall bedeutungslos, weshalb ein "-" im Feld tax_state stehen sollte. Wenn aber $state leer ist sollte diese  Query-Erweiterung gar nicht erst stattfinden, weil sie dann zu 0.00 als Ergebnis führt. Deshalb wurde also !empty() hinzugefügt.

Fehlerursache 2 - in ps_checkout.php

Auch beim Versenden der Order-Mails wird die MwSt nfür Versand nicht eingerechnet. Die Ursache hierfür ist zu suchen im Script ps_checkout.php in der Funktion email_receipt(), denn hier wird die ermittelt $order_shipping_tax gar nicht erst zur $order_tax hinzuaddiert, und somit schon an die Mailtemplates falsch übergeben. Also folgende Zeile ca. 1830 im Else-Zweig:
classes/ps_checkout.php email_receipt()
else {
 $order_shipping = $db->f("order_shipping");
 $order_shipping_tax = $db->f("order_shipping_tax");
 $order_tax = $db->f("order_tax");
}
 

ersetzen durch:
classes/ps_checkout.php email_receipt()
else {
 $order_shipping = $db->f("order_shipping");
 $order_shipping_tax = $db->f("order_shipping_tax");
 $order_tax = $db->f("order_tax")  + $order_shipping_tax;
}  

VirtueMart: Versandkosten-MwSt.

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 1 / 5

Relevante Scripte und Ihre Bedeutung:

ps_checkout.php class/
Hier werden die Daten für den Checkout-Vorgang den checkout-Templates bereitgestellt. Nutzt dabei die Shipping-Classenbibliotheken abhängig vom Versandmodul, also z.B. die standard_shipping.php zum Erstellen eines Standard-Shipping-Objektes - instanziiert als Objekt $_SHIPPING gleichlautend wie der relevante Shipping-Modul-Dateiname (z.B. standard_shipping.php).
calc_order_tax() - Ermitteln der Gesamtsteuern für die Bestellung
calc_order_shipping(&$d) - Kleine Funktion, die nur unterscheidet, ob Preise inkl. MwSt angezeigt werden sollen oder nicht und währungsabhängig konvertiert sonst aber die Versandkosten und Versandsteuern nur über die Objektfunktionen $_SHIPPING->get_rate() und $_SHIPPING->get_tax_rate() ermittelt.
calc_order_shipping_tax() - Gibt nur den Tax-Wert zurück der in calc_order_shipping() ermittelt und im Array-Eintrag $d['shipping_tax'] abgelegt wird.
ps_shipping.php
class/ Grundsätzliche Klasse zum Steuern der Verkostenermittlung
standard_shipping.php
standard_shipping.ini
class/
shipping/
Spezial-Klasse, die für das Standard-Shipping-Modul verwendet wird. Sie erzeugt u.a. die Ausgabe der Versandartenliste zur Auswahl durch den Nutzer.
Neben dieser gibt es im gleichen Verzeichnis viele weitere.
In ihr werden diverse Funktion bereitgestellt, z.B. die get_rate() und get_tax_rate() u.w.
ps_shipping_method.php classes/ Funktionsbibliothek, die die Versandmethode ermittelt und dabei auch das Versandgewicht und die Umrechnung des Gewichtes in andere landesspezifische Gewichtseinheiten.
ps_checkout.php
Variablen in der ps_checkout.php:
Als get-Parameter und innerhalb von $vars und $d.
  • shipping_rate_id: Moduldateiname|Versender|Versandart|Versandkosten(=Summe aus Versand- und Verpackungskosten)|X?1

VirtueMart: Bestellabschluss Formular bearbeiten

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 1.5 / 5

Pflichtfelder ergänzen oder aus Liste entfernen

/administrator/components/com_virtuemart/html/checkout_register_form.php
suchen nach $required_fields und im Array auskommentieren
außerdem in
/administrator/components/com_virtuemart/classes/ps_shopper.php
 
in der Funktion validate_add()
in der Lieferadresse account.shipto.php
Angaben löschen wie:
 
in
../classes/ps_user_adress.php siehe: $valid = false;
$d["missing"] darf nur die Felder enthalten, die required sind.

Suche in Virtuemart

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4.5 / 5

Um in VirtueMart nach Produkten zu suchen gibt es verschiedene Möglichkeiten.
 

1. Die Joomla-Such-Funktion - VM-Such-Plugin

 
Joomla selbst bietet schon eine Suchfunktion an. Diese ist jedoch nicht ohne weiteres in der Lage auch im Shop z.B. nach Produkten oder Kategorien zu suchen. Diese Suchefunktion (com_search / mod_search) benötigt dafür ein Plugin um in seine Suche auch VirtueMart einzubeziehen.
 
Ein solches Plugin ist verfügbar und ist i.d.R. im VM-Installationsbundle enthalten. Sollte nicht die Installation im kompletten Umfang erfolgt sein (alle mitgelieferten VM-Plugins und -Module) kann dieses Plugin per Joomla-Installer nachinstalliert werden.
 
Das Plugin nennt sich "Virtuemart Extended Search Plugin" und als Plugin-Name "vmxsearch.plugin". Das Installations-ZIP-Archiv heißt i.d.R. vmxsearch.plugin_1.1.3.j15.zip und ist Bestandteil des COMPLETE-PACKAGE von VirtueMart.

Weiterlesen: Suche in Virtuemart

VirtueMart: Produkte mit Mengerabatt-Staffel

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3 / 5

Um in Virtuemart Produkte mit unterschiedlichen Preisen je nach Abnahmemenge anzulegen (Mengenrabatt-Staffel) geht man wie folgt vor.
 
Zunächst muss das Produkt ganz normal angelegt und abschließende gespeichert werden. Dann ruft man das Produkt erneut auf. In der Icon-Zeile oben rechts erscheinen nun ein paar neue Icons, u.a. eines unterschrieben mit "Preise auflisten". Davon nicht beirren lassen, dass das Icon gegraut ist. Es ist trotzdem anklickbar, was man beim Mouse-Over schon vermutet.
 
Hier erhält man jetzt eine Liste der schon verfügbaren Staffelpreise. Immer wird schon der -default-Preis eingetragen sein, der quasi bis jetzt für 1 Stück bis unendlich gilt. Nun kann man diesen auswählen und im erscheinenden Dialog den Anfangswert auf 1 setzen und den Endwert auf 9. So wird's gespeichert.
 
Zurück in der Liste wählt man nun den Button "+Neu" um einen neuen Staffelpreis hinzuzufügen. Hier wird dann als Startpreis z.B. 10 und Endpreis z.B. 50 eingegben und wieder gespeichert.
 
So ließen sich viele weitere Preise einsetzen.

VirtueMart: Design-Templates (Theme) verwenden

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 1 / 5

Das Theme-Konzept von VirtueMart

VM bietet die Möglichkeit an, mehrere Themen für das Layout/Design zu verwalten. Für Eigenentwicklungen und Eingriffe in das Layout halte ich es für klug, das Standard-Theme zunächst zu dublizieren und dann im dublizierten Thema die Modifikationen vorzunehmen. So ist es leichter möglich bei auftretenden Fehlern/Störungen oder auch "Fehlentwicklungen" zum Standard-Thema zurückzuschalten und Fehlerquellen leichter aufzuspüren.

Das Default-Template (Theme) von VM dublizieren.

Um das Layout reversibel ändern zu können wurde das Verzeichnis joomlapfad\components\com_virtuemart\themes\default\ mit allen seinen Unterverzeichnisse kopiert nach joomlapfad\components\com_virtuemart\themes\meinThema\. In diesem Verzeichnis liegen nun alle Layout-relevanten Dateien für VM einschließlich der browse-pages (Auswahl-Seiten) und den flypages (Produkt-Detailansicht-Seiten).
In der VirtueMart-Componenten-Konfiguration unter dem Tab-Reiter: „Seite“ im Bereich: „Layout“ kann dann das entspr. Thema wie in unserem Beispiel „meineThema“ statt „default“ ausgewählt werden.

VirtueMart 1.1: Ajax und No Account Creation

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 2 / 5

No Account Creation - Bestellung ohne Benuzteranmeldung

Für den Webshop marks-normalien.de sollte VirtueMart im Modus laufen, bei dem es nicht notwendig ist, sich als Benutzer anmelden zu müssen um eine Bestellung ausführen zu können. Dazu muss in der Komponente VirtueMart > Administration > Konfiguration > Reiter "Global" > Gruppe "Einstellungen zur Nutzerregistrierung" > User Registration Type > "No Account Creation" ausgewählt werden.

 

Fehlerhaftes Ajax-Verhalten

Allerdings tritt bei diesem Modus dann im Frontend ein kleines Problem auf. Wenn ein Produkt aufgerufen wird, welches sehr viele Artikel enthält, dann dauert das Laden der Seite entspr. lange. Sobald die Pulldownlist für die Artikel angezeigt wird, kann der User dort auswählen. Wurde der Artikel ausgewählt werden (durch Ajax) Inhalte auf dieser Produktseite akualisiert. Das dauert jedoch bei größeren Datenmengen etwas. Ist der User in dieser Zeit aber schneller und klickt schnell nach der Auswahl des Artikels auf den "Bestellen"-Button kommt es regelmäßig dazu dass das Einfügen dieses Artikels in den Warenkorb nicht sauber funktioniert.

Weiterlesen: VirtueMart 1.1: Ajax und No Account Creation

VirtueMart: Design-Anpassungen

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4 / 5

Grundsätzliches

In der Datei /components/com_virtuemart/themes/default/theme.config.php stehen die Design-Vorgaben für das VM. Eingestellt werden diese über => Komponenten => VirtueMart => Konfiguration => Reiter _| Seite |_ im VM-Backend.

Üblicherweise gibt es eine Trennung in drei notwendige Scripte

  • Die sogenanten Controllscripte (controll). Das sind die Hauptsteuerungsscripte die die Ausführungslogik für eine anzuzeigende Seite enthalten. Diese inkludieren die Datenabfrage, i.d.R. abhängig von den Nutzerinteraktionen und erzeugen anhand der aus der DB gelieferten Daten die Anzeigedaten die an die Template-Scripte gefetcht werden.
  • Die Datenbankabfragescripte (model). Diese liefern dem Controlscripten die Daten aus der Datenbank. Hier werden die Queries für die Datenbankabfragen montiert.
  • Die Anzeigescripte (views). Das sind unserse eigentlichen Templatescripte. Üblicherweise sollte Designanpassungen ausschließlich hier vorgenommen werden.
  • Eine vierte wichtige Gruppe von Scripten, stellt in Bibliotheken diverse häufig und von verschiedenen Scripten benötigte Methoden zur Verfügung und entlasten somit den Programmieraufwand für die Controllerscripte.

Weiterlesen: VirtueMart: Design-Anpassungen

Unterkategorien

Know How für VirtueMart 1.1.x Beitragsanzahl:  22

Know How für VirtueMart 2 Beitragsanzahl:  26

Know How für VirtueMart 3 Beitragsanzahl:  3

Seite 4 von 4

  • 1
  • 2
  • 3
  • 4
<mediaDESIGN> St. Kraft + lens*flares
© St. Kraft <mediaDESIGN> + lens*flares 1996 - 2025
Verantwortlich für den Inhalt nach § 5 TMG und § 55 Abs. 2 RStV
  • Impressum
  • Datenschutzerklärung
  • Seitenübersicht
Back to top