In eine Bestellung Bilder der bestellten Produkte anzeigen

Thema wurde von VItalij Friesen, 26. April 2016 erstellt.

  1. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    Vielen Dank,

    entweder ich mache da was falsch, oder es hat sich ein kleiner Fehler eingeschlichen.

    Mit der Änderung werden die Artikelnamen über den Spaltenbezeichnungen angezeigt.

    "Bild per Popup" funktioniert aber.
     
  2. Marias Einkaufsparadies

    Marias Einkaufsparadies Erfahrener Benutzer

    Registriert seit:
    12. Dezember 2021
    Beiträge:
    371
    Danke erhalten:
    156
    Danke vergeben:
    90
    Und wenn man jetzt noch einige "<div class="span12">" auf "<div class="span1">"

    Code:
    <tr>
                                    <th>
                                        <div class="grid">
                                            <div class="span14">
                                                <?php echo TABLE_HEADING_QUANTITY; ?>
                                            </div>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="grid">
                                            <div class="span14">
                                                <?php echo TABLE_HEADING_IMAGES; ?>
                                            </div>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="grid">
                                            <div class="span14">
                                                <?php echo TABLE_HEADING_PRODUCTS; ?>
                                            </div>
                                        </div>
                                    </th>
                                    <th class="text-right">
                                        <div class="grid">
                                            <div class="span14">
                                                <?php echo TABLE_HEADING_PRODUCTS_MODEL; ?>
                                            </div>
                                        </div>
                                    </th>
                                    <th class="text-right">
                                        <div class="grid">
                                            <div class="span14">
                                                <?php echo TABLE_HEADING_NET; ?>
                                            </div>
                                        </div>
                                    </th>
    
                                    <?php if($GLOBALS['order']->products[0]['allow_tax']) { ?>
                                    <th class="text-right">
                                        <div class="grid">
                                            <div class="span14">
                                                <?php echo ENTRY_TAX; ?>
                                            </div>
                                        </div>
                                    </th>
                                    <th class="text-right">
                                        <div class="grid">
                                            <div class="span14">
                                                <?php echo TABLE_HEADING_GROSS; ?>
                                            </div>
                                        </div>
                                    </th>
                                    <?php } ?>
    
    und:
    Code:
    <tr>
                                        <td>
                                            <div class="grid">
                                                <div class="span14">
                                                    <?php
                                                        // Check if value in the database is an integer.
                                                        $isPriceInteger = (int)$productInformation['qty']
                                                                          == $productInformation['qty'];
    
                                                        // Output number as integer or float value
                                                        // depending on type of the value saved in the database.
                                                        if($isPriceInteger)
                                                        {
                                                            // Output number as integer.
                                                            echo number_format($productInformation['qty']) . ' '
                                                                 . $productInformation['unit_name'];
                                                        }
                                                        else
                                                        {
                                                            // Output number with two decimal value.
                                                            echo number_format($productInformation['qty'], 2) . ' '
                                                                 . $productInformation['unit_name'];
                                                        }
                                                    ?>
                                                </div>
                                            </div>
                                        </td>
                                        <td>
                                            <div class="grid">
                                                <div class="span14">
                                                    <?php
                                                        $bild_query = xtc_db_fetch_array(xtc_db_query("SELECT products_id, products_image FROM products WHERE products_id = '" . $productInformation['id']. "'"));
                                                    ?>
                                                        <a data-tooltip-trigger href="<?php echo DIR_WS_CATALOG_POPUP_IMAGES . $bild_query['products_image']; ?>" onclick="window.open(this.href, 'Bild', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no,width=850,left=100,height=850,top=10'); return false;"><img style="max-width: 50px;" src="<?php echo DIR_WS_CATALOG_THUMBNAIL_IMAGES . $bild_query['products_image']; ?>"/></a>
                                                </div>
                                            </div>
                                        </td>
                                        <td>
                                            <div class="grid">
                                                <div class="span14">
                                                    <?php
                                                        echo '<div class="products-name">' . $productInformation['name'] . '</div>';
                                                   
                                                    if (preg_match('/^GIFT_\d+$/', $productInformation['model']) === 1) {
                                                        $vouchersCreatedForProduct = [];
                                                        if (array_key_exists((int)$productInformation['opid'], $ordersProductsToVouchers)) {
                                                            $vouchersCreatedForProduct = $ordersProductsToVouchers[(int)$productInformation['opid']];
                                                        }
       
                                                        if (array_key_exists((int)$productInformation['opid'],
                                                                             $queuedVouchersByProductsId)) {
                                                            $queueIds  = array_map(static function ($queueEntry) {
                                                                return $queueEntry['unique_id'];
                                                            },
                                                                $queuedVouchersByProductsId[(int)$productInformation['opid']]);
                                                            $gvMailUrl = xtc_href_link('gv_mail.php',
                                                                                       http_build_query(['queue_ids' => $queueIds,]));
                                                            echo '<div class="gv-send"><a class="" href="' . $gvMailUrl
                                                                 . '">' . SEND_GV_MAIL . '</a></div>';
                                                        }
       
                                                        foreach ($vouchersCreatedForProduct as $orderProductVoucherCreated) {
                                                            echo '<div class="coupon-created">' . VOUCHER_CREATED . ' ' . $orderProductVoucherCreated['coupon_code'] . '</div>';
                                                        }
                                                    }
                                                   
                                                    //ATTRIBUTES AND GX-CUSTOMIZER
                                                        if ($productInformation['attributes'] !== null && count($productInformation['attributes']) > 0)
                                                        {
                                                            echo '<div class="attributes-container">';
                                                            for ($j = 0, $k = sizeof($productInformation['attributes']); $j < $k; $j ++)
                                                            {
                                                                if(!empty($productInformation['attributes'][$j]['option']) || !empty($productInformation['attributes'][$j]['value']))
                                                                {
                                                                    echo '- ' . $productInformation['attributes'][$j]['option'].': '.$productInformation['attributes'][$j]['value'].'<br/>';
                                                                }
                                                            }
    
                                                            include(DIR_FS_CATALOG . 'gm/modules/gm_gprint_admin_orders.php');
                                                            echo '</div>';
                                                        }
    
                                                        //PROPERTIES
                                                        if (is_array($productInformation['properties']) && count($productInformation['properties']) > 0)
                                                        {
                                                            echo '<div class="properties-container">';
                                                            for ($j = 0, $k = sizeof($productInformation['properties']); $j < $k; $j ++)
                                                            {
                                                                if(!empty($productInformation['properties'][$j]['properties_name']) || !empty($productInformation['properties'][$j]['values_name']))
                                                                {
                                                                    echo '- '. $productInformation['properties'][$j]['properties_name'].': '.$productInformation['properties'][$j]['values_name'].'<br/>';
                                                                }
                                                            }
                                                            echo '</div>';
                                                        }
                                                    ?>
                                                </div>
                                            </div>
                                        </td>
                                        <td class="text-right">
                                            <div class="grid">
                                                <div class="span14">
                                                    <?php
                                                    $modelArray =
                                                        ($productInformation['model']
                                                         !== '') ? array($productInformation['model']) : array('');
                                                    if(null !== $productInformation['attributes'])
                                                    {
                                                        foreach($productInformation['attributes'] as $productAttribute)
                                                        {
                                                            $model        =
                                                                xtc_get_attributes_model($productInformation['id'],
                                                                                         $productAttribute['value'],
                                                                                         $productAttribute['option'],
                                                                                         $languageId);
                                                            $modelArray[] = $model;
                                                        }
                                                    }
                                                    echo implode('<br/>', $modelArray);
                                                    ?>
                                                </div>
                                            </div>
                                        </td>
                                        <td class="text-right">
                                            <div class="grid">
                                                <div class="span14">
                                                    <?php
                                                    $net = $productInformation['price'];
    
                                                    if($productInformation['allow_tax'])
                                                    {
                                                        $divideValue = 100 + (double)$productInformation['tax'];
                                                        $net         = ($productInformation['price'] / $divideValue) * 100;
                                                    }
    
                                                    echo number_format($net, 2,',','.') . ' ' . $GLOBALS['order']->info['currency'];
                                                    ?>
                                                </div>
                                            </div>
                                        </td>
    
                                        <?php if($productInformation['allow_tax']) { ?>
                                        <td class="text-right">
                                            <div class="grid">
                                                <div class="span14">
                                                    <?php
                                                        echo gm_prepare_number($productInformation['tax']) . '%';
                                                    ?>
                                                </div>
                                            </div>
                                        </td>
                                            <td class="text-right">
                                                <div class="grid">
                                                    <div class="span14">
                                                        <?php echo number_format($productInformation['price'], 2,',','.') . ' '
                                                                   . $GLOBALS['order']->info['currency']; ?>
                                                    </div>
                                                </div>
                                            </td>
                                        <?php } ?>
     
  3. Marias Einkaufsparadies

    Marias Einkaufsparadies Erfahrener Benutzer

    Registriert seit:
    12. Dezember 2021
    Beiträge:
    371
    Danke erhalten:
    156
    Danke vergeben:
    90
    Mach mal bitte einen Screenshot.
     
  4. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    Sorry, hatte schon wieder alles Rückgängig gemacht und musste es neu einbinden.
    [​IMG]
     
  5. Marias Einkaufsparadies

    Marias Einkaufsparadies Erfahrener Benutzer

    Registriert seit:
    12. Dezember 2021
    Beiträge:
    371
    Danke erhalten:
    156
    Danke vergeben:
    90
    #25 Marias Einkaufsparadies, 12. Februar 2022
    Zuletzt bearbeitet: 12. Februar 2022
    Da wirst du was falsch gemacht haben. Schau dir den Code noch mal genau an.

    Ich habe mal meine Datei hochgeladen.... ( v4.5.1.1)
     

    Anhänge:

  6. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    #26 guenter_baeumler, 12. Februar 2022
    Zuletzt bearbeitet: 12. Februar 2022
    OK, dass ist jetzt Deine Datei:

    [​IMG]

    Da ist der Absatz wieder drin und teilweise Englisch(Bildüberschrift)

    ... und meine Datei
     

    Anhänge:

  7. Marias Einkaufsparadies

    Marias Einkaufsparadies Erfahrener Benutzer

    Registriert seit:
    12. Dezember 2021
    Beiträge:
    371
    Danke erhalten:
    156
    Danke vergeben:
    90
    Ach sorry. Ich habe mit Sprachdateien gearbeitet.

    Lege für Englisch in "lang/english/user_sections/" bzw. für Deutsch in "lang/german/user_sections/" jeweils den Ordner "admin" und dort den Unterordner "order" an.

    Dann lade die Sprachdaten hoch (erste ist englisch, zweite deutsch):
     

    Anhänge:

  8. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    sorry, das ist der Screenshot von Deiner Datei.

    Kannst Du bitte mal schauen was an meiner Datei fehlt, oder falsch ist? ich möchte die Sprachdateien ungern im Shop einfügen.
    Beim nächsten Problem meckert der Support wieder ich hätte was geändert und sie können mir dadurch nicht weiter helfen. (leider schon wiederholt vorgekommen)
    Danke
     
  9. Marias Einkaufsparadies

    Marias Einkaufsparadies Erfahrener Benutzer

    Registriert seit:
    12. Dezember 2021
    Beiträge:
    371
    Danke erhalten:
    156
    Danke vergeben:
    90
    Du hast ein "<td>" überschrieben.

    hinter:
    Code:
     <div class="grid">
                                                <div class="span12">
                                                    <?php
                                                        $bild_query = xtc_db_fetch_array(xtc_db_query("SELECT products_id, products_image FROM products WHERE products_id = '" . $productInformation['id']. "'"));
                                                    ?>
                                                        <a data-tooltip-trigger href="<?php echo DIR_WS_CATALOG_POPUP_IMAGES . $bild_query['products_image']; ?>" onclick="window.open(this.href, 'Bild', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no,width=850,left=100,height=850,top=10'); return false;"><img style="max-width: 50px;" src="<?php echo DIR_WS_CATALOG_THUMBNAIL_IMAGES . $bild_query['products_image']; ?>"/></a>
                                                </div>
                                            </div>
                                        </td>
    
    fehlt ein <td> für die nächste Spalte.

    Bitte nehme doch nicht meine Datei, da Du eine andere Shop-Version als ich hast. Bitte ergänze nur den Spaltanfang.
     
  10. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    Kleiner Fehler, große Wirkung.

    Vielen Dank, jetzt ist alles in Ordnung.

    Schönes Wochenende.
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    28. Dezember 2020
    Beiträge:
    233
    Danke erhalten:
    103
    Danke vergeben:
    28
    Richtig.
    Habe das Script von von 2016 bisher über mehrere Gambio-Versionen bis 4.4.0.3 weiterhin angepasst. Danke an @Manni_HB für die Vorlage. Es funktioniert weiterhin super.
    Die Kunden können aus der E-mail-Bestellbestätigung die bestellten Produkte aufrufen. Das ist Service für den Kunden und schafft Kundenbindung für weitere Bestellungen.
     
  12. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    Hallo Gerd,
    du hast ja das Script bis zur 4.4.0.3 angepasst. Bei mir funktioniert das in der Theme Version 4.5.1.2 nicht so richtig. (Bild wird in der Bestellbestätigung nicht angezeigt)
    Kannst Du dein angepasstes Script hier nicht zur Verfügung stellen? Wäre toll.
    Vorab vielen Dank und schönen Sonntag.
     
  13. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    Danke für den Hinweis. Natürlich habe ich den Cache geleert und eine neue Bestellung ausgelöst. Von einem Bild ist aber nichts zu sehen. Es ist nur ein Platzhalter für das Artikelbild ersichtlich.
     
  14. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Mein EMail-Programm ist so eingestellt, das ich externe Bilder nachladen muss.
    Ist das bei Dir auch so?
     
  15. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    Hallo Barbara,
    Ich arbeite mit Outlook 2019, da werden alle Bilder sofort angezeigt. (hab ich so eingestellt)
    Schönen Sonntag
     
  16. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    28. Dezember 2020
    Beiträge:
    233
    Danke erhalten:
    103
    Danke vergeben:
    28
    Habe das mal zusammengepackt.
    Den Ordner GPOrdersMaiIImg in GXModules hochladen. Cache (Module und Seitenausgabe) leeren.
    Die beschriebenen Anpassungen aus der "Notwendige-Anpassung-Bestellbestaetigung.html" vornehmen.
    Danach sollte in neuen, neu generierten Bestellbestätigungen und im Kunden-Account Bilder und Links zum Produkt angezeigt werden.
     

    Anhänge:

  17. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    Hallo Gerd,
    da nenne ich mal eine ausgezeichnete Anleitung.
    Der Depp war natürlich ich selbst. Ich hatte den GXModules-Ordner völlig ignoriert.
    Jetzt funktioniert es in der Mail zur Bestellbestätigung und natürlich auch in der Bestellhistorie.

    Vielen Dank nochmals.
     
  18. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    Guten Morgen Gerd,
    siehst Du eine Möglichkeit, auf der Basis der Änderungen in der Bestellbestätigung, über ein separates GX-Modul das Artikelbild auch im Lieferschein zu integrieren.
    Eine schöne und erfolgreiche Woche.
     
  19. guenter_baeumler

    guenter_baeumler Erfahrener Benutzer

    Registriert seit:
    22. Juni 2018
    Beiträge:
    376
    Danke erhalten:
    69
    Danke vergeben:
    69
    Guten Morgen,

    das Bild wird ja in der Bestellübersicht tadellos dargestellt.

    Seit dieser Änderung sind mir aber bisher zwei Probleme aufgefallen.

    Ein Kunde möchte per SofortÜberweisung bezahlen und bricht, aus welchem Grund auch immer, ab.
    Eine zweiter Versuch funktioniert.

    1. Problem:
    Die erste fehlgeschlagene Bestellung wird storniert um diese aus der Statistik zu bekommen und um den Bestand wieder zu aktualisieren.
    Dazu konnte ich bisher in der Bestellung die Zusammenfassung löschen. Jetzt erhalte ich eine Fehlermeldung:

    Ein unerwarteter Fehler ist aufgetreten...

    Die angeforderte Bestellung wurde nicht in der Datenbank gefunden (ID:0)

    2. Problem
    Bei der zweiten aktuellen Bestellung musste ich am Namen (gemäß Mail der Kundin) etwas ändern, was bisher auch kein Problem war. Jetzt erhalte ich danach die Fehlermeldung:

    Ein unerwarteter Fehler ist aufgetreten...
    $p_name ist kein String

    Rufe ich beide Bestellungen im Admin erneut auf, sind allerdings die Änderungen korrekt sichtbar.
    Auch in der Kundenhistorie sind die Änderungen ersichtlich.

    Hat einer eine Ahnung, ob das mit der Änderung (Artikelbild) zusammenhängen könnte?

    ... oder woran es sonst liegen könnte, das diese Fehler auftreten?

    Vielen Dank für die Mühe
     
  20. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    28. Dezember 2020
    Beiträge:
    233
    Danke erhalten:
    103
    Danke vergeben:
    28
    Dafür ist wahrscheinlich die admin/gm_pdf_order.php zuständig. Würde nicht mehr daran rumfummeln, das steht oben der Hinweis:
    WICHTIG! DIESE DATEI IST VERALTET UND WIRD IN DER ZUKUNFT ERSETZT.
    ÄNDERN SIE ES NUR FÜR FIXES. FÜGEN SIE KEINE NEUEN FUNKTIONEN AN,
    VERWENDEN SIE STATTDESSEN DIE NEUEN GX-ENGINE-BIBLIOTHEKEN.

    Was auch immer GX-Engine-Bibliotheken sind, damit habe ich mich noch nicht beschäftigt.