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: Daten an print_order übergeben

    karl

    • Schreiberling
    • Beiträge: 439
    Daten an print_order übergeben
    am: 21. Januar 2017, 14:14:03
    Kann mal jemand einen Tipp geben, wie die Daten an die print_order übergeben werden? Bin hier am verzweifeln. In der html ist der Aufruf ja klar. Habe dann in der includes/classes/order.php das gemacht:

    Code: PHP  [Auswählen]
          $order_query = "SELECT op.*,
                                     pd.products_description,
                                 pd.products_short_description,
                                                                pd.products_mhd_text
                            FROM "
    .TABLE_ORDERS_PRODUCTS." op
                       LEFT JOIN "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                                 ON op.products_id = pd.products_id
                                    AND pd.language_id = '"
    .(int)$order_lang_id."'
                           WHERE op.orders_id='"
    .(int)$oID."'";

    um pd.products_mhd_text erweitert. Und genau den Wert gibt der auch im Ausdruck raus aber alle anderen, die von TABLE_ORDERS_PRODUCTS." op mit * ausgelesen werden nicht.

    Wat nu?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=36441.0

    karl

    • Schreiberling
    • Beiträge: 439
    Re: Daten an print_order übergeben
    Antwort #1 am: 26. Januar 2017, 01:59:25
    Wenn ich bei ca. Zeile 340 das eintrage:
    Code: PHP  [Auswählen]
    $order_data[$index]['PRODUCTS_TAX'] = (($order_data_values['products_tax'] > 0.00) ? number_format($order_data_values['products_tax'], TAX_DECIMAL_PLACES) : 0);
            $order_data[$index]['PRODUCTS_QTY'] = $order_data_values['products_quantity'];
            $order_data[$index]['BUTTON_CART'] = '<a href="'.xtc_href_link(basename($PHP_SELF), 'action=add_order_product&order_id='.(int)$oID.'&id='.$order_data_values['orders_products_id'], 'SSL').'">'.xtc_image_button('small_cart.gif', IMAGE_BUTTON_IN_CART).'</a>';

    $order_data[$index]['PRODUCTS_VERPACKUNGSEINHEIT'] = $order_data_values;  // DAS IST DIE NEUE !!! als einziges Ausgabe Text: Verpackungseinheit: array

    steht dann in der Bestellbestätigung das:

    Verpackungseinheit: Array

    Was muß denn hinter $order_data_values stehen, damit der Wert aus der Datenbank angezeigt wird. Habe da alle möglichen Varianten versucht, die mir eingefallen sind in Anlehnung was in den Zeilen über dieser steht.

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Daten an print_order übergeben
    Antwort #2 am: 26. Januar 2017, 08:05:18
    Damit kommst du weiter.
    Code: PHP  [Auswählen]
    $order_data[$index]['PRODUCTS_VERPACKUNGSEINHEIT'] = $order_data_values['products_mhd_text'];

    karl

    • Schreiberling
    • Beiträge: 439
    Re: Daten an print_order übergeben
    Antwort #3 am: 28. Januar 2017, 01:09:55
    Nein, geht auch nicht.

    karl

    • Schreiberling
    • Beiträge: 439
    Re: Daten an print_order übergeben
    Antwort #4 am: 28. Januar 2017, 02:10:18
    Im Anhang mal die order-Dateien.

    Bei der Alten funktioniert alles, auch die Ausgabe in der order_mail. Bei der Neuen wird (wohl) durch die order_mail lediglich die MHD und MHD_TEXT ausgegeben (order_mail), warum auch immer. Da diese Zeilen ja hier in der Neuen order.php ausgeklammert sind. Bei den Angaben // geht nicht -> ausprobiert in Variationen.

    Wie sieht nun die richtige Syntax aus????

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Daten an print_order übergeben
    Antwort #5 am: 28. Januar 2017, 11:50:28
    Hier sind die geänderten Dateien.

    karl

    • Schreiberling
    • Beiträge: 439
    Re: Daten an print_order übergeben
    Antwort #6 am: 28. Januar 2017, 16:19:39
    Bei der Konstellation wird als Wert die MHD ausgegeben! Was ja bei Verpackunsgeinheit nicht richtig ist.

    Außerdem kommt die Ausgabe erst wenn statt "PRODUCTS_PRODUCTS_" nur "PRODUCTS_" eingetragen wird.

    In der order.php sollte ich das ja so eintragen:
    Code: PHP  [Auswählen]
    $order_data[$index]['PRODUCTS_WEIGHT'] = $order_data_values['products_mhd_text'];
    $order_data[$index]['PRODUCTS_GEWICHT'] = $order_data_values['products_mhd_text'];
    $order_data[$index]['PRODUCTS_INHALT'] = $order_data_values['products_mhd_text'];
    $order_data[$index]['PRODUCTS_VERPACKUNGSEINHEIT'] = $order_data_values['products_mhd_text'];
    $order_data[$index]['PRODUCTS_AUTHOR'] = $order_data_values['products_mhd_text'];
    $order_data[$index]['PRODUCTS_ISBN'] = $order_data_values['products_mhd_text'];

    Dann wird ja bei der Ausgabe der richtige Title-Text angezeigt, zu der Variablen aber immer mit da mit mhd_text gefüllt, wird auch nur dieser immer ausgegeben.

    Wenn ich das dann so ändere:

    Code: PHP  [Auswählen]
    $order_data[$index]['PRODUCTS_WEIGHT'] = $order_data_values['products_weight'];
    $order_data[$index]['PRODUCTS_GEWICHT'] = $order_data_values['products_gewicht'];
    $order_data[$index]['PRODUCTS_INHALT'] = $order_data_values['products_inhalt'];
    $order_data[$index]['PRODUCTS_VERPACKUNGSEINHEIT'] = $order_data_values['products_verpackungseinheit'];
    $order_data[$index]['PRODUCTS_AUTHOR'] = $order_data_values['products_author'];
    $order_data[$index]['PRODUCTS_ISBN'] = $order_data_values['products_isbn'];

    kommt wieder garnichts bei raus! Das Problem ist ja hier, das das Value nicht gefüllt wird, obwohl in Zeile 261 mit * von der Tabelle Orders_Products alles ausgelesen wird.

    Code: PHP  [Auswählen]
    $order_query = "SELECT op.*,
                                     pd.products_description,
                                 pd.products_short_description,
                                                                pd.products_mhd_text
                            FROM "
    .TABLE_ORDERS_PRODUCTS." op
                       LEFT JOIN "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                                 ON op.products_id = pd.products_id
                                    AND pd.language_id = '"
    .(int)$order_lang_id."'
                           WHERE op.orders_id='"
    .(int)$oID."'";

    Das ist es was ich nicht verstehe!!! :-?

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Daten an print_order übergeben
    Antwort #7 am: 28. Januar 2017, 19:33:38
    So, dann machen wir das ganze mal systematisch.
    Exportiere bitte die Struktur deiner Tabelle products_decription und poste diese hier.

    Denn eigentlich ist ganze recht einfach und läuft nach folgendem Schema ab:

    in der order.php in der Funktion getOrderData
    Code: PHP  [Auswählen]
    $order_data[$index]['SMARTY_NAME] = $order_data_values['datenbankfeldname'];

    Sinnvoll ist es auch, den Smartynamen so zu wählen, wie der Wert im Array heißt, z.B:
    Code: PHP  [Auswählen]
    $order_data[$index]['PRODUCTS_MHD_TEXT'] = $order_data_values['products_mhd_text'];
     

    So findet man die Sachen leichert wieder.

    Woher kommst du auf diese Aussage?
    Zitat
    Außerdem kommt die Ausgabe erst wenn statt "PRODUCTS_PRODUCTS_" nur "PRODUCTS_" eingetragen wird.
    In beiden print_order.html im Template dann so ausgeben:
    {$order_values.SMARTY_NAME}

    karl

    • Schreiberling
    • Beiträge: 439
    Re: Daten an print_order übergeben
    Antwort #8 am: 28. Januar 2017, 21:30:24
    Ich habe den Fehler (von meinem Murks) wohl gefunden, aber suche noch wie das zu beheben ist.

    Die fehlenden Felder in der Bestellbestätigung werden in der order.php aus der Tabelle ORDER_PRODUCTS gelesen, da sollten die auch stehen. Die Felder in der Datenbank sind aber leer. Da wird also Meinerseits durch das Einbinden, noch ein Fehler sein. Das beim bestellen die Felder nicht gefüllt werden.

    Bis zur checkout_confirmation wird das alles Ordungsgemäß angezeigt.

    Wo kann ich da suchen?

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Daten an print_order übergeben
    Antwort #9 am: 28. Januar 2017, 21:59:49
    Während des Checkouts wird alles angezeigt weil es im order-Objekt vorhanden ist. Erst mit dem Schritt zur checkout_success wird es in die Datenbank eingetragen.

    Am besten wird sein, wenn man es sich selber anguckt, weil es ansonsten ein zu langes hin und her ist.

    karl

    • Schreiberling
    • Beiträge: 439
    Re: Daten an print_order übergeben
    Antwort #10 am: 29. Januar 2017, 12:29:42
    Kannst Du mir denn die Stelle oder Datei nennen, an der das in die Tabelle ORDERS_PRODUCTS geschrieben wird. Ich suche mir hier den Wolf.

    karl

    • Schreiberling
    • Beiträge: 439
    Re: Daten an print_order übergeben
    Antwort #11 am: 29. Januar 2017, 18:37:50
    In einem anderen Beitrag schrieb der Alex: checkout_process.php - und so ist es.
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
    4 Antworten
    2323 Aufrufe
    29. Januar 2017, 22:03:09 von awids
    31 Antworten
    18275 Aufrufe
    13. Februar 2013, 17:11:22 von Spegeli
    5 Antworten
    3781 Aufrufe
    14. Oktober 2011, 19:33:05 von Tomcraft