Bestellübersicht aus dem Admin-Bereich im Shop anzeigen lassen

Ich würde gerne die Anzeige der Bestellungen (Bestellungen heute, Summe Bestellungen heute… usw.) aus dem Adminbereich im Shop anzeigen lassen. Hintergrund dafür ist ein Statistik-Menü, das bei uns im Shop nur den Leuten mit Admin-Rechten angezeigt wird. Dort sollen dann auch diese Statistiken rein.Wäre super, wenn mir jemand schreiben könnte, wie man folgende Variablen auch im Shop anzeigen lassen kann.

[{ $ordercnt }][{ $ordersum }][{ $ordertotalcnt }][{ $ordertotalsum }]

Hat denn niemand eine Idee??

Hallo,

ohne genau nachgeschaut zu haben: Versuch es doch bitte mal nach diesem Muster (Werte anpassen!)

$order->oxorder__oxbilllname->value

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG

Also wenn ich z.B. [{$ordertotalsum->oxorder__oxtotalordersum->value}] eingebe, dann wird nichts angezeigt.

Das Problem besteht wohl darin, das die Werte aus der Datenbank erst noch zusammengerechnet werden müssen, oder irre ich mich da?

Moin,

also wenn dann [{$order->oxorder__oxtotalordersum->value}]

Aber offenbar ist der Wert für’s Frontend nicht so ohne weiteres verfügbar :frowning:

Gruß


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

Scheint nicht zu funktionieren. Schade eigentlich.

Kommando zurück, ich war selbst auf der falschen Fährte: Seit der 4er Version arbeiten wir mit sog. gettern und settern. Ich bin hier fündig geworden:http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.0.1.0.15990/

Dort -> Class List -> oxOrder -> getTotalOrderSum ()

Diese Methode holt über sog. “lazy loading” den gewünschten Wert aus der Datenbank.

Gruß


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

Danke dir. Das klingt schonmal vielversprechend, nur weiß ich leider immer noch nicht was ich bei mir im Shop einfügen muss, damit der Wert auch angezeigt wird. [{ $order->getTotalOrderSum() }] führt leider zu keinem Ergebnis.

Ich befürchte, ihr sprecht aneinander vorbei:

[{$order->getTotalOrderSum() }] beinhaltet den Gesamtbetrag einer Bestellung. Um dies im Template aber so nutzen zu können, muß die betreffende Bestellung erst einmal geladen sein. Das muß natürlich im Script passieren. Und da vermute ich das Problem: Willst Du die Daten einer bestimmten Bestellung anzeigen, oder eher die statistischen Werte aller Bestellungen?

Daniel Seifert
D³ Data Development - Thomas Dartsch
OXID Premium Solution- & Technologiepartnerhttp://www.shopmodule.com

Es soll der statistische Wert aller Bestellungen angezeigt werden und nicht einer bestimmten.

Wenn man im Admin-Bereich auf Bestellungen geht, dann findet man dort folgendes:

Anzahl Bestellungen heute, Summe Bestellungen heute, Anzahl Bestellungen Total, Summe Bestellungen TotalUnd diese Werte würde ich gerne in den Shop selber integrieren.

also ich blick hier im shop system zwar auch noch nicht soo wirklich durch aber vielleicht hilft dir das hier:

http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.0.1.0.15990/

oxOrder.getOrderCnt
(
$
blToday = false
)

Returns orders count

Parameters:

bool
$blToday if true calculates only current day orders
Returns:int Definition at line 1285 of file oxorder.php.

das sollte soweit ich das jetzt richtig beurteile eigentlich genau dass sein was du suchst.

//EDIT

hier noch was:

oxOrder.getOrderSum
(
$
blToday = false
)

Returns orders total price

Parameters:

bool
$blToday if true calculates only current day orders
Returns:int Definition at line 1266 of file oxorder.php.

