Sortierung der Artikel in einer Bestellung

Hallo, liebe Entwicklergemeinde!

Es geht um die Sortierreihenfolge der Artikel einer Bestellung. In der E-Mail an den Benutzer und den Shop Admin ist keine sinnvolle Reihenfolge feststellbar. Ein wenig Reverse Engineering brachte mir dann die Info, dass angeblich nach oxorder.OXORDERNR sortiert wird - was aber augenscheinlich falsch ist. Wonach wird denn nun wirklich sortiert?

Hintergrund: Ich habe mir eine Schnittstelle zu Collmex (http://www.collmex.de) gebaut und hier ist die Reihenfolge der Datensätze in der Importdatei maßgeblich. Bis jetzt habe ich es noch nicht hinbekommen, dass die Sortierung in der E-Mail und hinterher in Collmex übereinstimmen, was praktisch wäre, um die Bestellung noch einmal überprüfen zu können (speziell bei großen Bestellungen).

Hoffe auf weise Einsichten.

LGCarsten


Der Essenzenladen http://www.essenzenladen.de
OXID eShop CE 4.0.1

push … muss doch hier jemand sein, der was zu dem Thema sagen kann, oder?


Der Essenzenladen http://www.essenzenladen.de
OXID eShop CE 4.0.1

Hallo Carsten,

ich glaube, da wird überhaupt nichts sortiert. Wenn ich das richtig sehe, läuft das über die getBasket() Funktion.

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG
http://twitter.com/marcosteinhaeus

Hallo Marco,

habe ich auch rausgefunden … hast Du zufällig die Stelle parat, an der die Datenbankabfrage gemacht wird. Im SQL String sollte ja dann ein ORDER BY stehen …

LGCarsten


Der Essenzenladen http://www.essenzenladen.de
OXID eShop CE 4.0.1

Hallo Carsten,

nee, sorry… nicht aus dem Stehgreif :frowning:

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG
http://twitter.com/marcosteinhaeus

Hallo Carsten,

es wird nach der OXARTID sortiert (wohl eine Zufallszahl). Wenn ich damit richtig liege :smiley:

finden tust du das in der oxorder.php::224 (ich denke mal das ist in der aktuellen Version auch so):

public function getOrderArticles()    {        if ( $this->_oArticles == null ) {            // order articles            $this->_oArticles = oxNew( 'oxlist' );            $this->_oArticles->init( 'oxorderarticle' );            $sSelect = 'select oxorderarticles.* from oxorderarticles                        where oxorderarticles.oxorderid="'.$this->getId().'"                        order by oxorderarticles.oxartid';            $this->_oArticles->selectString( $sSelect );        }        return $this->_oArticles;    }

Gruß

Benny

Hi!Danke für den Hinweis. Hatte ich auch schon mal selbst gefunden, ausprobiert und festgestellt, dass die Reihenfolge trotzdem nicht stimmt. Auch nachdem ich krampfhaft versucht habe, eine Sortierung zu erkennen habe ich bisher kein Muster feststellen können :frowning:

LGCarsten

UPDATE: Es gibt dazu auch einen halbwegs passenden Bugeintrag https://bugs.oxid-esales.com/view.php?id=882


Der Essenzenladen http://www.essenzenladen.de
OXID eShop CE 4.0.1