Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Beim Einloggen mit bestimmter Kundengruppe den Shop bzw. die Website switchen
 
EE_WebDesign
Jr. Member
 
Avatar
Total Posts:  11
Joined:  2009-03-05
 

Hallo,
bin neu in der Community und arbeite gerade an meinem ersten Magento Shop.
Erstmal Danke für das wirklich wahnsinnig hilfreiche Forum hier. Die meisten Dinge, die mich an meinem Shop noch vor ein großes Fragezeichen gestellt haben, konnte ich mit der Suche problemlos lösen.

Ein Punkt ist jedoch noch offen: Ich habe 2 Shops in zwei Websites mit unterschiedlichen Preisen und eine Kundengruppe “Wiederverkäufer” und hätte gerne, dass jeder Kunde der zu dieser Gruppe gehört, nach dem Einloggen zum Wiederverkäufer-Shop umgeleitet wird.

Würde also gerne in der index.php die Kundengruppe abfragen und dann je nachdem ein

Mage::run('base','website');

oder

Mage::run('wvk_shop','website');

ausführen.

Nun weiß ich allerdings nicht, wie ich die momentane Kundengruppe auslese.

Wäre über jede Hilfe sehr dankbar!

 
Magento Community Magento Community
Magento Community
Magento Community
 
EE_WebDesign
Jr. Member
 
Avatar
Total Posts:  11
Joined:  2009-03-05
 

Auch wenn ich jetzt mit mir selber spreche: bin schon einen kleinen Schritt weiter. Aber so funktioniert’s noch nicht.

Irgendwelche Ideen?

$customer_group Mage::getSingleton('customer/session')->getCustomerGroupCode();

