Warenkorb erneut bestellen

Tach liebe Community, ich befasse mich seit einem Weilchen damit eine Funktion in den Warenkorb einzubauen, die es ermöglicht einen bereits bestellten Warenkorb erneut zu bestellen. Leider komplett ohne Erfolg, da sich meine Programmierkenntnisse fast gen 0 Bewergen. Als reiner Template-Mensch tu ich mir da echt ein bisschen schwer und hoffe somit hier etwas Unterstützung zu bekommen. Was ich bereits geschafft habe… - order_item_details.tpl: {$article.articleordernumber} hinzugefügt um zumindest schonmal die Artikelnummer anzeigen zu lassen - Herausbekommen das ich eigentlich nur über das array aus $article mir relevante Inhalte ziehen kann Mein Plan… Ich würde gerne einen Button hinter jedem bereits bestellten Artikel haben der da heißt: „Artikel erneut in den Warenkorb legen“. Ihr fragt euch sicher: Was will er jetzt mit der Artikelnummer? Naja das war das einzige was das Array so hergegeben hat :slight_smile: Aber ich denke ihr seht warscheinlich sofort wo mein Problem liegt. Ich würde mich sehr über euere Hilfe freuen. Evtl. weiß der ein oder andere auch ein Plugin dass das löst. Gruß Marc

Diese Funktion gibts doch im Standard?

Öhhhhm jetzt bin ich verwirrt. Bei uns im Shop gibt es diesen Button nicht. Kann man das irgendwo aktivieren?

Diese Frage kann ich dir ehrlich nicht beantworten. Diese Funktion war bei uns schon immer da. Finde auch in den Grundeinstellungen nichts dazu. Müsste aber irgendwo einen Haken geben, wie man aus dem Code erschließen kann: [code]{* Repeat order *} {block name=„frontend_account_order_item_repeat_order“} {if $offerPosition.activeBuyButton}

{foreach $offerPosition.details as $article}{if $article.modus == 0} {/if}{/foreach}
                {* Repeat order button *}
                {block name="frontend_account_order_item_repeat_button"}
                    <input type="submit" class="btn is--primary is--small" value="{s name='OrderLinkRepeat'}{/s}">
                {/block}
            </form>

{/if} {/block}[/code]

Aus welcher Datei hast du das raus?

/themes/Frontend/Bare/frontend/account/order_item_details.tpl Zeile 309 bis 326

Habs entdeckt - öhm aber irgendwie geht das nicht bei uns. Ich forsche mal im Backend ob ich was finde.

Naja ich hab jetzt erstmal die if Anweisung entfernt. Jetzt gehts :slight_smile: [code] {* Repeat order *} {block name=“frontend_account_order_item_repeat_order”}

{foreach $offerPosition.details as $article}{if $article.modus == 0} {/if}{/foreach}
                {* Repeat order button *}
                {block name="frontend_account_order_item_repeat_button"}
                    <input type="submit" class="btn is--primary is--small" value="{s name='OrderLinkRepeat'}{/s}">
                {/block}
            </form>

{/block} [/code] Danke nochmal!!! Der Tipp hat geholfen.

[quote=“Neoxx”]Diese Frage kann ich dir ehrlich nicht beantworten. Diese Funktion war bei uns schon immer da. Finde auch in den Grundeinstellungen nichts dazu. Müsste aber irgendwo einen Haken geben, wie man aus dem Code erschließen kann: [code]{* Repeat order *} {block name=“frontend_account_order_item_repeat_order”} {if $offerPosition.activeBuyButton}

{foreach $offerPosition.details as $article}{if $article.modus == 0} {/if}{/foreach}
                {* Repeat order button *}
                {block name="frontend_account_order_item_repeat_button"}
                    <input type="submit" class="btn is--primary is--small" value="{s name='OrderLinkRepeat'}{/s}">
                {/block}
            </form>

{/if} {/block}[/code][/quote] Da es ja die Abfrage gibt, {if $offerPosition.activeBuyButton} muss es doch im Backend eine Einstellung geben. Ich habe jetzt noch mal geschaut und es ist nichts unter Einstellung > Grundeinstellungen zu finden.

