Anzeige Versandarten auf der Produkt-Seite wenn kein Land angegeben?

  • Hallo zusammen,


    ich habe im Moment ein Problem mit der Anzeige der Versandarten auf der Produkt-Seite. Im Backend habe ich verschiedene Versandarten definiert, abhängig vom Land in dem sich die Lieferadresse befindet. Im Moment sind das nur drei Versandarten ("Innerhalb Deutschlands", "Internationaler Versand in bestimmte EU-Länder und Schweiz" und "Selbstabholung".


    Wenn der Kunde angemeldet ist und in seiner Adresse ein Land hinterlegt ist, werden auch die richtigen Versand-Arten auf der Detail-Seite bei den Produkten angezeigt. Soweit funktioniert das gut. Wenn der Kunden aber noch nicht angemeldet ist kennt das System ja noch kein Land und von daher werden auch nur die Versandarten angezeigt, bei denen im Backend kein "Gültigkeits-Land" angegeben ist (in meinem Fall ist das nur bei "Selbstabholung").


    Ich würde jetzt aber gerne auf der Artikel-Seite dem Kunden alle möglichen Versandarten anzeigen wollen. Dazu müsste es eine Möglichkeit geben, bei den Versandarten irgendwie zu definieren, dass sie auch angezeigt werden, wenn noch kein Land bekannt ist. Diese Möglichkeit habe ich bisher aber noch nicht gefunden. Man müsste also irgendwie in der Liste der Länder, für die eine Versandart angezeigt werden soll, einen Eintrag machen können, der dem System mitteilt, dass diese Versandart auch angezeigt werden soll, wenn noch kein Lieferland bekannt ist. Alternativ wäre natürlich auch eine zusätzliche Option bei der Versandart zum Anklicken/Auswählen denkbar ("Anzeigen wenn kein Lieferland bekannt").


    Hat jemand eine Idee, wie ich dieses Problem lösen kann? Vielleicht gibt es ja auch schon irgendwo ein Plugin dafür?


    Joomla 3.9.2

    Virtuemart 3.4.2


    Gruß,

    Frank

    Einmal editiert, zuletzt von Franklin () aus folgendem Grund: Joomla und Virtuemart-Version ergänzt

  • Hallo Frank,


    ich glaube nicht, dass es dazu eine Voreinstellung gibt. Zumindest kann ich mich selbst momentan an keine solche erinnern.


    Was man aber überlegen könnte wäre, ein eigenes Modul mit all seinen gewünschten Angaben zu erstellen, und dieses einfach einer Modulposition irgendwo zu deinen Artikeln anzeigen zu zulassen.


    Das hat zudem noch den Vorteil, dass bei neu hinzugefügten Artikeln die Hinweise automatisch dazu stehen.


    Nur so eine Ideeeeee!

  • Hi Faro,


    die Versandarten werden ja auch jetzt schon bei allen neuen Artikel auf der Detail-Seite der Artikel angezeigt. Allerdings erfolgt dieses in Abhängigkeit von dem Lieferland. Und wenn das noch nicht bekannt ist werden nur die Versandarten angezeigt, bei denen kein Land "zugewiesen" ist.


    Ich habe bisher leider noch nicht die Stelle in den PHP Files gefunden, an der die Versandarten für die Artikel-Detail Seite eingelesen und dann angezeigt werden. Es sollte doch dann kein großes Problem sein, die Abfrage so zu ändern, dass grundsätzlich immer alle Versandarten angezeigt werden, wenn das Lieferland noch nicht bekannt ist.


    Die andere Variante (wahrscheinlich viel einfacher zu realisieren), die mir gerade einfällt während ich das hier schreibe, ist einfach in der Tabelle der Lieferländer, einen neuen Eintrag (z.B. "ohne Lieferland") zu machen und denn dann einfach bei allen Versandarten zuzuordnen, die angezeigt werden sollen, wenn kein Lieferland bekannt ist.


    Das probiere ich gleich mal kurz und gebe dann Feedback, ob das funktioniert hat.


    Gruß,

    Frank

  • Ergänzung zu der Idee mit dem zusätzlichen Eintrag in der Tabelle der Länder: Da müsste man dann aber trotzdem den Code ändern, mit dem die Versandarten bei den Artikeln angezeigt werden.


    Folgende Logik wäre denkbar:

    - Wenn das Lieferland unbekannt ist dann wird das Lieferland auf "ohne Lieferland" gesetzt und somit würden alle Versandarten angezeigt werden, die dieses zusätzliche Lieferland zugewiesen bekommen haben.


    Aber auch dafür müsste ich wissen in welcher PHP Datei die Ausgabe der Versandarten bei der Artikel-Ansicht erzeugt und ausgegeben wird.


    Gruß,

    Frank

  • Ein Update,


    ich habe jetzt zum testen mal ein neues Land in der Tabelle in VM angelegt und in der Datei "plugins/vmshoipment/weight_countries/weight_countries.php" in Zeile 226 eine kleine Änderung vorgenommen.


    Ursprünglicher Eintrag => if(empty($address['virtuemart_country_id'])) $address['virtuemart_country_id'] = 0;

    Geänderter Eintrag => if(empty($address['virtuemart_country_id'])) $address['virtuemart_country_id'] = 249;


    Dabei ist "249" die ID des neu hinzugefügten Landes. Dann habe ich bei den Versandarten, die ich in dem Falle, dass kein Lieferland bekannt ist, anzeigen möchte, zusätzlich noch dieses neue Land hinzugefügt.


    Die Logik an sich funktioniert schon mal, jetzt muss ich mir nur noch etwas an Art der Ausgabe feilen und die Ausgabe des Namens dieses neuen Landes unterdrücken.


    Gruß,

    Frank

  • Hier mal ein Update von mir.


    Ich habe die Ausgabe der Versandkosten auf der Produkt-Detail Seite jetzt so umgesetzt wie ich mir das vorgestellt hatte. Jetzt habe ich aber noch eine andere Frage. An welcher Stelle bzw. in welcher PHP Datei wird die Seite erstellt, auf der Kunden seine Adress-Daten eingeben muss? In der URL steht sowas wie "<Domain>/index.php/online-shop/user/editaddresscartBT".


    Gruß,

    Frank

  • Servus,


    schau einmal unter components/com_virtuemart/views/user.


    Dort gibt es die edit.php, dort wird die edit_address.php aufgerufen, und dort wiederum die edit_address_addshipto.php und edit_address_userfields.php.


    Overrides im Template anlegen.

    templates/mein_template/html/com_virtuemart/user

    oder je nach Template-Hersteller auch schon einmal in Ordnern die sich z. Bsp. layouts nennen.

    Template-Dokumentation beachten.


    Grüße

    Stefan