Domanda

Mi piacerebbe configurare il sito Magento per essere in grado di riconoscere la lingua predefinita e la posizione dell'utente e visualizzare il sito in quella lingua e con la localizzazione appropriata.

Ad esempio:

Un utente dalla Russia con la lingua russa come predefinita andrà direttamente al sito web di lingua russa con Rubli come la valuta di default e dei prezzi.

È possibile? Se sì, come?

È stato utile?

Soluzione

GeoIP e Store Viste vi aiuterà a risolvere questo problema.

GeoIP È possibile utilizzare un provider come MaxMind per il database GeoIP (o caricarlo come modulo server web che aggiunge il paese nel intestazione).

In base all'indirizzo IP è possibile reindirizzare il cliente per il corretto deposito Osservi (controllare il link generato dal switcher vista negozio.

Store Viste

russo dovrebbe essere una visione Store. Controllare lo switcher vista negozio per vedere qual è il link è necessario utilizzare per i vostri clienti.

Dopo il reindirizzamento è possibile impostare un cookie per associare il cliente con la vista negozio.

Altri suggerimenti

C'è un'estensione Magento GeoIP (scritto da me) che scarica file più recente di dati MaxMind e periodicamente aggiorna.

suggerisco aggancio in caso controller_front_init_before. È possibile utilizzare il seguente codice per controllare ottenere il codice ISO 3166-1 del paese del visitatore e poi lo reindirizzare a corespondent vista se hai uno:

$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.
 */

L'articolo dettagliato su come utilizzare questa estensione può essere trovato qui .

Un'altra cosa da guardare è GEO IP.

Un paio di righe di codice vi darà il codice utenti paese, che è possibile passare in base a questo.

Ma nota che sarà hanno problemi utilizzando qualsiasi codice basato reindirizzamento se si è utilizzando lo stesso negozio con Enterprise Edition e Full pagina cache come il primo colpo pagina è in cache .

dare un'occhiata al http://www.thefutureoftheweb.com/blog/ uso-accept-language-header se si può programmare. Si potrebbe fare un interruttore nel index.php caricare l'appropriata storeview per la lingua.

Un'altra opzione è quella di utilizzare PHP è auto_prepend di configurazione. Questo farà sì che tutti gli script gestiti da PHP per eseguire lo script prima le attuali piste di script richiesti, ma dopo .htaccess (se si sta utilizzando questo).

Questo approccio combinato con alcuni degli altri suggerimenti (ad esempio utilizzando MaxMind per dati di posizione geografico e viste deposito per regioni specifiche) può causare un approccio piuttosto pulito.

Se si sta eseguendo una versione di Magento> = 1.4, il codice archivio predefinito può essere configurato impostando il $ _SERVER valore [ 'MAGE_RUN_CODE'].

In entrambe le configurazioni del file .htaccess o Apache di aggiungere quanto segue:

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

Nel vostro script.php eseguire qualsiasi logica di business necessaria e impostare il codice negozio appropriato:

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

Una cosa da notare è che questo si applica per tutti PHP file richiesti, quindi avrete bisogno di tenere a mente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top