Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen

    Juan Carlos Silverio Gomez

    • Fördermitglied
    • Beiträge: 471
    • Geschlecht:
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #90 am: 14. Dezember 2017, 12:21:35
    Buenos días,

    habe neue Datenfelder angelegt und möchte Sie nun auch in der  product_options_selection.html etc.  darstellen lassen können. so a la: {$item_data.NeuesFeld} Hat da jemand eine lösung/vorschlag??
    Wáre Lieb. Danke
    Juan Carlos

    FS72

    • Mitglied
    • Beiträge: 131
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #91 am: 23. Februar 2018, 09:18:13
    Hallo zusammen,

    ich nutze bereits neue Eingabefelder in der Category.
    Nun benötige ich aber noch weitere im Bereich der sprachabhängigen Inputs nach Categories_Name.

    Hättet jemand bitte ein Beispiel, wie man ein weiteres Input sprachabhängig einfügt?
    (Mich interessiert eigentlich nur der Part, den ich in admin/includes/extra/modules/new_category einfüge.)

    Vielen Dank im Voraus!

    VG Frank

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #92 am: 23. Februar 2018, 10:33:46
    Das ganze sprachenabhängig hinzubekommen ist schon eine Hausnummer, weil man die Sprachen sammeln muss und dann das ganze mit Javascript durchlaufen lassen muss. Ist aber machbar.

    FS72

    • Mitglied
    • Beiträge: 131
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #93 am: 05. März 2018, 09:37:50
    Danke, dann füge ich es doch direkt ins Script ein.

    VG Frank

    filib

    • Neu im Forum
    • Beiträge: 11
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #94 am: 05. März 2021, 13:38:27
    Hallo,

    bin noch neu bei modified, und kämpfe gerade mit der Ausgabe eines eigenen DB Feldes im Warenkorb.
    Der Dokumentation bin ich gefolgt, hat einwandfrei funktioniert (https://www.modified-shop.org/wiki/Tutorial:_Zus%C3%A4tzliche_Datenfelder_Artikel_ab_Shopversion_2.x), mein Wert wurde auf der product info Seite ausgegeben.

    Zur weiteren Verarbeitung muss ich den Wert allerdings im Warenkorb ausgeben.
    Ich vermute das betrifft den Schritt "Autoloader Verzeichnis für Datenbank-Auslesefunktionen" in der Doku, aber diesselbe PHP-Datei einfach in das Verzeichnis includes/extra/modules/order_details_cart_content/ zu setzen hat mir natürlich noch keine smarty Variable ins Frontend geschickt.

    Kann mir jemand einen Denkanstoß geben, wie ich mein Datenbankfeld im Artikel hier ausgeben lassen kann?
    Grundlegende PHP-Kenntnisse sind vorhanden.
    v2.0.5.1 rev 12725 dated: 2020-04-22

    Vielen Dank schon mal!
    filib

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #95 am: 05. März 2021, 15:25:34
    Was steht denn in deiner auto_include-Datei ?
    Definiere da mal nicht lediglich $add_select_product[] sondern auch $add_select_cart[] mit demselben Inhalt.
    Im Template in /templates/DEIN_TEMPLATE/module/order_details.html sollte dein Feld dann mittels {$module_data.DEIN_FELDNAME} wenn dein Feldname "products_" enthält
    oder mittels
    {$module_data.PRODUCTS_DEIN_FELDNAME} wenn dein Feldname nicht "products_" enthält
    ausgebbar sein.

    Gruß,
    noRiddle

    filib

    • Neu im Forum
    • Beiträge: 11
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #96 am: 08. März 2021, 10:09:39
    Hallo noRiddle,

    danke für Deine Hilfe!
    Da ich meinen Wert aus der DB nur im Cart benötige, habe ich die autoload Datei folgendermaßen umgeschrieben:

    Code: PHP  [Auswählen]
    <?php
    $add_select_cart[] = 'p.products_myfield';

    $add_where_search = $add_select_cart;

    $add_select_default = $add_select_search = $add_select_cart;
    ?>

    ...und bekomme mein Feld jetzt als smarty Variable in order_details.html zurück :)

    Grüße
    filib

    filib

    • Neu im Forum
    • Beiträge: 11
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #97 am: 25. März 2021, 10:08:39
    So, ich nochmal!

    Ich habe jetzt ein Feld für die Ausgabe im Warenkorb (s.o.), und ein weiteres für die Ausgabe auf der Produkt-Info Seite.

    Code: PHP  [Auswählen]
    $add_select_cart[] = 'p.products_feldcart';
    $add_select_product[] = 'p.products_feldinfo';

    In den nächsten Zeilen, wo $add_where_search und $add_select_default befüllt werden, überschreiben sich die Variablen natürlich gegenseitig:

    Code: PHP  [Auswählen]
    $add_where_search = $add_select_cart;
    $add_select_default = $add_select_search = $add_select_cart;

    //hier wird ueberschrieben
    $add_where_search = $add_select_product;
    $add_select_default = $add_select_search = $add_select_cart = $add_select_product;

    Wie muss ich hier die beiden Felder miteinander verknüpfen, dass ich auch beide laden kann?
    Müssen hier auf irgendeine Weise arrays angelegt werden, die dann in die beiden Variablen gespeichert werden?

    Super wäre natürlich schon, falls mir jemand sagen kann, wo ich mir das Konzept abschauen kann.
    Hilfe zur Selbsthilfe ist immer effizienter  :-)

    Danke und Grüße
    filib

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #98 am: 25. März 2021, 12:40:42
    An dem [] erkennst du ja, daß du ein Array füllst.
    Du füllst also $add_select_cart und $add_select_product.
    Die diversen Arrays
    - also auch die $add_select_default und $add_select_search -
    werden an verschiedenen Stellen im Code und somit im Shop benutzt, wobei der Name der Arrays bereits darauf hindeutet wo sie benutzt werden.
    Um es sich einfach zu machen kann man alle Arrays mit demselben Wert des neuen Feldes füllen.
    Wenn du das also tun möchtest mußt du schlicht direkt nach jeder Definition die Zuordnung machen und nicht einmalig am Ende ganz unten.
    Also so:
    Code: PHP  [Auswählen]
    $add_select_cart[] = 'p.products_feldcart';
    $add_select_default = $add_select_search = = $add_select_product = $add_select_cart;

    $add_select_product[] = 'p.products_feldinfo';
    $add_select_default = $add_select_search = = $add_select_cart = $add_select_product;
     

    Damit füllst du die anderen Arrays jeweils mit dem was du gerade definiert hast.

    Übrigens kannst du dir zu Debug- und Info-Zwecken ja jederzeit die Arrays ausgeben lassen (am Beispiel $add_select_cart):
    Code: PHP  [Auswählen]
    echo '<pre>'.print_r($add_select_cart, true).'</pre>';

    Auch solltest du ein Tool benutzen mithilfe dessen du den kompletten Code nach Variablen oder Konstanten durchsuchen kannst, um herauszufinden wo sie benutzt und/oder definiert werden.
    notepad++ ist da z.B. eine gute Wahl.

    Hier die Empfehlungen von modified:
    FAQ: Liste wichtiger Freeware- & OpenSource-Programme für die Shop-Erstellung

    Gruß,
    noRiddle

    filib

    • Neu im Forum
    • Beiträge: 11
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #99 am: 26. März 2021, 09:43:12
    So ergibt das natürlich Sinn, ich bekomme jetzt beide Felder korrekt ausgegeben.
    Vielen Dank Dir nochmal!

    Gruß filib

    sb_cbo-do

    • Fördermitglied
    • Beiträge: 464
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #100 am: 06. Januar 2022, 11:55:51
    Hallo,

    ich benötige etwas Hilfe und zwar möchte ich gerne ein zusätzlich Datenfeld Zustand ($PRODUCTS_ZUSTAND) auch nach der Bestellung im Ausdruck angezeigt bekommen und zusätzlich auch in die Bestellbestätigungsmail anzeigen lassen.

    Im Warenkorb wird es schon angezeigt nachdem ich Datenbank-Auslesefunktion in
    /includes/extra/modules/order_details_cart_content/zustand.php

    Code: PHP  [Auswählen]
    <?php
    $add_select_cart[] = 'p.products_zustand';
    $add_where_search = $add_select_cart;
    $add_select_default = $add_select_search = $add_select_cart;
    ?>
    eingefügt habe.

    Zusätzlich habe ich auch die Date /templates/module/oder_details.html bearbeitet, so das nach der Lieferzeit der Zustand angezeigt wird.
    nach
    Code: PHP  [Auswählen]
    {if $module_data.PRODUCTS_SHIPPING_TIME}<strong>{$smarty.const.SHIPPING_TIME}</strong> {$module_data.PRODUCTS_SHIPPING_TIME}<br />{/if}
    habe ich folgendes eingefügt
    Code: PHP  [Auswählen]
    {if $module_data.PRODUCTS_ZUSTAND}<strong>{$smarty.const.TEXT_PRODUCTS_ZUSTAND}:</strong> {$module_data.PRODUCTS_ZUSTAND}{/if}<br />

    Nachdem ich die Datei /templates/module/checkout_confirmation.html bearbeitet habe, wird der Zustand auch nach Lieferzeit im Checkout angezeigt.
    Hier habe ich nach
    Code: PHP  [Auswählen]
    {if $data.shipping_time}<strong>{$smarty.const.SHIPPING_TIME}</strong> {$data.shipping_time}{/if}<br />
    folgendes eingefügt
    Code: PHP  [Auswählen]
    {if $module_data.PRODUCTS_ZUSTAND}<strong>{$smarty.const.TEXT_PRODUCTS_ZUSTAND}:</strong> {$module_data.PRODUCTS_ZUSTAND}{/if}<br />

    Ich bekomme es aber nicht hin, dass das zusätzliche Datenbankfeld Zustand auch nach der Bestellung beim drucken und in der Bestätigungsmail angezeigt wird.

    Ich habe die Datei /templates/module/print_order.html
    nach
    Code: PHP  [Auswählen]
    <th class="ord_table_right">{$smarty.const.HEADER_MODEL}</th>
    folgendes eingefügt
    Code: PHP  [Auswählen]
    <th class="ord_table_right">{$smarty.const.HEADER_PRODUCTS_ZUSTAND}</th>
    um die Überschrift der Spalte Zustand anzeigen zu lassen, welche auch angezeigt wird.
    Leider wird in der Spalte aber kein Wert angezeigt.
    Ich habe nach (hier habe ich die Spaltenbreite  auf kleinere Werte geändert)
    Code: PHP  [Auswählen]
    <td class="ord_table_right ord_width90">{$order_values.PRODUCTS_MODEL} {$order_values.PRODUCTS_ATTRIBUTES_MODEL}</td>
    folgendes eingetragen
    Code: PHP  [Auswählen]
    <td class="ord_table_right ord_width70">{$order_values.PRODUCTS_ZUSTAND}</td>
    Hier wird leider nichts angezeigt.

    Für die Bestellbestätigungsmail habe ich die /templates/mail/german/order_mail.html bearbeitet und ich möchte hier auch gerne den Wert Zustand nach der Lieferzeit angezeigt bekommen.
    nach
    Code: PHP  [Auswählen]
    {if $order_values.PRODUCTS_SHIPPING_TIME neq ''}<div style="padding: 4px 0px 4px 0px;">Lieferzeit: {$order_values.PRODUCTS_SHIPPING_TIME}</div>{/if}
    habe ich folgendes eingefügt
    Code: PHP  [Auswählen]
    {if $order_values.PRODUCTS_ZUSTAND}<strong>{$smarty.const.TEXT_PRODUCTS_ZUSTAND}:</strong>{$order_values.PRODUCTS_ZUSTAND}{/if}<br />

    Muss ich noch an weiteren stellen eine Datenbank-Auslesefunktion unter /includes/extra/modules einfügen oder habe ich etwas falsch gemacht?

    Ich hoffe das ich mich verständlich genug ausgedrückt habe und jemand eine Idee für die Lösung hat.

    Shopversion: v2.0.6.0 rev 13500 dated: 2021-04-01
    PHP Version: 8.0.14

    MFG,

    Sven

    Karl1

    • Experte
    • Beiträge: 1.805
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #101 am: 06. Januar 2022, 16:21:39
    Hallo Sven,
    setz doch mal in deine Templatedateien ganz oben
    Code: PHP  [Auswählen]
    {debug}
    und schau, ob deine Variable überhaupt zur Verfügung steht.
    Wenn nicht, musst du in den Dateien, die print_order.html und order_mail.html befüllen (print_order.php und send_order.php), weitersuchen.

    Gruß Karl

    sb_cbo-do

    • Fördermitglied
    • Beiträge: 464
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #102 am: 07. Januar 2022, 11:28:11
    Das mit dem {debug} und den anderen Foren Beiträgen hat mir schon weitergeholfen.
    Ich muss den Wert Zustand wohl in der Datei /includes/classes/order.php einlesen

    durch den Eintrag
    Code: PHP  [Auswählen]
    $order_data[$index]['PRODUCTS_ZUSTAND'] = $products_zustand;
    Wird  der Wert Zustand nun auch übergeben, aber leider als Wert "null", weil ich nicht weiß wie ich den Wert einlesen kann.

    Hat jemand eine Idee, wie ich den Wert $PRODUCTS_ZUSTAND in die Datei /includes/classes/order.php einfügen kann?

    MFG,

    Sven

    Karl1

    • Experte
    • Beiträge: 1.805
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #103 am: 07. Januar 2022, 13:18:41
    Hallo Sven,
    so einfach ist das nicht.
    Wenn du dir die Datei /includes/classes/order.php ansiehst, dann werden die Daten nicht aus den Produkt-Tabellen, sondern aus den Order-Tabellen geholt.
    Damit du deine Variable in die "$order_data" bekommst, musst du ein Klassenerweiterungsmodul für die Klasse Order erstellen.
    Mit diesem Erweiterungsmodul kannst du auf die Funktion "order_data" der Datei "/includes/classes/orderModules.class.php" zugreifen und "$order_data" erweitern.
    Schau dir mal includes/modules/order/productTagsOnCheckout.php an, dort wird die Funktion "cart_products" genutzt.

    Gruß Karl

    sb_cbo-do

    • Fördermitglied
    • Beiträge: 464
    Re: Shopversion 2.0.0.0 - Neue Datenbankfelder anlegen
    Antwort #104 am: 17. Januar 2022, 11:21:15
    Hallo,

    danke Karl, dass du mir ein paar Hinweise gegeben hast.
    Ich habe es versucht und es ist wirklich nicht so einfach
    Ich bekomme es nicht hin, dass ein weiteres Datenfeld nach der Bestellung in der Bestellbestätigungsmail oder beim Ausdruck nach der Bestellung angezeigt wird.
    Ich werde mich damit im Februar noch einmal befassen.

    MFG,

    Sven
    4 Antworten
    2094 Aufrufe
    23. April 2018, 17:32:07 von Onlineshopper
    4 Antworten
    3139 Aufrufe
    02. Februar 2013, 00:32:31 von TeeBlume
    2 Antworten
    1467 Aufrufe
    04. April 2017, 17:19:30 von maidofkent
    0 Antworten
    1383 Aufrufe
    18. Mai 2018, 12:27:25 von StefanGold