Prekladová tabuľka IP ⇒ krajina

MKI-Miro
Člen | 271
+
0
-

Ahojte

Keďže máme eshop na rôznych doménach vrátane .eu tak sa nám často stáva, že zákazník napr z Česka alebo Maďarska nakúpi na EU doméne pričom si nevšimne že má možnost prepnúť sa na lokálnu doménu.

Ako to teda vyriesiť? (ak máte lepšie riešenie ako to naše kľudne napíšte aj to)

  1. Cez http://www.geoplugin.net zístíme krajinu podľa IP
  2. Problém je, že request samozrejme nechceme robiť pri každom refreshi stránky.
  3. Kde teda následne uložiť danú informáciu? Do session?

Ďakujem

Editoval MKI-Miro (22. 5. 2023 15:14)

Kamil Valenta
Člen | 762
+
0
-

Proč ne do cache?

m.brecher
Generous Backer | 758
+
0
-

@MKI-Miro

Cez http://www.geoplugin.net zístíme krajinu podľa IP

A co s informací o krajině dál děláte ?? Přesměrujete uživatele na příslušnou jazykovou verzi eshopu ?? Problém je, že krajina IP adresy dnes už mnoho neřekne o jazyku uživatele. Není lepší javascriptem indikovat jazykovou verzi prohlížeče a respektovat jazyk, který uživatel skutečně používá ?? Loni jsem si takový skriptík napsal, kdyžtak pošlu.

MKI-Miro
Člen | 271
+
0
-

m.brecher napsal(a):

@MKI-Miro

Cez http://www.geoplugin.net zístíme krajinu podľa IP

A co s informací o krajině dál děláte ?? Přesměrujete uživatele na příslušnou jazykovou verzi eshopu ?? Problém je, že krajina IP adresy dnes už mnoho neřekne o jazyku uživatele. Není lepší javascriptem indikovat jazykovou verzi prohlížeče a respektovat jazyk, který uživatel skutečně používá ?? Loni jsem si takový skriptík napsal, kdyžtak pošlu.

Ponúkneme link niekde na viditeľnom mieste na danú doménu.

Zisťovať jazyk javascriptom beriem ako zaujímavú alternatívu.

Kamil Valenta napsal(a):

Proč ne do cache?

A prečo teda áno? V čom je výhoda?

Editoval MKI-Miro (23. 5. 2023 7:35)

Marek Bartoš
Nette Blogger | 1173
+
0
-

Můžeš detekovat buď přes IP adresu a k tomu potřebuješ databázi IP, např. ten odkazovaný geoplugin
Nebo přes geolocation api v js, ale to vyžaduje odkliknutí od uživatele.

Udělal bych to přes IP adresu tímhle způsobem: Do local storage si uložíš, kterou IP adresu jsi kontroloval, jaká ti pro ni vyšla země a zda uživatel lokaci potvrdil. Když se IP adresa změní, provedeš dotaz na server, vrátí se ti země. Pokud se změní, zkontroluješ zda chceš uživatele přesměrovat, nastavíš že lokace není potvrzená a zobrazíš uživateli notifikaci. Notifikaci zobrazíš pokaždé, když není potvrzená.

@mbrecher Jazyk a lokace jsou úplně oddělené problémy. Lokaci můžeš chtít, pokud z legálních důvodů máš eshop oddělený pro různé oblasti (např. amazon.com, amazon.de)

Pokud jde jen o jazyk, tak se dá snadno detekovat z http headeru.

Kamil Valenta
Člen | 762
+
0
-

MKI-Miro napsal(a):

A prečo teda áno? V čom je výhoda?

Když přijde 10 uživatelů (s 10 různými sessions) ze stejné IP, hned víš, které lokaci to odpovídá. Páry „IP – lokace“ přeci nejsou uživatelská data. Do sessions / cookies / local storage bych si naopak ukládal, zda uživatel o přesměrování stál, nebo ho zamítl. Aby ho to neobtěžovalo při každém requestu…

m.brecher
Generous Backer | 758
+
-1
-

@MarekBartoš

Jazyk a lokace jsou úplně oddělené problémy. Lokaci můžeš chtít, pokud z legálních důvodů máš eshop oddělený pro různé oblasti (např. amazon.com, amazon.de)

V tomto konkrétním případě @MKI-Miro uvažuje o vygenerování linku pro přechod na odpovídající jazykovou verzi, kterou by určil pomocí geolokace. A tady mě přijde lepší určovat tu cílovou jazykovou verzi ne z geolokace ale z jazykové verze prohlížeče.

Pokud jde jen o jazyk, tak se dá snadno detekovat z http headeru

Ano, skvělý nápad, protože @MKI-Miro nebude přesměrovávat, ale pouze vygeneruje link, tak se dá javascript vynechat a link rovnou generovat na základě http headeru, nikdy jsem to takhle nedělal, ale fungovat by to mělo.