Bestellungen - myKonto Bereich

Hallo, eine Verständnisfrage: mein Konto - meine Bestellungen - Bestellung anzeigen Warum kann ich bei manchen Bestellungen diese wiederholen (Klick auf grünen Button) und bei anderen abgeschlossenen Bestellungen nicht? Dort wird der grüne Button nicht angezeigt. Gibt es da eine Erklärung? Ich kann verstehen, wenn das bei Bestellungen der Fall ist, bei der nachträglich noch Positionen hinzugefügt wurden, aber bei allen anderen sollte das doch möglich sein??

Evtl. hat der Kunde hier eine Schnellbestellung gemacht, kein Kundenkonto!

Hi, nein, alle Konten, bei denen ich das kontrolliert habe, sind Kundenkonten. Dabei sind einige mit anderen Kundengruppen. Bisher funktioniert die Anzeige nur bei meinem Testkonto.

Habe jetzt mal bei mir geguckt und es wird auch nichts angezeigt Bestellung wiederholen. Bei einem Kunden mal ja mal nein, bei Anderen gar nicht!??

Bei dem Code gibt es eig. keine Abfrage. Sollte eig. bei allen angezeigt werden: [code] {* Repeat order *} {block name=„frontend_account_order_item_repeat_order“}

{foreach from=$offerPosition.details item=article}{if $article.modus == 0} {/if}{/foreach} {/block} [/code]

Hi, kann es sein, dass die Bestellung nicht wiederholt werden kann, da die Artikel gar nicht mehr im Shop verfügbar sind? Dann wird der Button nämlich ausgeblendet.

Hallo, [quote]kann es sein, dass die Bestellung nicht wiederholt werden kann, da die Artikel gar nicht mehr im Shop verfügbar sind? Dann wird der Button nämlich ausgeblendet.[/quote] Nein, alle Artikel sind vorhanden.

[quote=“Sebastian Klöpper”]Hi, kann es sein, dass die Bestellung nicht wiederholt werden kann, da die Artikel gar nicht mehr im Shop verfügbar sind? Dann wird der Button nämlich ausgeblendet.[/quote] Hi, nein das ist nicht so. Alle Artikel sind verfügbar und genug auf Lager. Komisch ist das schon!

mein Code: [code]{* Repeat order *} {block name=“frontend_account_order_item_repeat_order”}

{foreach from=$offerPosition.details item=article}{if $article.modus == 0} {/if}{/foreach}

{if $offerPosition.activeBuyButton}

{/if}

{/block}[/code] Bei mir ist noch zusätzlich das drin: [code]{if $offerPosition.activeBuyButton}{/if}[/code]

Okay, mein Code war noch alte Template Basis. Hier wird also ‘activeBuyButton’ abgefragt. Nur wo wird diese Variable befüllt? Bzw. was bestimmt den Inhalt dieser Variable.

