Wie ist das mit Overload ?

Thema wurde von dmun, 11. August 2019 erstellt.

  1. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    Ich würde gerne die aktuelle Artikelanzahl eines Produktes im Shopping-Cart zur Verfügung haben um damit die Anzeige zu steuern. Soweit ich gesehen habe werden die Daten in der \system\classes\shopping_cart\OrderDetailsCartContentView.inc.php aufbereitet

    Um den Lagerbestand nun ebenfalls in den Formularen zur Verfügung zu haben müsste ich die public function prepare_data() um eine Abfrage ergänzen. Um die Änderung aber updatesicher zu machen müsste ich jetzt diese Funktion erweitern. Ist das richtig ? Wenn ja, wo muss ich da ansetzen bzw. die neue Datei ablegen und wie bekomme ich die Zuordnung zum jeweiligen Artikel hin oder muss ich die komplette Funktion in eine Overload-Datei packen inkl. meinen Änderungen sodass dann die prepare_data() aus der ursprünglichen Datei gar nicht mehr aufgerufen wird oder wie ist das vorgehen.... stehe etwas auf dem Schlauch und werde aus der Doku nicht so ganz schlau.

    Kann jemand helfen ?

    Grüße, Dirk
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Willst Du die Anzeige generell im Artikel im WK haben, oder soll das nur da stehen, wenn der Kunde zuviel im Warenkorb hat?

    Es gab mal eine Anleitung für GX2, - die ist nicht Updatesicher - funktioniert aber auch in meinem verbastelten testshop (3.12.2.1 noch halbwegs.

    Halbwegs deshalb, weil es nicht mit Eigenschaften geht, da kommt die normale Anzeige ohne den Lagerbestand
    Da wird der Text den man bei "nicht in ausreichender Menge" eingeben kann um den Lagerbestand ergänzt.
    sieht im WK dann z.B. so aus:
    Unbenannt.JPG

    die Datei, die da geändert wird ist die inc/xtc_check_stock.inc.php
    Diese scheint sich seit 2012 nicht geändert zu haben.

    Für die generelle Anzeige teste ich mal etwas....
     
  3. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    Es geht mir in erster Linie ums Verständnis, dafür bietet siech dieses "Anzeige-Problem" an, welches ich in einem anderen Thread beschrieben habe.
    Grundsätzlich könnte ich die Änderungen auch direkt in der entsprechenden Datei vornehmen und bei einem Update des Shops dann die Änderung wieder nach pflegen wenn sie überschrieben wurde. Da es aber die Methode mittels den Overloads gibt wäre dies vielleicht die schönere Lösung.
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Overload funktioniert leider nicht für alle Dateien.
    Und ich glaube hier geht es gerade nicht.

    Ich teste aber gerade etwas anderes....ich hatte bis vor Kurzem im Warenkorb auch eine Anzeige für Extrafelder, ich schau mal eben, ob das auch für die Bestandsanzeige geht.....
     
  5. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    Das ist genau der Punkt, der mich interessiert ;-)
     
  6. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Wenn eine Datei im Ordner "classes" liegt, geht es mit einem Overload - zumindest war das mal so.
    Ich habe auch noch eine alte Anleitung aus den Anfängen des Overload gefunden.
    (Link nur für registrierte Nutzer sichtbar.)
    Vielleicht hilft die für ein besseres Verständnis.
    Die hier angegebenen Pfade und Ordner sind aber nicht mehr aktuell.
     
  7. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Also eigentlich müsste die schon da sein.
    Es wird ja der Bestand im Warenkorb geprüft.
    Es gibt auch diese Zeile in der includes/classes/shoppingCart.php:
    'quantity' => $this->contents[$products_id]['qty'],

    Es fehlt offenbar nur die Ausgabe im Template oder Theme
     
  8. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    die einzelnen Position aus dem Cart werden über order_details.html über snippet\order_item.html dargestellt und die daten hierfür kommen aus OrderDetailsCartContentView.inc.php. Stimmt das ? Ich glaube ich müsste doch mal den XDebug installieren.. ;)
     
  9. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    ja, ist so. Ich müsste die Funktion prepare_data() OrderDetailsCartContentView.inc.php um die Ausgabe des Lagerbestandes erweitern (plus natürlich die Templates).
    Wenn ich es richtig verstehe, dann kann man sich in diese Funktion jetzt nicht einfach einklinken sondern in diesem Fall müsste ich die komplette Funktion plus Änderung in einer Overload platzieren. Die Datei in der dann der Overload steht müsste unter dem Verzeichnisbaum GXUserComponents\overloads\OrderDetailsCartContentView\ liegen. Stimmtdas soweit ?
     
  10. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    oder in GXModules/dmun/Warenkorb/Shop/Overloads/OrderDetailsCartContentView/
    Da könntest Du auch die snippet/order_item.htm mit den Erweiterungen ablegen
     
  11. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    Also OrderDetailsCartContentView wäre das richtige Verzeichnis ?
     
  12. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    ja.