Händleranmeldung bei bestehendem Account?

Hallo, mal ne allgemeine Frage: Wie ist das gedacht, wenn ein Kunde einen „normalen“ Kundenaccount besitzt und sich nun als Händler anmelden möchte? Also er ist eingeloggt und klickt auf Händleranmeldung… dann kommt er in sein Konto… und weiter? Mir scheint, das dieser Fall gar nicht vorgesehen ist, oder hab ich was übersehen? Gruss René

Hey, das ist nicht vorgesehen - aber ließe sich relativ einfach nachrüsten. Du müsstest nur s_user.validation auf den KEY der Kundengruppe setzen, für die sich der Kunde interessiert. Dann läuft der restliche Workflow inkl. Freischaltung wie gehabt. Also z.B. s_user.validation auf „H“ setzen, fertig.

öhm… da bin ich jetzt ein bissel überfordert :oops: meinst du in der Datenbank? Ich müsste dann quasi im Register- Controller in der IndexAction den Befehl zur Änderung in der Datenbank einbauen… geht sowas? Gruss René PS: du scheinst ja ständig auf meine blöden Fragen zu warten, denn die Antwort kommt meistens unter 2 Min später :smiley:

Möchtest du einen bestehen Kunden als Händler einstellen? Dann musst du einfach den Kunden im Backend öffnen und die Kundengruppe umstellen -> speichern fertig. Der Kunde ist dann direkt in der neuen Kundengruppe H Gehst du über den Link “Händleranmeldung” (shopware.php?sViewport=registerFC&sUseSSL=1&sValidation=H), dann ist der Kunde nach der Registrierung auch erst in der Shopkundenhgruppe. Über diese Registrierung ist er aber als Händler vorgemerkt und kann mit einem Klick im Backend freigeschaltet werden. Dabei bekommt der Kunde dann auch eine eMail, dass er freigeschaltet wurde. Hier noch ein paar Infos: http://www.shopware.de/wiki/Tutorial-Ne … _verwalten Sebastian PS: Ansonsten kannst du natürlich auch ein Formular anlegen, über das sich Bestandskunden melden können, wenn Sie Händler werden wollen. Eine neue Registrierung als Händler ist ja nicht möglich, da dem System die eMail-Adresse bereits bekannt ist.

Ähm… ja die üblichen Verfahrensweisen und das Tutorial kenne ich schon sehr genau. Mein Problem ist aber, das wenn ein Kunde sich registriert hat (aber nicht als Händler, weil er noch keiner war oder es einfach nicht gesehen hat, das wir das auch anbieten) im Moment ja keine Möglichkeit hat sich nachträglich mit dem bestehenden Account als Händler zu registrieren. Genau das möchte ich aber “nachrüsten”. Im Prinzip stelle ich mir das so vor: Der Kunde ist angemeldet und klickt den Link “Händleranmeldung”. Nun kommt er in sein Kundenkonto… dort erscheint der Hinweis, das er nen gültigen Gewerbenachweis an uns zu senden hat und nach Prüfung umgestellt wird. Gleichzeitig wird in der DB s_user.validation = “H” gesetzt, sodass wir im BE darüber informiert sind und ihn dann freischalten können (inklusive der Mail die dann rausgeht). Eigentlich keine so grosse Sache, aber ich bin da gestern leider noch auf ein paar Probleme gestossen: und zwar wollte ich per Hook die Methode indexAction() im Register- Controller überschreiben. Mein Versuch sieht so aus: static function myIndexAction(Enlight\_Hook\_HookArgs $args) { $self = $args-\>getSubject(); if(!empty(Shopware()-\>Session()-\>sUserId)) { if ($self-\>request-\>getParam('sValidation')) { Shopware()-\>Db()-\>Execute("UPDATE s\_user SET validation='2' WHERE id=".Shopware()-\>Session()-\>sUserId); $self-\>View()-\>tbValidationInfo = true; return $self-\>forward('index', 'account'); } ... Allerdings endet dieser Versuch in der Fehlermeldung "Fatal error: Uncaught exception ‘Enlight_Exception’ with message 'Property “request” not found failure… " Also warum steht in dem Hook der Parameter “request” nicht zur Verfügung so wie im Original Object? Das gleiche gilt auch für die Session - Property, aber die konnte ich mir über “Shopware()->Session()” holen. Ich habe das Gefühl, das das ganze Object aus “$self = $args->getSubject();” nicht richtig da ist. In anderen Hooks funktioniert das aber einwandfrei… Ich weiss, das geht hier ganz schön in die Materie, aber vielleicht kann mir trotzdem jemand helfen… LG René

Hi, auf das Request-Objekt kannst du so zugreifen: $args-\>getSubject()-\>getRequest(); Die Request-Property ist Private/Protected und daher kann nicht von außen darauf zugeriffen werden. Man sollte daher eigentlich immer diese Variante nehmen. :wink: Viele Grüße Heiner

funktioniert aber leider auch nicht… Fatal error: Uncaught exception ‚Enlight_Exception‘ with message 'Method „Shopware_Proxies_ShopwareControllersFrontendRegisterProxy::getRequest“ not found failure… Gruss René

Oh, sry. Die Methode heißt natürlich “Request” und nicht “getRequest”. :wink:

1 Like

ey prima… es funktioniert!!! dann gleich nochmal ne Frage: wie kann ich dort ne einfache SQL- Anweisung ausführen lassen? mit Shopware()->Db()->Execute(…); gehts leider nicht, die Execute- Methode kennt der irgendwie nicht… obwohl ich das schon in anderen Controllern so gesehen habe… ich brauche auch keinen Rückgabewert. Gruss René

Sorry for Doppelpost :oops: Es geht jetzt… habs mit Shopware()-\>Db()-\>query(...) hinbekommen! Ganz dickes Danke Heiner! :thumbup: Gruss René