Shop Hosting
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: EAN statt Artikelnummer in Bestellung

    sowieso-max

    • Neu im Forum
    • Beiträge: 18
    EAN statt Artikelnummer in Bestellung
    am: 08. November 2016, 16:17:37
    Guten Tag,

    ich hätte gerne die EAN Nr. statt der Artikelnummer in der Bestellung.

    Sehe ich das richtig in der checkout_process.php Zeile: 322

    Code: PHP  [Auswählen]
        $sql_data_array = array ( 'orders_id' => $insert_id,
                                  'products_id' => xtc_get_prid($order->products[$i]['id']),
                                  'products_model' => $order->products[$i]['model'],
                                  'products_name' => $order->products[$i]['name'],
                                  'products_shipping_time'=>$order->products[$i]['shipping_time'],
                                  'products_price' => $order->products[$i]['price'],
                                  'final_price' => $order->products[$i]['final_price'],
                                  'products_tax' => $order->products[$i]['tax'],
                                  'products_discount_made' => $order->products[$i]['discount_allowed'],
                                  'products_quantity' => $order->products[$i]['qty'],
                                  'allow_tax' => $_SESSION['customers_status']['customers_status_show_price_tax']
                                  );

    Nun könnte ich einfach
    'products_model' => $order->products[$i]['model']
    in
    'products_model' => $order->products[$i]['ean']
    umwandeln. Bleibt jedoch leer. Wo genau muss er sich die EAN holen?

    ( v1.06 rev 4642 SP2 )

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

    sowieso-max

    • Neu im Forum
    • Beiträge: 18
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #1 am: 09. November 2016, 12:01:17
    Push  :blower:

    Teratek

    • Schreiberling
    • Beiträge: 273
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #2 am: 09. November 2016, 12:40:29
    du hätteste die EAN gerne im Warenkorb und im checkout auf der Bestätigungsseite statt der Artikelnummer angezeigt?

    sowieso-max

    • Neu im Forum
    • Beiträge: 18
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #3 am: 09. November 2016, 13:01:44
    Genau, richtig.

    Mir würde es auf der Rechnung & Lieferschein und im Backend>Bestellungen schon reichen wenn statt der Artikel Nr. die EAN steht.

    Teratek

    • Schreiberling
    • Beiträge: 273
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #4 am: 09. November 2016, 15:26:51
    wenn das feld bei ean auch in deinen Artikeldetails gefüllt ist dann ist die ean vermutlich als variable in dem prozessschritt nicht verfügbar und muß erst eingebunden werden.

    Nadel im Heuhaufen :)

    Ich komme gerade nicht dazu zu suchen. Vielleicht hat ja einer der erfahrenen User hier direkt die Codestelle parat

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #5 am: 09. November 2016, 15:55:34
    Da müsste man entweder murksen ....
    Code: PHP  [Auswählen]
    $ean = xtc_db_fetch_assoc(xtc_db_query("SELECT products_ean FROM products WHERE products_id =".$order->products[$i]['id']));
    Da sollte rauskommen: array(0=> array('products_ean'=>'Wert'))
    Also so:
    Code: PHP  [Auswählen]
        $ean = xtc_db_fetch_assoc(xtc_db_query("SELECT products_ean FROM products WHERE products_id ='".$order->products[$i]['id']."'"));
        echo $ean[0]['products_ean'];
    Anstatt der echo Zeile das ganze einfach in eine Smarty Variable packen.

    Oder ... ohne Murks ... erst mal die Klasse orders so anpassen, dass in der Tabelle orders_products beim speichern der Bestellung auch products_ean mitgespeichert wird. Vorher braucht man die nicht versuchen auszulesen ... ;-)

    Da es nur ums Backend geht .... ich würde sagen versuch mal den Murks. Für Frontend ist das zu lahm!

    sowieso-max

    • Neu im Forum
    • Beiträge: 18
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #6 am: 21. November 2016, 13:21:41
    Hey Bonsai, danke für deine Antwort!
    Leider bekomme ich nur eine "weiße Seite" wenn ich es in die send_order.php einfüge.

    Code: PHP  [Auswählen]
      $ean = xtc_db_fetch_assoc(xtc_db_query("SELECT products_ean FROM products WHERE products_id ='".$order->products[$i]['id']."'"));
      $smarty->assign('EANNR', $ean);

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #7 am: 21. November 2016, 13:50:18
    Und das error_log sagt was? Ist wahrscheinlich ein Tippfehler ... Klammer zuviel / zuwenig oder so was.

    sowieso-max

    • Neu im Forum
    • Beiträge: 18
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #8 am: 21. November 2016, 14:18:06
    Leider gar nichts.. nimmt er nicht mit auf.

    Die Datei ist schon die richtige? ( send_order.php ) direkt im Root.

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #9 am: 21. November 2016, 14:36:36
    ja

     :datz:

    Denkfehler .... das $i ist da leer. Es gibt ja mehr als ein Produkt.

    Man müsste aus der Klasse Order alle Produkte für diese order_id holen, diese in einer Schleife durchlaufen und davon die products_ean holen.

    Mach das so wie das hier (lauffähiger Code in einem 1.06er Shop, /includes/classes/order.php):
    Code: PHP  [Auswählen]
          $orders_products_query = xtc_db_query("SELECT *
                                                 FROM "
    . TABLE_ORDERS_PRODUCTS . "
                                                 WHERE orders_id = '"
    . $order_id . "'");
          while ($orders_products = xtc_db_fetch_array($orders_products_query)) {
            $this->products[$index] = array('qty' => $orders_products['products_quantity'],
                                            'id' => $orders_products['products_id'],
                                            'opid' => $orders_products['orders_products_id'],
                                            'name' => $orders_products['products_name'],
                                            'order_description' => $orders_products['products_order_description'],
                                            'model' => $orders_products['products_model'],
                                            'tax' => $orders_products['products_tax'],
                                            'price'=> $orders_products['products_price'],
                                            'discount' => $orders_products['products_discount_made'],
                                            'shipping_time'=> $orders_products['products_shipping_time'],
                                            'final_price' => $orders_products['final_price'],
                                            'allow_tax' => $orders_products['allow_tax']
                                           );
            // BOC Jochen - show products date available in checkout                                                         
            $products_date_available_query = xtc_db_query("SELECT products_date_available FROM ". TABLE_PRODUCTS . " WHERE products_id = " . $orders_products['products_id'] );                                        
            while ($products_date_available = xtc_db_fetch_array($products_date_available_query)) {
                    $this->products[$index]['products_date_available'] = $products_date_available['products_date_available'];
                    if ($products_date_available['products_date_available'] !== null && strtotime($products_date_available['products_date_available']) < time()) $this->products[$index]['products_date_available'] = null;
            }
            // EOC Jochen - show products date available in checkout
     

    Du müsstest nur products_date_available mit products_ean ersetzen.

    Dann hast Du überall wo $order->products verfügbar ist, auch die products_ean

    Das geht übrigens wesentlich eleganter mit einem LEFT JOIN.  Habe nur jetzt leider keine Zeit dafür. Der code hier stammt von meinen ersten Gehversuchen mit modified. Da wusste ich noch nicht wirklich was ich tue ;-)

    Edit:
    die Zeile ist in Deinem Fall Unfug:
    Code: PHP  [Auswählen]
                    if ($products_date_available['products_date_available'] !== null && strtotime($products_date_available['products_date_available']) < time()) $this->products[$index]['products_date_available'] = null;
     

    web28

    • modified Team
    • Beiträge: 9.404
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #10 am: 21. November 2016, 15:25:48
    Für die Ursprungsidee mit Austauch von Artikelnummer/EAN in checkout_process.php

    Die function get_products() in includes/classes/shopping_cart.php mit products_ean erweitern.

    Einfach p.products_model gegen p.products_ean und $products['products_model'] gegen $products['products_ean'] austauschen.

    Alle anderen Änderungen sind dann unnötig, die EAN wird anstatt der Artikelnummer in der Bestellung gespeichert.

    Gruss Web28

    Hinweis: Ab 2.x wird die EAN zusätzlich gespeichert.

    sowieso-max

    • Neu im Forum
    • Beiträge: 18
    Re: EAN statt Artikelnummer in Bestellung
    Antwort #11 am: 21. November 2016, 16:04:16
    @web28: JA SAUBER! Das hat nun geklappt  :-D :-D :-D