Jap so gings mir auch. Hab alles durchgeklickt.

Hallo, also bei mir ist die Funktion auch vorhanden. Hab auch mal nachgeschaut, und finde auch keine Einstellung dazu. Lg

Ich habe jetzt noch mal einen ganz alten Beitrag von ottscho gefunden und ich denke so eine ähnliche Abfrage gibt es auch noch in Shopware5. Achtung von Shopware 3.5 [quote=„ottscho“]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 \*/ [/quote] allgemeines-f2/bestellungen-mykonto-bereich-t3867-10.html#p21044

Hmm… Okay, dann müsste ja eine Logik dahinter stecken, die die Bedingung automatisch füllt. Nach ein bisschen rumprobieren, wird der Button nicht angezeigt: - Wenn ein Artikel aus der Bestellung ein ESD-Artikel ist. - Wenn ein Artikel aus der Bestellung gelöscht oder deaktiviert wurde. - Wenn der Status der Bestellung nicht auf “Komplett ausgeliefert” steht. Grüße

[quote=“Neoxx”]Hmm… Okay, dann müsste ja eine Logik dahinter stecken, die die - Wenn der Status der Bestellung nicht auf “Komplett ausgeliefert” steht. Grüße[/quote] Das letztere stimmt glaub ich nicht. In deinem Screenshot steht der Status ja auch nicht auf “Komplett ausgeliefert”. Hab jetzt das Backend ein 2. Mal durchsucht. Keine Einstellung :frowning:

[quote=„Neoxx“]Hmm… Okay, dann müsste ja eine Logik dahinter stecken, die die Bedingung automatisch füllt. Nach ein bisschen rumprobieren, wird der Button nicht angezeigt: - Wenn ein Artikel aus der Bestellung ein ESD-Artikel ist. - Wenn ein Artikel aus der Bestellung gelöscht oder deaktiviert wurde. - Wenn der Status der Bestellung nicht auf „Komplett ausgeliefert“ steht. Grüße[/quote] - ($tmpArticle[‚pseudoprice‘]) wenn Artikel einen Sonderpreis hatte - ($tmpArticle[‚price‘]) wenn der damalige Artikel-Preis von jetzigen abweicht? - ($tmpArticle[‚sVariantArticle‘] === true || $tmpArticle[‚sConfigurator‘] === true) wenn Variantenartikel und oder ist?

[quote=“purpix”][quote=“Neoxx”]Hmm… Okay, dann müsste ja eine Logik dahinter stecken, die die - Wenn der Status der Bestellung nicht auf “Komplett ausgeliefert” steht. Grüße[/quote] Das letztere stimmt glaub ich nicht. In deinem Screenshot steht der Status ja auch nicht auf “Komplett ausgeliefert”. Hab jetzt das Backend ein 2. Mal durchsucht. Keine Einstellung :([/quote] “Bestellung wurde verschickt” = “Komplett ausgeliefert” :slight_smile: Der Textbaustein ist nur im Frontend anders als im Backend.

[quote=„purpix“][quote=„Neoxx“]Hmm… Okay, dann müsste ja eine Logik dahinter stecken, die die - Wenn der Status der Bestellung nicht auf „Komplett ausgeliefert“ steht. Grüße[/quote] Das letztere stimmt glaub ich nicht. In deinem Screenshot steht der Status ja auch nicht auf „Komplett ausgeliefert“. Hab jetzt das Backend ein 2. Mal durchsucht. Keine Einstellung :([/quote] Wenn es eine Abfrage wie in Shopware3.5 gibt wirst du auch keine Einstellung im Backend finden. ich wurde die Abfrage auch nicht so ohne weiters ausbauen, denn es machst ja auch Sinn bei gewissen Sachen den Button nicht anzeigen zu lassen.

Nur mal so zur Info: Der Bestellbutton wird z. B bei Variantenartikel nicht eingeblendet!

Also laut Shopware-Support gibt es keine Einstellungsmöglichkeit im Backend. Soweit bin ich schonmal. Bzgl… Varianten: Soll das heißen das wenn bei einer kompletten Bestellung eine Variante dabei ist, der Button nicht ausgeliefert wird? Was wäre der Zweck dahinter?