Danke exo, das ist genau das was ich suche. Nur wie sieht jetzt der Befehl aus um das auch im Shop anzeigen zu lassen?

Hallo plexus,

nur, daß es nicht zu Verwirrungen kommt: Mein Beitrag zuvor beruhte auf einem Irrtum, hatte die falsche Methode im Gedächtnis… Asche aufs Haupt. :slight_smile:

Und nun zum Thema: Für den Aufruf dieser Methode benötigst Du ein oxorder-Objekt. Nun kommt es darauf an, an welcher Stelle Du die Werte anzeigen lassen willst und ob dort schon solch ein Objekt vorhanden ist. Wenn nicht, müßte dies vorher in einem winzigen Modul erzeugt und an Smarty übergeben werden. Über dieses Objekt läßt sich die Methode dann auch in Smarty aufrufen.

Daniel Seifert
D³ Data Development - Thomas Dartsch
OXID Premium Solution- & Technologiepartnerhttp://www.shopmodule.com

Oh man, davon hab ich ja gar keine Ahnung. Wie macht man so etwas?

An welcher Stelle im Shop willst Du die Angaben denn zeigen lassen?

Daniel Seifert
D³ Data Development - Thomas Dartsch
OXID Premium Solution- & Technologiepartnerhttp://www.shopmodule.com

Im Menü rechts. Also in der _right.tpl

…und, hat jemand eine Idee???

Idee schon, nur gut zu tun…

Leider ist Deine Aussage, wo Du das anzeigen willst, etwas schwammig. Ich ich vermute mal, das soll auf allen Shopseiten gezeigt werden (also Startseite, Detailseite usw.)?!

Dann muß ein Modul her, welches eine der oxcmp-Klassen erweitert. Nur die sind shopweit gültig.

Jetzt gehe ich mal ausnahmsweise von meinem Grundsatz weg und poste den Modulansatz:


<?php

class plexus_oxcmp_utils_orderinfo extends plexus_oxcmp_utils_orderinfo_parent{ public function render() { $ret = parent::render(); $this->_oParent->_aViewData[‘oOrderInfo’] = & oxNew(‘oxorder’); return $ret; }}


(Irgendwie ist die BBCode-Funktionalität buggy, daher mal so markiert. Kopier den Inhalt bitte ohne die Sternchen.)

Das Ganze kopierst Du in eine Datei namens plexus_oxcmp_utils_orderinfo.php, legst diese im modules-Verzeichnis ab und registrierst sie im Admin unter “Stammdaten -> Grundeinstellungen -> System -> Module” mit folgendem Eintrag:

oxcmp_utils => plexus_oxcmp_utils_orderinfo

Im Template solltest Du dann mit z.B. [{ $oOrderInfo->getOrderSum() }] die gewünschten Werte auslesen können.

Hoffe, der Quelltext funktioniert. Hab’s noch nicht getestet.

Daniel Seifert
D³ Data Development - Thomas Dartsch
OXID Premium Solution- & Technologiepartnerhttp://www.shopmodule.com

Danke dass du dir die Mühe gemacht hast. Funktioniert soweit auch prima.

Ich bekomme jetzt angezeigt:

Anzahl Bestellungen Total mit… [{ $oOrderInfo->getOrderCnt() }]Summe Bestellungen Total mit… [{ $oOrderInfo->getOrderSum() }]

Leider weiß ich noch nicht, wie ich die Anzahl- und die Summe der Bestellungen die Heute getätigt wurden anzeigen lassen kann. Hast du da noch eine Idee?

Gibts bei den Methoden nicht einen Übergabeparameter $blToday? Nach der Beschriftung würde ich vermuten, daß Du damit auf den heutigen Tag eingrenzen kannst. Schau Dir da bitte noch einmal die Methoden an.

Daniel Seifert
D³ Data Development - Thomas Dartsch
OXID Premium Solution- & Technologiepartnerhttp://www.shopmodule.com