"Kopie von Shop: Konfiguration/Warenkorb" Widget - Formularfelder erweitern möglich?

  • Hallo zusammen, ich habe vor kurzem die Business-Lizenz 13.3.0 erworben und arbeite mich langsam in das Programm ein.

    Bisher gefällt es mir sehr gut und sehr viel Code-Arbeit bleibt mir erspart... Es fängt langsam an spaß zu machen.

    Meine Kentnisse in HTML, CSS, JavaScript und PHP sind ganz ok.

    Nun bin ich auf ein Problem gestoßen, wo ich seit Tagen nicht mehr weiterkomme...

    Ich möchte in der Datei warenkorb.php (Bestellung Aufgeben) noch ein paar Formular-Felder hinzufügen.
    (Oberhalb von "Zahlungspflichtig bestellen" Button)

    Wenn ich das System richtig verstanden habe, dann muß ich das Widget "Shop: Konfiguration/Warenkorb" als Kopie anlegen um es dann an meine Bedürfnisse anzupassen.


    Zum Testen habe ich folgendes gemacht:

    1. Ich habe ein Responsive Design ausgewählt und Projekt kopiert (also abgekoppelt) --> Ergänzung: "Gesamtes Projekt "neu anlegen/abkoppeln" ist aber nicht unbedingt notwendig!

    2. Habe dann "Web-Projekt" Kopien von: "Konfiguration/Warenkorb" und "Artikel-Anzeigen" Widgets erstellt (um sie später anzupassen)

    3. Beide Widget-Kopien habe ich dann nacheinander eingebunden. Jedes Widget auf extra Seite (erst Warenkorb, dann Artikel)

    4. Beim Einbinden des Artikel-Widgets taucht folgende Fehlermeldung auf:


    Fehler bei der Onlineshop Erstellung. Um einen Onlineshop-Artikel

    einzubinden, müssen Sie zuerst das Widget "Konfiguration / Warenkorb" auf

    einer Seite einfügen.


    Wenn ich das Original Widget ("Konfiguration/Warenkorb") einbinde und nicht die Kopie, dann kommt diese Fehlermeldung nicht.

    (Serverseitig ist auch alles ok und Shop funktioniert dann auch)

    Konfiguration/Warenkorb + Kopie-von-Artikel-Anzeigen --> funktioniert!

    Kopie-von-Konfiguration/Warenkorb + Kopie-von-Artikel-Anzeigen --> funktioniert nicht!

    Geht das überhaupt was ich vorhabe, oder ist das ein Bug?

    Gibt es eventuell eine andere Möglichkeit weitere Felder im "Warenkorb/Bestellung Aufgeben" hinzuzufügen?

    Vielen Dank.


    acanthus

    Freundlich grüßt Sie/Dich/Euch

    acanthus

    2 Mal editiert, zuletzt von acanthus (15. September 2017 um 09:53) aus folgendem Grund: Pseudo-Name war falsch

  • Hallo,

    da müsste dann das Widget "Bestellartikel" auch entsprechend kopiert werden und darin die Abfrage nach dem Widget "Konfiguration / Warenkorb" auf den Namen der Kopie geändert werden.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Hallo Herr Seiz,

    vielen Dank für den Hinweis und die schnelle Antwort, es funktioniert.

    Lösung:
    In "kopie-fuer-bestellartikel" (hier standard.html)

    Zeile 12: var foundItems = project.getArticlesWithStyle("kopie-von-warenkorb-onlineshop-konfiguration");

    (das grün markierte ergänzen)

    Eigentlich ganz einfach, bin glaub ich noch nicht so ganz im Zeta-Flow angekommen. ;)
    Danke!

    acanthus

    Freundlich grüßt Sie/Dich/Euch

    acanthus

  • Guten Tag!

    Ich habe gerade das gleiche Problem.

    Ich habe das bisherige Warenkorbsystem genutzt, benötige jetzt aber auch noch Felder.

    Muss ich die Seite vollständig neu anlegen/abkoppeln oder kann ich einfach eine Kopie der Widgets anlegen, diese
    anpassen und dann dieses Warenkorbsystem einpflegen?

    Vielen Dank im Voraus

  • Guten Morgen,

    wir haben hierzu nur das Widget Shop Highlight Artikel kopiert und anschließend im Widget Ordner die html und css nach unseren Bedürfnissen angepassst, hat prima geklappt.

  • Sie müssen die Seite nicht neu anlegen. Wenn Sie ein Widget kopieren und es unter dem Original-Namen im "widgets"-Ordner innerhalb des Projektordners liegt, dann hat dieses Widget Vorrang vor den von uns gelieferten Widgets und wird stattdessen im Projekt benutzt.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • @Grillmueller

    Habe jetzt den 1. Punkt oben (grün) mit Information von @Stefan S ergänzt.

    Jetzt ist es deutlicher... man kann "anlegen/abkoppeln", muss aber nicht.

    acanthus

    Freundlich grüßt Sie/Dich/Euch

    acanthus

    Einmal editiert, zuletzt von acanthus (15. September 2017 um 12:27)

  • Super, das funktioniert. Tausend Dank!

    Muss ich darauf achten, ob bei einem Update/Upgrade von Zeta Producer das Projekt überschrieben wird bzw. meine angelegten Kopien?

  • Wenn das Widget im Projekt oder dem User-Ordner liegt, sollte es nicht überschrieben werden. Backups sind aber generell zu empfehlen!

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Hallo Acanthus!

    Grrrrrr..... habs doch nicht geschafft, bekomme jetzt die gleiche Fehlermeldung.... :(

    Zitat:

    Guten Morgen,

    wir haben hierzu nur das Widget Shop Highlight Artikel kopiert und anschließend im Widget Ordner die html und css nach unseren Bedürfnissen angepassst, hat prima geklappt.


    html Datei habe ich gefunden. Welche css? Die bestellartikel.css ist fast leer steht nur min-width drin :(

    Muss ich die standard.php auch ändern?


    Vielen Dank im Voraus

  • Hallo Grillmueller,

    will Dich nicht entmutigen, aber das ist alles nicht so trivial wie es scheint. Ja, die standard.php ist auch wichtig. Ich musste mehrere Dateien anpassen. So weit ich mich erinnern kann habe ich an folgenden Dateien Änderungen vorgenommen:

    - standard.php

    - addressform.php

    - controller.php

    - shopmanager.php

    - ordersent.php

    Im Widget selbst müssen dann noch zusätzlich die "Macros" für die neuen Formularfelder gesetzt werden, damit diese auch später in der E-Mail zu sehen sind.

    Auf alles detailliert einzugehen und zu beschreiben würde hier den Rahmen sprengen. Hoffe es hilft Dir trotzdem erst mal weiter.

    Freundlich grüßt Sie/Dich/Euch

    acanthus

    2 Mal editiert, zuletzt von acanthus (18. Oktober 2017 um 15:17)

  • Wenn das nicht korrekt gemacht wird, und Namen der Widgets und Ordner nicht verändert werden, dann kann Ihre Anpassung bei Programm oder Online-Updatea überschrieben werden!

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Stefan S

    Vielen Dank für den Hinweis. Das wäre ein böses Erwachen....

    Ich hoffe es reicht aus wenn die o.g. Änderungen an der "Kopie des Widgets" gemacht wurden.

    Reicht es schon aus wenn man nur an der "Kopie" Änderungen/Anpassungen vornimmt um auf der sicheren Seite zu sein, oder greift ein Update noch tiefergehend ein?

    Freundlich grüßt Sie/Dich/Euch

    acanthus

  • Das kann ich Ihnen mangels genauer Kenntnis Ihrer Anpassungen etc. nicht genau sagen. Sie sollten sich halt um eine Datensicherung Ihrer Anpassungen kümmern, dann kann ja eigentlich nichts schiefgehen.

    Wenn Sie dann allerdings ein kopiertes Widget im Einsatz haben, dann profitieren Sie nicht von Weiterentwicklungen im Shop, die mit Updates zur Verfügung gestellt werden. Zudem ist der Shop auch ein Sonderfall, denn hier sind interne Programmfunktionen sehr mit dem Widget verzahnt. Das beste wäre also bei jedem Update des Shops-Codes die Anpassungen in der aktualisierten Version nochmals vorzunehmen (Stichwort: diff tool).

    Generell rate ich aber von Anpassungen der Shop-Widgets ab, wenn sich das irgendwie vermeiden lässt, denn gerade beim Shop wird das früher oder später sicher zu Problemen führen.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • ok verstehe, ich mache bereits Backups + Datensicherung, aber werde noch zusätzlich die angepassten Widgets extra sichern, sollte dann ausreichen.:thumbup:

    Wenn ich von den Vorteilen eines Shop-Updates profitieren möchte, wird mir wohl nichts anderes übrigbleiben als die Code-Anpassungen erneut vorzunehmen. Aber alles zu seiner Zeit...

    Das Stichwort: "diff tool" ist super. Heraus kam "DiffChecker". Klein, fein, aber mächtig... wusste nicht das es so etwas auch online gibt. Dieses Tool wird mir noch sehr nützlich sein.

    Dankeeeee... :)

    Freundlich grüßt Sie/Dich/Euch

    acanthus

  • Vielen Dank für die Hinweise Stefan,

    gibt es denn eine andere Möglichkeit zusätzliche Felder in das Warenkorbsystem einzufügen ohne den o. g. Aufwand?

    Derzeit habe ich das Bestellsystem und nach Abschluss muss der Kunde ein separates Formular ausfüllen. Das ist für manche Kunden offenbar zu kompliziert.

    Daher wäre es prima, wenn ich diese Felder in das Bestellsystem einfügen könnte, so dass der Kunde nicht nur Namen und E-Mail Adresse eintragen kann, sondern noch

    weitere Informationen. Ich bräuchte ca. 13 zusätzliche Felder (Zeilen).

    Vielen Dank im Voraus

  • Hallo,

    nein, Felder kann man aktuell nicht hinzufügen. Aber erklären Sie doch, was Sie zum Beispiel an zusätzlichen Feldern unbedingt benötigen, vielleicht verstehen wir es dann besser und können den Shop künftig auf solche Wünsche ausrichten. 13 Felder scheint mit etwas viel, das dürfte dann auch den "Bestellwillen" Ihrer potentiellen Kunden kräftig dämpfen.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • @Grillmueller

    Hallo nochmal, falls Du es trotzdem machen möchtest, hier noch ein paar Tipps:

    Vorweg, ich habe die Anpassungen an der 13.3.0 Version vorgenommen.

    Die Info die ich Dir oben gegeben habe ist schon "die halbe Miete". Die zusammenhängenden Dateien zu finden war für mich das aufwendigste an der ganzen Sache.

    Wenn Du keine speziellen extra Funktionen oder ähnliches brauchst, musst Du noch nicht einmal programmieren. Es ist ja bereits alles fertig programmiert.

    Also, schau Dir die o.g. Dateien an und nimm erst mal 1 bereits vorhandenes Formularfeld. z.B. "Name".

    Nun suchst Du innerhalb dieser PHP-Dateien alles was mit dem Feld "Name" zusammenhängt und machst dort Deine Ergänzungen mit einem neuen Formular-Feld.

    z.B.: controller.php

    Code
    ...
    $form_input['name'] = '';   //Original
    $form_input['testfeld'] = '';   //Neu
    ...

    Und so hangelst Du Dich durch alle Dateien und ergänzt dort, nach dem bereits vorhandenen Code-Muster, die Werte für das neue Feld. Du wirst verstehen, dass ich jetzt nicht alle Anpassungen heraussuchen werde. Würde mich einiges an Zeit kosten.

    Dein Kenntnisstand was PHP, JavaScript, HTML anbelangt ist mir nicht bekannt. Wenn Du also nicht so fit bist in den Bereichen, dann mach das Ganze erst einmal nur für 1 neues Formular-Feld, sonst schleichen sich schnell evtl. Fehler ein.

    Noch ein wichtiger Tipp:

    Schau Dir die "debug.inc.php" an und setze während der Anpassungen die Werte vorübergehend auf "true". Hilft bei evtl. Fehlersuche.

    Wenn alle PHP-Dateien angepasst wurden, muss man noch die "Macros" setzen.

    Dazu öffnest Du in Zeta Producer das Warenkorb-Widget, öffnest die "Textvorlagen" und trägst dort den Namen für das neue Feld ein. z.B:

    ...
    Name:
    [NAME] // Original

    Testfeld: [TESTFELD] //Neu

    ...

    Wenn alles richtig gemacht wurde, sollte es theoretisch funktionieren. Die Formularfelder inkl. "Labels" sollten im Browser sichtbar sein und die versendete E-Mail die neuen Werte beinhalten.

    Die Hinweise von @Stefan S in diesem Thread, sollte man aber bei dieser ganzen Aktion dringend beherzigen.

    Betrifft auch mich selbst... ;)

    Viel Erfolg!

    Freundlich grüßt Sie/Dich/Euch

    acanthus

  • Hallo Stefan!

    Vielen Dank für die rasche Antwort.

    Es geht hier um die Seite https://sportschule-berlin.de/termine-buchung.php

    Dort habe ich das Bestellsystem eingefügt und der Kunde muss anschließend ein Anmeldeformular ausfüllen.

    Dieser Schritt, wie gesagt, überfordert offenbar so manch Einen ;).

    Das hätte ich gern in einem Schritt.

    Ist das irgendwie möglich?

    acanthus Vielen Dank für die Erklärung, aber das erscheint mir unangemessen viel Aufwand.... :(. Den ich aber wohl betreiben werden muss, falls sich keine andere Lösung finden sollte :(.

  • @Grillmueller

    Als unangemessen empfinde ich den Aufwand nicht unbedingt, es wäre die Lösung für das Problem. Ich denke eine andere Lösung wird es vorerst nicht geben, aber lasse mich gerne eines Besseren belehren. Das wurde aber weiter oben auch schon deutlich erwähnt das Felder aktuell nicht hinzugefügt werden können. Du wirst nicht drumherum kommen es selbst zu machen... oder es machen zu lassen.

    Freundlich grüßt Sie/Dich/Euch

    acanthus

  • Hallo,

    im oben geschilderten Fall wird es sicher nie eine Shop-Anpassung geben, die diesen Sonderfall abdeckt. Ich würde so vorgehen, dass ich den Veranstaltungsort und das Datum als "Artikelvariante" anlege, so dass diese 2 wichtigen Daten bereits über die Bestellung eingesammelt werden. Dann würde ich meinen Mitarbeitern beibringen, dass man nach jeder neu eingegangenen Bestellung dem Besteller eine E-Mail sendet mit der Bitte, die Anmeldung abzuschließen (link auf das Anmeldeformular).

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!