Ich habe mal die passende Stelle im Core gesucht. Hier wird entschieden ob der Button angezeigt wird, oder nicht! Aber so ganz verstehen tue ich es noch nicht! EDIT. Hats gefunden. Steht sogar als Klartext im Code :wink: // Set article in deactivate state if it’s an variant or configurator article /\*\* GET ARTICLE DETAILS START - @date: 05-24-2011 \*/ $active = 1; /\*\* GET ARTICLE DETAILS END \*/ foreach ($getOrderDetails as $orderDetailsKey =\> $orderDetailsValue){ $getOrderDetails[$orderDetailsKey]["amount"] = $this-\>sSYSTEM-\>sMODULES['sArticles']-\>sFormatPrice(round($orderDetailsValue["price"] \* $orderDetailsValue["quantity"],2)); $getOrderDetails[$orderDetailsKey]["price"] = $this-\>sSYSTEM-\>sMODULES['sArticles']-\>sFormatPrice($orderDetailsValue["price"]); /\*\* GET ARTICLE DETAILS START - @date: 05-24-2011 \*/ $tmpArticle = $this-\>sSYSTEM-\>sMODULES['sArticles']-\>sGetPromotionById('fix', 0, $getOrderDetails[$orderDetailsKey]['articleID']); if(!empty($tmpArticle) && is\_array($tmpArticle)) { // Set article in activate state $getOrderDetails[$orderDetailsKey]['active'] = 1; if(!empty($tmpArticle['purchaseunit'])) { $getOrderDetails[$orderDetailsKey]['purchaseunit'] = $tmpArticle['purchaseunit']; } if(!empty($tmpArticle['referenceunit'])) { $getOrderDetails[$orderDetailsKey]['referenceunit'] = $tmpArticle['referenceunit']; } if(!empty($tmpArticle['referenceprice'])) { $getOrderDetails[$orderDetailsKey]['referenceprice'] = $tmpArticle['referenceprice']; } if(!empty($tmpArticle['sUnit']) && is\_array($tmpArticle['sUnit'])) { $getOrderDetails[$orderDetailsKey]['sUnit'] = $tmpArticle['sUnit']; } if(!empty($tmpArticle['price'])) { $getOrderDetails[$orderDetailsKey]['currentPrice'] = $tmpArticle['price']; } if(!empty($tmpArticle['pseudoprice'])) { $getOrderDetails[$orderDetailsKey]['currentPseudoprice'] = $tmpArticle['pseudoprice']; } // Set article in deactivate state if it's an variant or configurator article if($tmpArticle['sVariantArticle'] === true || $tmpArticle['sConfigurator'] === true) { $getOrderDetails[$orderDetailsKey]['active'] = 0; $active = 0; } } else { $getOrderDetails[$orderDetailsKey]['active'] = 0; $active = 0; } /\*\* GET ARTICLE DETAILS END \*/ // Check for serial if ($getOrderDetails[$orderDetailsKey]["esdarticle"]){ $numbers = array(); $sql = " SELECT serialnumber FROM s\_articles\_esd\_serials, s\_order\_esd WHERE userID=? AND orderID=? AND orderdetailsID=? AND s\_order\_esd.serialID=s\_articles\_esd\_serials.id "; $getSerial = $this-\>sSYSTEM-\>sDB\_CONNECTION-\>GetAll($sql,array($this-\>sSYSTEM-\>\_SESSION["sUserId"],$orderValue["id"],$orderDetailsValue["id"])); foreach ($getSerial as $serial){ $numbers[] = $serial["serialnumber"]; } $getOrderDetails[$orderDetailsKey]["serial"] = implode(",",$numbers); // Building download-link $getOrderDetails[$orderDetailsKey]["esdLink"] = $this-\>sSYSTEM-\>sCONFIG["sBASEFILE"].'?sViewport=account&sAction=download&esdID='.$orderDetailsValue['id']; //$getOrderDetails[$orderDetailsKey]["esdLink"] = "http://".$this-\>sSYSTEM-\>sCONFIG["sBASEPATH"]."/engine/core/php/loadesd.php?id=".$orderDetailsValue["id"]; } // -- End of serial check } /\*\* GET ARTICLE DETAILS START - @date: 05-24-2011 \*/ $getOrders[$orderKey]['activeBuyButton'] = $active; /\*\* GET ARTICLE DETAILS END \*/

1 Like

ok, dass kann passen. Da ich dieses “wieder bestellen” prima finde, muss ich wohl oder übel die Varianten entfernen. Prima, ich probiere es aus, vielen Dank

Hi ottscho, gerade kam bei mir der große Ahhhhhhhhhhhh-Effekt! :wink: Ok, wenn’s daran liegt, wissen wir jetzt wenigsten bescheid! Schönen Dank!

Hallo, habe jetzt mal alle Varianten entfernt, Konfigurator Artikel habe ich nicht. Trotzdem wird der Button zum Wiederbestellen nicht angezeigt? Noch eine Idee, woran das liegen kann? Cache etc. wurde mehrfach geleert.

Hallöchen, hat jemand noch eine Idee? Kann das evtl. auch vom Lagerbestand abhängen?

Kann es vielleicht sein, dass in der DB noch eine Info gespeichert wurde, dass versch. Artikel „mal Variantenartikel“ waren? Wo könnte ich suchen? Welche Kennzeichnung würde bei Variantenartikeln in der DB stehen bzw. welche Tabellen sind betroffen??

…ich schon wieder: hängt die Anzeige des Buttons evtl. vom Lagerbestand ab?

Also wenn der Artikel aktiv ist und kein Varianten- oder Konfigurator-Aritkel müsste die direkte Bestellmöglichkeit vorhanden sein. Ansonsten kannst du im Code-Beispiel von Ottscho auch einfach die Zeile $getOrders[$orderKey]['activeBuyButton'] = $active; testweise in $getOrders[$orderKey]['activeBuyButton'] = true; ändern - dann müsste der Button immer angezeigt werden.

Hallo, das klappt jetzt, danke. Das reicht mir so. Frage: wird das bei einem Update wieder überschrieben??

Hallo, das Thema würde ich gerne noch einmal aufgreifen: Es wurde zwar alles geklärt aber interessieren würde mich, ob man die Abfrage das es sich um Varianten-Artikel handelt einfach entfernen kann (PHP Code oder Hook). Da in dem Shop den ich betreue mit Varianten gearbeitet wird und die Wiederbestellfunktion eine feine Sache ist, würde ich diese auch gerne nutzen. Beziehungsweise, warum werden Varianten von dieser Funktion eigentlich ausgeschlossen ? Danke und Grüße Louie