Hallo an alle, ich finde keine Möglichkeit, eigene Nummernkreise für Subshops einzurichten. Es geht insbesondere um verschiedene Bestell-Nummern, eventuell mit Prefix. Übersehe ich das, oder gibt es das gar nicht? Mein Kunde hat mehrere Subshops und braucht das dringend für die Warenwirtschaft, um die unterscheiden zu können. Für Shopware 3.5 hab ich was gefunden, aber nicht für die Version 4.3 …
Aus meiner Wühlkiste: // length private $orderNumberLength = 8; // first digit private $orderNumberFirst = 10000; /\*\* \* Creates the configuration fields and subscribes the post dispatch event of the frontend listing container. \* \* @return bool \*/ public function install() { // subscribe to events $this-\>installSubscribeEvents(); // create the form $this-\>installCreateConfigForm(); // done return array( 'success' =\> true, 'invalidateCache' =\> array( "frontend", "backend", "config" ) ); } /\*\* \* Registers all necessary events and hooks. \* \* @return void \*/ private function installSubscribeEvents() { $this-\>subscribeEvent( "sOrder::sGetOrderNumber::replace", "replaceGetOrderNumberHook" ); } /\*\* \* Creates the configuration form for the plugin \* \* @return void \*/ protected function installCreateConfigForm() { // get the form $form = $this-\>Form(); // create the element $form-\>setElement( "number", "orderPrefix", array( 'label' =\> "Präfix für Bestellnummer", 'description' =\> "Präfix für Bestellnummer für Haupt- und Multishops getrennt", 'minValue' =\> 10, 'maxValue' =\> 99, 'required' =\> true, 'value' =\> 10, 'scope' =\> \Shopware\Models\Config\Element::SCOPE\_SHOP )); } public function replaceGetOrderNumberHook( Enlight\_Hook\_HookArgs $arguments ) { // get shop id $shop = Shopware()-\>Shop()-\>getMain() !== null ? Shopware()-\>Shop()-\>getMain() : Shopware()-\>Shop(); $subshopId = $shop-\>getId(); // get prefix from configuration $prefix = $this-\>Config()-\>get( "orderPrefix" ); // get invoice sub-name $invoice = "invoice-shop-" . $subshopId; // get current max order id $query = "SELECT number FROM s\_order\_number WHERE name = ?"; $res = Shopware()-\>Db()-\>query( $query, array( $invoice ) ); $row = $res-\>fetch(); // current order found? if ( $row === false ) { // create number $number = $prefix . str\_pad( $this-\>orderNumberFirst, $this-\>orderNumberLength - 2, "0", STR\_PAD\_LEFT ); // insert order number $query = "INSERT INTO s\_order\_number SET `number` = ?, `name` = ?, `desc` = ?"; Shopware()-\>Db()-\>query( $query, array( $number, $invoice, $invoice ) ); } else { // add 1 to the number $number = (integer) $row['number'] + 1; // update max order $query = "UPDATE s\_order\_number SET number = number + 1 WHERE name = ?"; Shopware()-\>Db()-\>query( $query, array( $invoice ) ); } // cast it $number = (string) $number; // save it $arguments-\>setReturn( $number ); // finished return; }
Viele Grüße
Hey, herzlichen Dank, find ich ja gut! Mein Aber: ich hab schon einiges an Templates etc. rumgeschraubt, aber direkt mit Plugins hab ich mich noch nichts getraut. Wärst du so nett mir noch kurz zu schreiben, wo ich das updatesicher reinplatziere? Ich weiß, ist viel verlangt, aber eventuell haben dann auch noch ein paar mehr davon, sind ja noch mindestens zwei Threads, wo das auch gefragt wurde …
Das ist bereits knapp 90% deiner Arbeit. Die restlichen Antworten findest du hier: http://wiki.shopware.de/Grundlagen_cat_866.html http://wiki.shopware.de/Beispiele_cat_868.html Viel Erfolg Viele Grüße
Nochmal danke für deine Hilfe, ich weiß das zu schätzen, aber da werde ich wohl sehr viel länger für brauchen ohne eigene Grundlagen und sozusagen von Grund auf lernen, und mein Kunde verlangt eine sofortige Lösung. Im Shop gibts ja leider nichts Brauchbares. Mich wundert, daß Shopware gerade bei Subshops daran nicht gedacht hat. Wenn ich etwas trenne, dann doch richtig …
PS: Falls Ihr das als Plugin habt, was würde das kosten?
Hallo, wir haben auch das Problem, das wir für unseren Subshop eigene Nummernkreise benötigen. Ist Ihre lösung auch Shopware 5 kompatibel? Sind leider Programmiertechnisch absolute leien. Grüße Timo B
[quote=„Uli Lächelt“]PS: Falls Ihr das als Plugin habt, was würde das kosten?[/quote] Ich würde dir das Plugin für 200,- Euro netto übergeben. [quote=„citytinte“]Ist Ihre lösung auch Shopware 5 kompatibel?[/quote] Ja - funktioniert bis einschließlich Shopware 5.1. Viele Grüße