Möglichkeit den Warenkorbinhalt als Link zu versenden?

Guten Morgen, immer wieder stellen wir Kunden mehrere Produkte zusammen und müssen diese dann aber einzeln per Email als Link versenden. Gibt es eine Möglichkeit, dass wir Artikel in den Warenkorb legen und diesen dann als einen Link zum Kunden senden können? Dann braucht der Kunde nur den Link aufzurufen und hat alle Produkte schon im Warenkorb. Grüße Thomas

Hallo Thomas, schön wäre es doch anstatt einer Rechnung dem Kunden ein Angebot zu unterbreiten, wo er dann dieses Angebot in seinem Kundenkonto sehen kann (evtl. mit Link drauf). Das ganze mit der WaWi verknüpft wäre dann mehr als genial, oder?

Na ja, die Idee ist ja, einem Kunden mal schnell ein paar Artikel rauszusuchen und ihm dann als Email diese Artikel zu senden. Häufig rufen Kunden an und fragen, was sie denn alles benötigen würden. Dann könnte man nach der Email fragen und mal schnell (die Betonung liegt auf schnell) die Artikel zusenden. Ein Angebot mit Rabatt etc wäre das nicht und soll es ja auch nicht sein - sonst kommt jeder Kunde und will ein Angebot… Wenn dies aber mit einem Kundenkonto verknüpft werden soll, dann müssen ja wieder alle Kundendaten abgefragt und eingepflegt werden.

[quote=“Max-Zander”]Guten Morgen, immer wieder stellen wir Kunden mehrere Produkte zusammen und müssen diese dann aber einzeln per Email als Link versenden. Gibt es eine Möglichkeit, dass wir Artikel in den Warenkorb legen und diesen dann als einen Link zum Kunden senden können? Dann braucht der Kunde nur den Link aufzurufen und hat alle Produkte schon im Warenkorb. Grüße Thomas[/quote] Das dürfte eher nix werden, da der Warenkorb ja in der Session/dem Kundenkonto gespeichert ist. Könnte höchstens funktionieren, wenn der Kunde ein Konto hat, und der Admin sich darin einloggen kann… Was aber sicher(?) nicht standardmäßig funktioniert!? Oder: Warenkorb aufbauen, und das Warenkorb-HTML mit FireBug extrahieren und in eine Mail kopieren…

Hi, eine Möglichkeit gibt es da schon. Den Link mit entsprechenden Bestellnummern müsste man zusammenbauen :wink: Beispiel: shopware.php?sViewport=checkout&sAction=addArticle&sAddRelatedArticles=basket&sAdd=ARTIKELNUMMER1&sAddAccessories=ARTIKELNUMMER2 In diesem Beispiel werden direkt zwei Artikel in den Warenkorb gelegt.

2 „Gefällt mir“

Das ist ja Großartig!!! Genau so etwas habe ich gesucht. Ist halt noch ein wenig aufwendig, die Nummern da in den Link reinzutippen, aber vielleicht hat ja ein Plugin-Entwickler Lust da mal was zu basteln, damit der Link direkt generiert wird :wink: DANKE!!

Ist es eigentlich auch möglich mit dem Link eine die Anzahl anzugeben wie oft er in den Warenkorb soll? Wäre super.

Wäre super wenn jemand helfen könnte.

Die Menge kannst du als Parameter mitgeben. Beispiel: shopware.php?sViewport=checkout&sAction=addArticle&sAdd=ARTIKELNUMMER&sQuantity=MENGE

Das ist schonmal super, nur wie gebe ich den zweiten Artikel (&sAddAccessories=) die Menge mit, das will er so nämlich nicht machen: shopware.php?sViewport=checkout&sAction=addArticle&sAdd=ARTIKELNUMMER&sQuantity=MENGE&sAddAccessories=ARTIKELNUMMER2&sQuantity=MENGE2

Keiner einen Rat?

Versuch es mal mit sQuantityAccessories=MENGE Du brauchst auf jeden Fall einen anderen Variablennamen.

Ne macht er leider nicht damit, legt weiterhin nur einmal den Artikel in den Warenkorb.

Noch jemand eine Idee?

Man könnte im Checkout-Controller in addArticleAction weitere Parameter/Artikel (wenn vorhanden) einlesen und diese dann in den Warenkorb legen.

