Artikelreihenfolge auf Rechnung ändern?

Thema wurde von Joschka, 24. März 2014 erstellt.

  1. Joschka

    Joschka Erfahrener Benutzer

    Registriert seit:
    27. Februar 2012
    Beiträge:
    771
    Danke erhalten:
    114
    Danke vergeben:
    218
    #1 Joschka, 24. März 2014
    Zuletzt bearbeitet: 24. März 2014
    Manche Leute kreisen so durch den Shop und legen mal aus Kategorie A einen Artikel in den Warenkorb, dann einen aus Kat. B, dann wieder 3 aus Kat A. usw. Oder sie legen Artikel aus einer Kategorie "wild durcheinander" in den WK. Also nicht zB ArtNr 1, 2, 3, ...oder A, B, C sondern ohne System. Einen von vorn, dann einen von unten, dann von der Mitte, dann wieder von vorn...,,.
    Das könnte einem ja egal sein. Ich hab aber oft 50 oder 100 Artikel bei einer Bestellung.
    Und bei uns im Lager sind die natürlich nach Kategorien und nach Artikelnummer geordnet.
    Is natürlich blöd, wenn die Reihenfolge der Artikel auf der Re. durcheinander ist.
    Da hätte ich gern, dass ich die Rechnung mit einem Klick sortieren kann. Nach Kategorienzugehörigkeit, oder alphabetisch oder nach irgendeiner Logik, die mit meiner Lagerlogik halbwegs zammpasst.
    Damit ich mir ein Vorsortieren bzw unnötige Kilometer beim Verpacken spare
    Weiß jemand, wie sowas geht?:confused:
     
  2. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Das ist ne clevere Idee und würde uns auch helfen, alphabetisch würde schon reichen.
     
  3. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das ist nicht so schwierig...

    Muss ich mal 'rausuchen....
     
  4. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    In "checkout_process.php" vor

    PHP:
    for ($i 0$n sizeof($order->products); $i $n$i ++) {
    einfügen

    PHP:
    $products_names=array();
    $products=$order->products;
    foreach (
    $products as $index=>$product)
    {
      
    $products_names[$index]=$product['name'];
    }
    asort($products_names);
    $order->products=array();
    foreach (
    $products_names as $index=>$product_name)
    {
      
    $order->products[]=$products[$index];
    }
    Wie immer gilt:

    Anwendung ausschließlich auf eigenes Risiko des Verwenders.

    Eine Gewährleistung jeglicher Art ist ausgeschlossen.

    Vor Einbau eine Sicherung der Shop-Programme vornehmen.

    Erst im Testshop testen.
     
  5. Joschka

    Joschka Erfahrener Benutzer

    Registriert seit:
    27. Februar 2012
    Beiträge:
    771
    Danke erhalten:
    114
    Danke vergeben:
    218
    Immer diese Eröffnungsdemütigungen! :D:D:D
    Vielen Dank für deine lösungsorientierte Leichtigkeit!
    Zusatzfrage: Wenn ich zB nach Artikelnummer sortiert haben möchte, wie tät der Code dann ausschaun?
    Bitte!
    Danke!
     
  6. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Wahrscheinlich products_model oder products_id, musst mal in die DB gucken.
     
  7. Joschka

    Joschka Erfahrener Benutzer

    Registriert seit:
    27. Februar 2012
    Beiträge:
    771
    Danke erhalten:
    114
    Danke vergeben:
    218
    Werde amal im Testshop rumspielen, was am Passendsten ist.
     
  8. Anonymous

    Anonymous G-WARD 2015/2016

    Registriert seit:
    20. Februar 2012
    Beiträge:
    8.755
    Danke erhalten:
    1.516
    Danke vergeben:
    1.051
    Oh Manno, das hätte ich auch gerne :)
     
  9. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.096
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Stell mir das gerade vor wie bei nem Wohnhaus 50 LKWs mit Kaminen vorfahren :D
     
  10. Joschka

    Joschka Erfahrener Benutzer

    Registriert seit:
    27. Februar 2012
    Beiträge:
    771
    Danke erhalten:
    114
    Danke vergeben:
    218
    Wir sollten unsere Firmen fusionieren!
    Meine Artikelmengen und deine Preise- die ideale Kombination!:cool:
     
  11. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Statt

    PHP:
    $products_names[$index]=$product['name'];
    PHP:
    $products_names[$index]=$product['model'];
     
  12. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das ganze jetzt noch mal in "updatesicher":

    folgenden Code als "user_classes\overloads\order\pt_sort_order.php" speichern.

    PHP:
    <?php
    /* --------------------------------------------------------------
    pt_sort_order.php 2013-09-18 gm
    Gambio GmbH
    http://www.gambio.de
    Copyright (c) 2013 Gambio GmbH

    Copyright (c) 2014 Avenger, entwicklung@powertemplate.de
    Sort products in order by products name

    Released under the GNU General Public License (Version 2)
    [http://www.gnu.org/licenses/gpl-2.0.html]
    ---------------------------------------------------------------------------------------*/

    class pt_sort_order extends pt_sort_order_parent 
    {
      function 
    cart() 
      {
        
    parent::cart();
        if (
    count($this->products))
        {
          if (!
    defined('ORDER_SORT_FIELD'))
          {
            
    define('ORDER_SORT_FIELD','name');
          }
          
    $products_sort=array();
          
    $products=$this->products;
          foreach (
    $products as $index=>$product)
          {
            
    $products_sort[$index]=$product[ORDER_SORT_FIELD];
          }
          
    asort($products_sort);
          
    $this->products=array();
          foreach (
    $products_sort as $index=>$product_name)
          {
            
    $this->products[]=$products[$index];
          }  
        }
      }
    }
    Standardmäßig wird nach Artikelname sortiert.

    Wenn man in der "includes\configure.php"

    PHP:
    define('ORDER_SORT_FIELD','model');
    definiert, dann wird nach Artikelnummer sortiert....

    Die Änderung in "checkout_process.php" kann dann wieder 'raus.

    Wie immer gilt:

    Anwendung ausschließlich auf eigenes Risiko des Verwenders.

    Eine Gewährleistung jeglicher Art ist ausgeschlossen.

    Vor Einbau eine Sicherung der Shop-Programme vornehmen.

    Erst im Testshop testen.
     
  13. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Hallo Avenger,

    bei mir ist mal wieder etwas merkwürdig. In der E-Mail Bestellbestätigung werden die Artikel wunderbar alphabetisch sortiert. Drucke ich die Rechnung aus, ist alles wieder kreuz und quer.
     
  14. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Mmh, ich habe das bisher nur im Front-End verwendet....

    Das Problem dürfte aber in der "admin/gm_pdf_order.php" liegen....

    Dort werden die Artikel beim Druck nach der "products_id" sortiert.....

    PHP:
        $order_query=xtc_db_query("
                                    SELECT
                                        op.products_id,
                                        op.orders_products_id,
                                        op.products_model,
                                        op.products_name,
                                        op.final_price,
                                        op.products_tax,
                                        op.products_quantity,
                                        opqu.quantity_unit_id,
                                        opqu.unit_name
                                    FROM " 
    TABLE_ORDERS_PRODUCTS " op
                                    LEFT JOIN orders_products_quantity_units opqu USING (orders_products_id)
                                    WHERE 
                                        op.orders_id='"
    .(int)$_GET['oID']."'
                                    ORDER BY
                                        op.orders_products_id ASC
                                "
    )
    Lösche einfach mal

    PHP:
                                    ORDER BY
                                        op
    .orders_products_id ASC
     
  15. Joschka

    Joschka Erfahrener Benutzer

    Registriert seit:
    27. Februar 2012
    Beiträge:
    771
    Danke erhalten:
    114
    Danke vergeben:
    218
    #15 Joschka, 2. April 2014
    Zuletzt bearbeitet: 2. April 2014
    Habe deinen Vorschlag folgendermaßen abgeändert (und nicht gelöscht)
    PHP:
                                    ORDER BY
                                        op
    .products_model ASC
    und jetzt werden die Artikel nach Artikelnummer sortiert. Wenn du op.products_model ASC durch op.products_name ASC ersetzt, dann sollte es nach Artikelnamen sortiert werden.
     
  16. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Brauchst Du nicht....

    Dann werden die einfach in der gespeicherten Reihenfolge gelistet, und die werden ja aufgrund der Sortierung schon richtig sortiert gespeichert.
     
  17. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Wer meine "Multi-Invoice"-Erweiterung nutzt:

    In "admin/pt_gm_pdf_order.php"

    PHP:
        ORDER 
          by op
    .products_model ASC
    löschen!
     
  18. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Perfekt! Vielen, vielen Dank.
     
  19. uwegondermann-1

    uwegondermann-1 Erfahrener Benutzer

    Registriert seit:
    21. Juni 2013
    Beiträge:
    95
    Danke erhalten:
    20
    Danke vergeben:
    26
    #19 uwegondermann-1, 2. Dezember 2014
    Zuletzt bearbeitet: 7. Dezember 2014
    Hallo,
    ich krame dieses Thema nochmal aus, weil ich das gleiche Problem habe, allerdings kann ich es in der Version v2.1.3.3 auf den hier beschriebenen Weg nicht lösen. Gibt es für diese Shop-Version eine Möglichkeit, die Artikel in der PDF-Rechnung nach der Artikelnummer zu ordnen?


    MfG aus Kassel
    Harald

    ----Hat sich erledigt------
     
  20. Michael R.

    Michael R. Erfahrener Benutzer

    Registriert seit:
    23. September 2011
    Beiträge:
    371
    Danke erhalten:
    7
    Danke vergeben:
    51
    Hallo Harald und wie hast Du das gelöst?
    Gruß
    Michael