if (
$customer_group == 1)  {
     Mage
::run('base','website');
else {
     Mage
::run('wvk_shop','website');
}
 
Magento Community Magento Community
Magento Community
Magento Community
 
Dscho
Sr. Member
 
Avatar
Total Posts:  236
Joined:  2007-10-05
Singen, Germany
 

Hallo,

hilft Dir vielleicht folgender Code weiter?

<?php
$roleId 
Mage::getSingleton('customer/session')->getCustomerGroupId();
$role Mage::getSingleton('customer/group')->load($roleId)->getData('customer_group_code');
$role strtolower($role);
if(
$role == reseller')
{
    echo '
... hier kommt der Code';
}
?>

Viele Grüße
Dscho

 
Magento Community Magento Community
Magento Community
Magento Community
 
EE_WebDesign
Jr. Member
 
Avatar
Total Posts:  11
Joined:  2009-03-05
 

Hab inzwischen selber rausgefunden, wie ich die ID der Kundengruppe auslese:

$CustomerGroupId Mage::getSingleton('customer/session')->getCustomerGroupId();

Allerdings müsste ich danach irgendwie zu dem anderen Shop switchen können.

Gibt es einen Befehl um die Website zu switchen?

 
Magento Community Magento Community
Magento Community
Magento Community
 
EE_WebDesign
Jr. Member
 
Avatar
Total Posts:  11
Joined:  2009-03-05
 

Habe jetzt in den Template Files meines Layouts folgenden Code vor den Header gesetzt.

$CustomerGroupId Mage::getSingleton('customer/session')->getCustomerGroupId();
$StoreId Mage::app()->getStore()->getWebsite()->getId();

if (
$CustomerGroupId == && $StoreId != 2{ header("Location: <Link zum Wiederverkäufer-Shop>");}
if ($CustomerGroupId != && $StoreId == 2{ header("Location: <Link zum normalen Shop>");}

Vielleicht nicht die eleganteste Lösung, aber es funktioniert. wink

 
Magento Community Magento Community
Magento Community
Magento Community
 
Thory
Jr. Member
 
Total Posts:  12
Joined:  2010-06-14
 

... funktioniert das tatsächlich bei jemandem?
Wenn ich das in z.B 2columns-left.phtml eintrage, tut sich leider gar nichts.
Direkt über zwei verschiedene Subdomains klappt es. Ich hätte aber gerne, wie in diesem Thread angesprochen, nach dem einloggen eine automatische Weiche.
Damit muss der Kunde sich nie Gedanken machen, welche URL nun die richtige ist.
Gibt es da ein Lösung?

Vielen Dank im Voraus

Viele Grüsse
Thory

 
Magento Community Magento Community
Magento Community
Magento Community
 
madpuppy
Member
 
Total Posts:  36
Joined:  2011-03-02
 
Dscho - 02 April 2009 07:42 AM

Hallo,

hilft Dir vielleicht folgender Code weiter?

<?php
$roleId 
Mage::getSingleton('customer/session')->getCustomerGroupId();
$role Mage::getSingleton('customer/group')->load($roleId)->getData('customer_group_code');
$role strtolower($role);
if(
$role == reseller')
{
    echo '
... hier kommt der Code';
}
?>

Viele Grüße
Dscho

Hat bei mir nicht geklappt, zumindest in der index.php nicht… alles was mit Mage::getSingelton zu tun hat und vor Mage::app(); oder Mage::(init); kommt, kann ich dort nicht verwenden?!

 
Magento Community Magento Community
Magento Community
Magento Community
 
Siggi_Schmitz
Enthusiast
 
Avatar
Total Posts:  811
Joined:  2011-07-03
 

Ich würde das nicht in der Index.php machen, die wird bei jedem Seitenaufruf aufgerufen und jedesmal findet dann deine Überprüfung statt, das geht auf die Performance und ist auch unnötig, denn du willst ja eigentlich nur die Stelle abfangen in der sich der Kunde einloggt.

Also würde ich mich mal mit events beschäftigen, du mußt das event raussuchen was getriggert wird sobald sich ein Kunde erfolgreich eingeloggt hat.

Entweder googeln welches Event das ist oder suche in allen Dateien in dem Ordner app/code/core/Mage/Customer/ nach dem String ‘dispatchEvent’.

Wenn du dann das richtige Event gefunden hast (könnte eventuell so heißen wie \’customer_login_success\’ oder so) schreib ein kleines Modul mit einer Observer - Klasse die auf das Event reagiert, lies dann in der Funktion die Kundengruppe aus (wie das geht weißt du ja schon) und wechsel dann den Store wenn die Kundengruppe stimmt.

 
Magento Community Magento Community
Magento Community
Magento Community
 
elbperle
Jr. Member
 
Total Posts:  2
Joined:  2014-04-10
 

Hallo,
ich weiss, dieser Beitrag ist schon älter, dennoch würde ich gern die Frage nochmals aufgreifen. Wo genau habt ihr den Codeschnipsel nun eingefügt?

Ich hab den Code ebenfalls übernommen

$CustomerGroupId Mage::getSingleton('customer/session')->getCustomerGroupId();
$StoreId Mage::app()->getStore()->getWebsite()->getId();

if (
$CustomerGroupId == && $StoreId != 5{ header("Location: <http://www.haendlerseite2.com>");}
if ($CustomerGroupId != && $StoreId == 5{ header("Location: <http://www.meine-hauptseite.com>");}

if ($CustomerGroupId == && $StoreId != 7{ header("Location: <http://www.haendlerseite3.com>");}
if ($CustomerGroupId != && $StoreId == 7{ header("Location: <http://www.meine hauptseite.com>");}

Irgendwie steh ich gerade auffm Schlauch.

 
Magento Community Magento Community
Magento Community
Magento Community
 
samirshaban
Jr. Member
 
Total Posts:  11
Joined:  2012-10-06
 

Hallo,

glaube die haben es über die index.php gemacht, würde ich aber auf gar keinen Fall machen. Der Weg über einen Observer/Event ist sinnvoller und sollte funktionieren (siehe Post von Sigi_....).

Gruß
Samir

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top