Habe es jetzt geschafft. Das was ich hinbekommen wollte ist sozusagen ein Pflichtartikel der in den Warenkorb muss wenn ich einen bestimmten Artikel dort hinlege. Diese sollen auf jeden Fall die gleiche Anzahl haben. Habe jetzt in deiner genannten Datei folgendes geändert in Zeile 287 und 288 (hier 18 + 19): /\*\* \* Index action method \*/ public function addAccessoriesAction() { $accessories = $this-\>Request()-\>getParam('sAddAccessories'); $accessoriesQuantity = $this-\>Request()-\>getParam('sAddAccessoriesQuantity'); if(is\_string($accessories)) { $accessories = explode(';', $accessories); } if(!empty($accessories)&&is\_array($accessories)) { foreach ($accessories as $key =\> $accessory) { try { if (!empty($accessoriesQuantity[$key])){ $quantity = intval($accessoriesQuantity[$key]); }else { $quantity = $this-\>Request()-\>getParam('sQuantity'); //$quantity = 1; } $this-\>basket-\>sAddArticle($accessory, $quantity); } catch (Exception $e) { } } } $this-\>forward($this-\>Request()-\>getParam('sTargetAction', 'index')); }

Beitrag wurde entfernt. Code wird gepostet, wenn er funktioniert. :wink:

Kleines Plugin, dass die Url erzeugt, mit der man den aktuellen Inhalt des Warenkorbs wieder einfügen kann. Wer Verwendung hat, kanns mal testen. Evtl. Vorschlag wie man das ins Frontend einbauen könnte. <?php class Shopware_Plugins_Frontend_BasketLink_Bootstrap extends Shopware_Components_Plugin_Bootstrap { public function install() { $event = $this->createHook('Shopware\_Controllers\_Frontend\_Checkout', 'addAccessoriesAction', 'onCheckout\_addAccessoriesAction\_Before', Enlight\_Hook\_HookHandler::TypeBefore, 0); $this-\>subscribeHook($event); $event = $this-\>createHook('Shopware\_Controllers\_Frontend\_Checkout', 'cartAction', 'onCheckout\_cartAction\_After', Enlight\_Hook\_HookHandler::TypeAfter, 0); $this-\>subscribeHook($event); return true; } public static function onCheckout\_addAccessoriesAction\_Before(Enlight\_Hook\_HookArgs $args) { $checkout = $args-\>getSubject(); $requestType = $checkout-\>Request()-\>getParam('reqType'); if ($requestType != 'basketlink') return; $sAddAccessories = $checkout-\>Request()-\>getParam('sAddAccessories'); $checkout-\>Request()-\>setParam('sAddAccessories', explode(',', $sAddAccessories)); $sAddAccessoriesQuantity = $checkout-\>Request()-\>getParam('sAddAccessoriesQuantity'); $checkout-\>Request()-\>setParam('sAddAccessoriesQuantity', explode(',', $sAddAccessoriesQuantity)); } public static function onCheckout\_cartAction\_After(Enlight\_Hook\_HookArgs $args) { $checkout = $args-\>getSubject(); $basket = $checkout-\>View()-\>sBasket; if ((! isset($basket['content'])) || (! is\_array($basket['content'])) || (count($basket['content']) \< 1)) return; $basketContent = array(); foreach ($basket['content'] as $itemData) { $basketContent[$itemData['ordernumber']] = $itemData['quantity']; } if (count($basketContent) \< 1) return; $config = Shopware()-\>Config(); $sAddAccessories = implode(',', array\_keys($basketContent)); $sAddAccessoriesQuantity = implode(',', $basketContent); $checkout-\>View()-\>rdxBasketLink = 'http://' . $config['basepath'] . '/shopware.php?sViewport=checkout&reqType=basketlink&sAction=addAccessories&sAddAccessories=' . $sAddAccessories . '&sAddAccessoriesQuantity=' . $sAddAccessoriesQuantity; echo $checkout-\>View()-\>rdxBasketLink; } }

Ich bräuchte hier auch noch einen Hinweis: (…)die Frage ist glaube ich wie der dritte Artikel übergeben wird und nicht die Menge. der erste Artikel wird übergeben mit: der Variable “sAdd” der zweite Artikel wird übergeben mit: “sAddAccessories” Wie sind die Variablen wenn drei oder mehr Artikel in beliebiger Anzahl an den Shop übergeben werden sollen. Ein Beispiel: ]=1010101010|3,2020202020|4 hier wird der artikel 1010101010 drei mal an den Warenkorb übergeben // mehrere Artikel werden durch komma getrennt, wir könnten die Liste also einfach verlängern. Hier ist der Aufbau immer gleich, ob jetz ein zwei oder mehr Artikel an den Warenkorb übergeben werden sollen. Unsere Technik vermutet bei Ihrem Shop festdefinierte Variablen für weitere Artikel. (…) Vielen Dank im Voraus Nicole

Hast du dir das Plugin (vorheriges Post) mal angeschaut? Hab’s jetzt schon ne Weile nicht mehr getestet, aber eigentlich müsste das so funktionieren: class Shopware\_Plugins\_Frontend\_BasketLink\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap { public function install() { $event = $this-\>createHook('Shopware\_Controllers\_Frontend\_Checkout', 'addAccessoriesAction', 'onCheckout\_addAccessoriesAction\_Before', Enlight\_Hook\_HookHandler::TypeBefore, 0); $this-\>subscribeHook($event); return true; } public static function onCheckout\_addAccessoriesAction\_Before(Enlight\_Hook\_HookArgs $args) { $checkout = $args-\>getSubject(); $requestType = $checkout-\>Request()-\>getParam('reqType'); if ($requestType != 'basketlink') return; $sAddAccessories = $checkout-\>Request()-\>getParam('sAddAccessories'); $checkout-\>Request()-\>setParam('sAddAccessories', explode(',', $sAddAccessories)); $sAddAccessoriesQuantity = $checkout-\>Request()-\>getParam('sAddAccessoriesQuantity'); $checkout-\>Request()-\>setParam('sAddAccessoriesQuantity', explode(',', $sAddAccessoriesQuantity)); } } Damit lassen sich mehrere Artikel und Mengen in den Warenkorb legen: '/shopware.php?sViewport=checkout&' . 'reqType=basketlink&sAction=addAccessories&sAddAccessories=101001,101002,101003&sAddAccessoriesQuantity=2,5,3';

1 „Gefällt mir“