Anleitung Versandart klonen / kopieren (table)

Thema wurde von pema, 20. März 2015 erstellt.

  1. scp06

    scp06 Erfahrener Benutzer

    Registriert seit:
    15. Oktober 2015
    Beiträge:
    72
    Danke erhalten:
    1
    Danke vergeben:
    5
    Seit dem Update auf Version 4.5.1.2 klappt die geklonte Versandart bei mir auch nicht mehr. Fehlermeldung:

    Hat eine(r) eine Idee?
     
  2. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.669
    Danke erhalten:
    1.264
    Danke vergeben:
    300
    @scp06 Du musst deine geklonten Versandarten mit anpassen auf die neue Shopversion, denn in der gx_configuration Tabelle gibt es keine Spalte mit dem Namen configuration_key nicht mehr. Das heißt dort jetzt key. Vergleiche einfach deine Datei mit der neuen Originaldatei um die Änderungen zu sehen.
     
  3. scp06

    scp06 Erfahrener Benutzer

    Registriert seit:
    15. Oktober 2015
    Beiträge:
    72
    Danke erhalten:
    1
    Danke vergeben:
    5
    Danke Till. Habe ich erledigt, aber irgendwo fehlt noch was:

    Code:
    Unexpected error occurred...
    SQL Error! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key, configuration_value, configuration_group_id, sort_order, set_function, date' at line 1 Query: insert into gx_configurations (key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_SHIPPING_TABLE2_STATUS', 'True', '6', '0', 'gm_cfg_select_option(array(\'True\', \'False\'), ', now())
     
  4. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.669
    Danke erhalten:
    1.264
    Danke vergeben:
    300
    @scp06 Du hast nicht alle Spalten angepasst, schaue nochmal in der Orignal Datei /includes/modules/shipping/table.php nach, die Spalten für die Tabelle haben sich geändert. Wenn du die Dateien mit einem Programm zeilenweise vergleichst wirst du die Unterschiede schnell sehen und wo du noch Änderungen vornehmen musst.
     
  5. scp06

    scp06 Erfahrener Benutzer

    Registriert seit:
    15. Oktober 2015
    Beiträge:
    72
    Danke erhalten:
    1
    Danke vergeben:
    5
  6. www.goobe.de

    www.goobe.de Neues Mitglied

    Registriert seit:
    30. Mai 2015
    Beiträge:
    2
    Danke erhalten:
    2
    Danke vergeben:
    5
    Hallo zusammen,
    ich habe Shop V4.5.2.2 und wollte ebenfalls meine Versandkosten nach Preis/Gewicht in table2 klonen.

    Die table geklont, anschließend angepasst und hochgeladen.Die Anzeige zum Installieren wäre vorhanden.
    (Siehe Screenshot). Die Sprachdateien wurden ebenfalls geklont und hochgeladen.
    (Caches und Browsercache wurden geleert)

    Screenshot 2022-04-20 204653.png

    Wenn ich nachfolgend auf Installieren gehe kommt folgende Fehlermeldung:

    Unexpected error occurred...
    SQL Error! Duplicate entry 'configuration/MODULE_SHIPPING_TABLE_STATUS' for key 'key' Query: insert into `gx_configurations` (`key`, `value`, `sort_order`, `type`, `last_modified`) values ('configuration/MODULE_SHIPPING_TABLE_STATUS', 'True', '0', 'switcher', now())

    Bitte um Hilfe. :(
     
  7. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    472
    Danke erhalten:
    79
    Danke vergeben:
    36
    Ich habe die Versandart Sammeln erstellt, und auf Position 8 gesetzt.

    Wenn ein Kunde bestellen möchte wird immer automatisch die Sammeln Versandart angezeigt, wie kann ich das ändern?

    Bild_2022-06-15_221839548.png

    versandart.png

    Danke Gruß
    Ralf
     
  8. agin

    agin Erfahrener Benutzer

    Registriert seit:
    8. April 2013
    Beiträge:
    221
    Danke erhalten:
    65
    Danke vergeben:
    116
    Das kommt daher, dass Gambio automatisch die billigste Versandmethode vorselektiert.
    Ja, das stört mehr als es nützt...

    Wenn du einfach gar keine Vorauswahl auf dem Screen haben willst, musst du in der Klasse "CheckoutShippingContentControl" in der Funktion "proceed()" die Zeile "$_SESSION['shipping'] = $shipping_modules->cheapest();" auskommentieren.
    Die Datei zu der Klasse findest du in "\system\classes\checkout".
    Du kannst das auch als Overload machen, und eine Ableitung in "\GXUserComponents\overloads\CheckoutShippingContentControl" machen.
    Aber "Updatesicher" wird das so auch nicht, da du nach einem Update sowieso deine abgeleitete Klasse gegen mögliche Änderungen im Original kontrollieren musst. Weil du im Prinzip die ganze Funktion kopieren musst.

    Eine elegantere als die o.g. (und bei mir implementierte) Lösung wäre, in der überschriebenen Funktion nur die Ursprungsfunktion aufzurufen, und anschließend die Variable "$_SESSION['shipping']" wieder zu resetten.
    DAS wäre dann wohl zumindest eine Zeit lang updatesicher.
    Müsste man mal ausprobieren. Allerdings würde die Auswahl dann jedes Mal zurückgesetzt, auch wenn der Kunde evtl. beim Navigieren durch den Checkout seine Auswahl schon mal getroffen hatte.
    Ohne Gewähr, und mit dem Quellcode von Shop Version 3.9.3.1.
    Musst checken ob der Mechanismus in der 4.5 noch gleich ist.
     
  9. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Das Verzeichnis wird in aktuellen Shopversionen nicht mehr genutzt.
    So aus dem Kopf müsste der Pfad jetzt
    GXModules/Meins/Shipping/Shop/Overloads/....
    sein
    Wobei "Meins" durch Deinen Namen oder Kürzel und "Shipping" durch eine beliebige Bezeichnung der Änderung ersetzt werden kann
     
  10. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    472
    Danke erhalten:
    79
    Danke vergeben:
    36
    Dank für Eure Hilfreiche Anleitung,
    die Datei habe ich in der aktuellen 4.5.3.1 nicht gefunden.
    Diese ist im Verzeichnis : "CheckoutShippingContentControl.inc.php" da gibt es auch die Zeile "$_SESSION['shipping'] = $shipping_modules->cheapest();" aber nicht unter: "proceed()"
    die steht unter: @param shipping $shippingModules
    wenn ich die Zeile dort ausklammere passiert nichts.
     
  11. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    ?
    Gerade die Vollversion 4.5.3.1 runter geladen und im Verzeichnis
    system/classes/checkout/
    die Datei
    CheckoutShippingContentControl.inc.php
    gefunden.
    Aber: das günstigste Versandmodul wird schon im Warenkorb vorausgewählt und nicht erst im Checkout.
    Was auch immer im Warenkorb angezeigt wird, ist dann auch im Checkout vorausgewählt.

    Das müsste in dieser Datei liegen:
    CartShippingCostsControl.inc.php
    und / oder in der
    CartShippingCostsAjaxHandler.inc.php

    die beide im Verzeichnis
    system/classes/shopping_cart/
    zu finden sind.
     
  12. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    472
    Danke erhalten:
    79
    Danke vergeben:
    36
    Hallo Barbara,
    vielen Dank dafür, jetzt stehe ich im Wald, was soll ich da ausklammern?
    Habe da einiges versucht, aber es bleibt nach jedem neu anmelden immer die günstigste Versandart.
     
  13. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    In der 4.5er Version wird das wohl über die includes/classes/shipping.php geregelt. Dort gibt es die Funktion "shopping_cart_cheapest". Die wird beim Aufruf des Warenkorbes aufgerufen und dort wird wohl die Versandart festgelegt.

    Je nachdem was Du erreichen möchtest, solltest Du Dich evtl. dort austoben.
     
  14. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    472
    Danke erhalten:
    79
    Danke vergeben:
    36
    Hallo Kai,
    auch da stehe ich auf dem Schlauch, müsste es nicht auch möglich sein in der themes/Honeygrid/html/system/shipping.html die Blöcke in eine andere Reihenfolge zu setzen!
    DHL soll immer an erster ausgewählt sein.

    Versandarten.png
     
  15. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    472
    Danke erhalten:
    79
    Danke vergeben:
    36
    #135 Anonymous, 23. Juni 2022
    Zuletzt bearbeitet: 23. Juni 2022
    Danke an Kai für die richtige Datei.

    Jetzt habe ich etwas hinbekommen.

    if($this->is_shipping_free() === true)
    habe ich auf false gesetzt, somit wird kein Modul aktiviert.

    und

    'module' => 'free', - habe ich ausgeklammert
    dann werden im Warenkorb erstmal keine Versandkosten angezeigt!

    Bild_2022-06-23_180917188.png
     
  16. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    5. Mai 2022
    Beiträge:
    1.529
    Danke erhalten:
    568
    Danke vergeben:
    221
    @Ralf von SC wenn ich in deinem Shop etwas in den Warenkorb lege, dann ist der Versandpreis auch 0€. upload_2023-3-14_11-1-3.png




    wenn ich dann auf den Stift klicke sieht es so aus:
    upload_2023-3-14_11-2-2.png
    erst wenn ich die Versandarten ändere, werden die Preise angezeigt.
     
  17. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    472
    Danke erhalten:
    79
    Danke vergeben:
    36
    Ja das ist auch korrekt so!
     
  18. Linda Skora

    Linda Skora Erfahrener Benutzer

    Registriert seit:
    28. September 2017
    Beiträge:
    136
    Danke erhalten:
    6
    Danke vergeben:
    62
    ok, hab es auch im HTML geändert, somit ist die Vorauswahl weg und der Kunde muss AKTIV die Versandart auswählen. Ein Schritt weiter.
    Aber im Warenkorb bleibt das Problem dass der Versand auf 0.00 € steht und ich auch nicht mit dem Stift (Versandart im Warenkorb ändern) etwas ändern kann. Erst wenn ich wirklich zur Kasse gehe