Frage

Ich möchte die Magento -Site so konfigurieren, dass sie die Standardsprache und den Standort des Benutzers erkennen und die Site in dieser Sprache und mit entsprechender Lokalisierung anzeigen können.

Zum Beispiel:

Ein Benutzer aus Russland mit der russischen Sprache als Standard wird direkt auf die russische Sprachwebsite mit Rubel als Standardwährung und Preise gehen.

Ist das möglich? Wenn das so ist, wie?

War es hilfreich?

Lösung

GeoIP- und Store -Ansichten helfen Ihnen bei der Lösung dieses Problems.

GeoipSie können einen Anbieter wie verwenden Maxmind Für Ihre GEOIP -Datenbank (oder laden Sie sie als Webservermodul, das das Land im Header hinzufügt).

Basierend auf der IP -Adresse können Sie den Kunden in die richtige Speicheransicht umleiten (überprüfen Sie den vom Store View Switcher generierten Link.

Lagern Sie Ansichten

Russisch sollte eine Ladenansicht sein. Überprüfen Sie den Store View Switcher, um zu sehen, welchen Link Sie für Ihre Kunden verwenden müssen.

Nach der Umleitung können Sie einen Cookie einstellen, um den Kunden mit der Store -Ansicht zu verbinden.

Andere Tipps

Es gibt eine Magento Geoip -Erweiterung (geschrieben von mir), die die neueste MaxMind -Datendatei herunterlädt und regelmäßig aktualisiert.

Ich schlage vor, sich einzuschließen controller_front_init_before Veranstaltung. Sie können den folgenden Code verwenden, um zu überprüfen, ob Sie den ISO 3166-1 Code of Visitor's Country erhalten und ihn dann in die Ansicht von Corresponspent Store umleiten, wenn Sie eines haben:

$geoIP = Mage::getSingleton('geoip/country');
$code = $geoIP->getCountry();

/*
 * Check if store view for this country/language exists and it is not a current store view. 
 * If so do a redirect.
 * You can also take a language from user agent into consideration.
 */

Der detaillierte Artikel über die Verwendung dieser Erweiterung kann gefunden werden hier.

Eine andere Sache, die man sich ansehen muss, ist Geo IP.

Ein paar Codezeilen erhalten Ihnen den Ländercode der Benutzer, den Sie basierend darauf wechseln können.

Aber beachten Sie, dass Sie wollen Probleme haben Verwenden Sie einen umleitungsbasierten Code, wenn Sie es sind Verwenden Sie denselben Speicher mit Enterprise Edition und vollständig Seitencache, wie die erste Seite gedrückt wird.

sich ansehen http://www.thefutureoftheweb.com/blog/use-accept-language-headerWenn Sie programmieren können. Sie könnten einen Schalter in der index.php Laden der für die Sprache geeigneten Storeview.

Eine andere Option ist die Verwendung von PHPs auto_prepend Aufbau. Dies führt dazu, dass alle von PHP behandelten Skripte das Skript ausführen Vor Das tatsächliche angeforderte Skript wird ausgeführt, aber nach .htaccess (wenn Sie das verwenden).

Dieser Ansatz in Kombination mit einigen anderen Vorschlägen (z. B. MaxMind für Geo -Standortdaten und Speichern von Ansichten für bestimmte Regionen) kann zu einem eher sauberen Ansatz führen.

Wenn Sie eine Version von Magento> = 1.4 ausführen, kann der Standard -Store -Code konfiguriert werden, indem der Wert $ _server ['mage_run_code'] festgelegt wird.

Entweder in der .htaccess -Datei oder in der Konfiguration von Apache fügen Sie Folgendes hinzu:

php_value auto_prepend_file /var/www/mystore/path/to/script.php

In deiner script.php Führen Sie eine erforderliche Geschäftslogik aus und legen Sie den entsprechenden Store -Code fest:

<?php
if (get_ip_location($_SERVER['REMOTE_ADDR']) == 'uk') {
    $_SERVER['MAGE_RUN_CODE'] = 'store_code_uk';
} else {
    $_SERVER['MAGE_RUN_CODE'] = 'store_code_us';
}

Eine Sache zu beachten ist, dass dies für dies gilt alle PHP -Dateien wurden angefordert, sodass Sie dies berücksichtigen müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top