Preisangaben für Einheit und Verpackungseinheit, Bestellung aber immer nur für VE

  • Hallo,


    mein Name ist Alexander und ich bin neu in diesem Forum. Ich lerne noch mit Virtuemart um zu gehen, will sagen ich bin gerade bei meiner ersten Installation und Einrichtung. Ich entwickle einen kleinen Shop für einen Kunden, hier sind die wesentlichen Eckdaten:


    Joomla Version: 3.9.18

    Virtuemart Version: 3.6.10 10211

    Umgebung: lokaler Testserver mit Apache und php 7.3.6

    Template: eigenes, basierend auf Protostar


    geplantes Publikum:

    Gäste - keine Preisangaben

    Gewerbekunden - nur Nettoverkaufspreise


    Aufgabenstellung:

    Es gibt Produkte, die in m gemessen und berechnet werden. 1 Stab ist 2m lang, verkauft wird das Produkt nur in VEs zu 10 Stück = 20m. Preis ist z.B. 6,20€ je m, entsprechend 124,00€ je VE. Dem Käufer soll der Preis je m und je VE angezeigt werden, Soweit noch kein Problem. Mein Kunde will, dass der Käufer nicht eine Anzahl Produkte oder eine Anzahl m in den Warenkorb legt, sondern die Anzahl VEs. Das heißt, der Käufer muss auf der Produktseite die Anzahl Verpackungseinheiten auswählen können. Mit anderen Worten: er legt 2 in den Warenkorb und bestellt damit dann 40 laufende m für zusammen 248,00€.


    Wie erreiche ich, dass bei der auszuwählenden Menge die VEs stehen, beim Grundpreis/Basispreis aber der Preis je m?


    Ich danke euch für jeden Hinweis.


    Liebe Grüße und bleibt gesund.


    Alexander

  • Hallo Alexander,


    es gibt mehrere Wege, das aufzubauen, allerdings nicht allein mit den Core-Mitteln von VirtueMart, man muss ein paar kleine Anpassungen machen.


    Ich würde wahrscheinlich das Produkt auf Basis der Verpackungseinheit aufbauen.

    Im Layout kann man den Meterpreis dann über PHP ausrechnen und entsprechend darstellen.


    Dann kann man bei 80 Stück:

    - 2 x "Produkt VP 40" bestellen.

    - Es wird der Preis für die VP für die Berechnung intern in VirtueMart verwendet.

    - Der Meterpreis an beliebiger Stelle dann per Layout-Override.


    Eine anderer Ansatz.

    Produkt als Meterprodukt anlegen:

    - 80 Produkte "Produkt 1m" in den Warenkorb.

    - - Es lässt sich in VirtueMart eine Verpackungsgrößen anlegen, die sollte dann 40 sein, so dass nur in 40er Schritten gekauft werden kann.

    - Der Preis für die 80 Stück "Verkaufspreis Summe (oder so ähnlich) kann neben dem Einzelpreis in der VirtueMart-Konfiguration unter Preiseinstellungen eingestellt und somit angezeigt werden.


    Die zweite Lösung kommt ohne Basteln aus, allerdings kann man dann nicht 2 Produkte VE40 in den Warenkorb legen.


    Grüße

    Stefan

  • Hallo Stefan,


    danke für die Anregungen. Die zweite Lösung habe ich im Test schon so eingestellt. Der Kunde war nicht ganz so begeistert.


    Die erste wäre für einen kleinen Shop vielleicht zu aufwändig.


    Letztlich wird sich der Kunde halt entscheiden müssen ob er mit der einfachen Lösung wie unter zwei beschrieben leben, oder die Kosten für eine Anpassung übernehmen will. Ich hatte halt gehofft, es gäbe eine einfache Lösung, die ich übersehen hätte.


    LG

    Alexander

  • Der Aufwand der ersten Lösung besteht eigentlich darin, die Verpackungseinheit irgendwo anzugeben und dann im Layout zur Berechnung zu verwenden.

    Das könnte man mit einem Custom Field machen. Oder ein Feld wie GTIN oder MPN zweckentfremden.


    Aber zwei bis drei Stunden gehen mit allem sicher drauf.


    Grüße

    Stefan

  • Hallo,


    ich will das Thema nochmal aufgreifen.


    Ich habe jetzt analog zu Stefans zweitem Vorschlag die Anpassungen vorgenommen. Da ich mir dabei aber einen Wolf gesucht habe, welche Daten ich aus der $this zu ziehen habe und in welcher php-Datei zu arbeiten ist, will ich hier mal kurz schildern, wie ich es gemacht habe.


    Vielleicht hilft es ja dem einen oder anderen weiter.


    1. Zwei selbsterstellte Felder angelegt:

    a) Mass je Stück - hier wird die Anzahl je Masseinheit angegeben, z.B. 5kg je Eimer, 2m je Stück

    b) Masseinheit - hier wird die Dimension angegeben, z.B. m oder kg oder Liter

    Warenkorb Attribut und Warenkorb Eingabe sollte dabei auf "Nein" stehen.


    2. Override erstellen für die Datei com_virtuemart\sublayout\prices.php

    a) nach:

    Code
    1. $product = $viewData['product'];
    2. $currency = $viewData['currency'];

    einfügen:

    b) ersetzen von

    Code
    1. echo $currency->createPriceDiv ('priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices);

    durch

    Code
    1. $NettoJePEText = vmText::_('COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX');
    2. if (!is_null($ME)) {
    3. echo $currency->createPriceDiv('priceJeME', 'Preis je ' . $ME . ': ', $PME);
    4. $NettoJePEText = 'Nettopreis je PE (' . $MEJePE . ' ' . $ME . '): ';
    5. }
    6. echo $currency->createPriceDiv('priceWithoutTax', $NettoJePEText, $product->prices);

    Der Vollständigkeit halber:

    irtueMart 4.0.6 10690

    Joomla 3.10.11

    https://systembott.de/index.php/shop Der Link ist nur zur Info, da nur eingetragene Kunden die Preise einsehen können.


    Liebe Grüße


    Alexander

  • axl-g

    Hat das Label Gelöst: hinzugefügt
  • Hallo Milbo,


    wenn ich das richtig verstanden habe, trifft es nicht den Punkt meiner Aufgabe. Zur Verdeutlichung hänge ich mal ein Bild dran. Wie bereits gesagt, hat nur eine geschlossene Nutzergruppe Zugang zum Shop, darum ist es leider nicht möglich das life an zu sehen.


  • Hallo Alexander,


    mit Milbos Tool könnte der Kunde die erforderlichen Quadratmeter eingeben, und das Tool würde die Packungseinheiten automatisch setzen.

    Das ist für den Kunden einfacher als die Anzahl der Packungen einzugeben, weil der Kunde die Anzahl der Quadratmeter sowieso weiß, die Anzahl der Packungen aber ausrechnen muss.


    Bei 2 Packungen a 20 qm ist es sicher einfach. Wenn 83 Packungen mit je 16,67qm benötigt werden, ist die Angabe der Quadratmeter sicher einfacher.
    Milbo's Tool erspart dem Kunden das Rechnen und könnte je nach möglichen Packungsmengen und -einheiten auch hier sinnvoll sein.


    Grüße

    Stefan

  • Hallo Stefan, hallo Milbo,


    Milbo's Toll ist zweifellos gut. Die Vorgabe, die ich vom Kunden hatte war aber eine andere. Es ist ausdrücklich gewünscht, dass nur Verpackungseinheiten ausgewählt werden können.


    Zwei Gründe sind da wichtig:


    1. Bei der Angabe: Sie haben x Produkte im Warenkorb, würde dort vielleicht stehen "Sie haben 52 Produkte im Warenkorb" was sehr verwirrend wäre, weil der Kunde nur zwei Pakete Randeinfasungen und ein Paket Bewässerungssäcke bestellt hat (3 Produkte).


    2. (Eine ähnliche Situation habe ich dort im Betrieb schon miterlebt) Kunde ruft an, ich hätte gerne 90m Steinfix auf die Baustelle, wann können Sie liefern? Antwort: Morgen rausgehend, wir können aber nur 80m oder 100m (4 oder 5 Pakete). Kunde schickt eine halbe Stunde später Bestellung per Mail "Liefern Sie 90m".

    Wenn der Kunde die Möglichkeit hat sich im Shop 90m zu wünschen, wird er das tun und sich dann später darüber beschweren, dass er 100m bestätigt bekommt. Ein Teil dieser Klientel ist so gestrickt! Also werden solche Missverständnisse von vornherein ausgeschlossen.


    Vielleicht kann Milbo's Tool das ja, hab ich nicht geprüft, weil ich ja nun für mich eine Lösung gefunden hatte. Milbo, das kannst du ja gegebenenfalls noch erläutern, dann wäre das sicher für manchen eine bessere Lösung als mit Overrides zu arbeiten.


    Liebe Grüße


    Alexander