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?
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.
Immer diese Eröffnungsdemütigungen! 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!
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 gmGambio GmbHhttp://www.gambio.deCopyright (c) 2013 Gambio GmbHCopyright (c) 2014 Avenger, entwicklung@powertemplate.deSort products in order by products nameReleased 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.
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.
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
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.
Brauchst Du nicht.... Dann werden die einfach in der gespeicherten Reihenfolge gelistet, und die werden ja aufgrund der Sortierung schon richtig sortiert gespeichert.
Wer meine "Multi-Invoice"-Erweiterung nutzt: In "admin/pt_gm_pdf_order.php" PHP: ORDER by op.products_model ASC löschen!
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------