Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Währung CHF/€ anhand der IP

    Simoneon

    • Neu im Forum
    • Beiträge: 6
    Währung CHF/€ anhand der IP
    am: 09. Januar 2023, 20:33:11
    Hallo

    Ich hätte gerne das ein Schweizer Kunde direkt mit CHF Einkauf und ein Deutscher Kunde mit €.
    Der Kunde sollte nicht noch zuerst die Währung auswählen müssen und das direkt auch ohne Kundenkonto.

    Leider funktioniert der "Auf die Landeswährung automatisch umstellen" dazu nicht, so weit ich weiss schaut der ja auf die Sprache. Die ist in der Schweiz ebenfalls Deutsch sowie Französisch und Italienisch.

    Somit ist die einzige Lösung das über die IP herauszufinden, hat das jemand schon einmal gemacht oder gibt es die Funktion bereits und ich finde das einfach nicht?
    Welchen Anbieter von IP->Location sollte ich dazu nehmen?

    Gruss Simoneon

    Linkback: https://www.modified-shop.org/forum/index.php?topic=42744.0

    Simoneon

    • Neu im Forum
    • Beiträge: 6
    Re: Währung CHF/€ anhand der IP
    Antwort #1 am: 10. Januar 2023, 01:05:50
    Hier mein erster Lösungsvorschlag
    "Auf die Landeswährung automatisch umstellen" muss dafür auf Nein sein

    In meinem Fall ist CHF die Standardwährung

    set_currency_session.php
    Code: PHP  [Auswählen]
    if (!isset ($_SESSION['currency']) || isset ($_GET['currency']) || ((USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $_SESSION['currency']))) {
      if (isset ($_GET['currency'])) {
        $_GET['currency'] = xtc_input_validation($_GET['currency'], 'char', '');
        if (!$_SESSION['currency'] = xtc_currency_exists($_GET['currency']))
          $_SESSION['currency'] = xtc_currency_exists((USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY);
      } else {
        $ip_info = json_decode(file_get_contents('https://ipwho.is/'.xtc_get_ip_address()));
        if ($ip_info != ''){
          if ($ip_info->country_code != 'CH'){
            $_SESSION['currency'] = 'EUR';
          } else {
            $_SESSION['currency'] = xtc_currency_exists((USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY);
          }
        } else {
          $_SESSION['currency'] = xtc_currency_exists((USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY);
        }
      }
    }
    if (isset ($_SESSION['currency']) && $_SESSION['currency'] == '') {
      $_SESSION['currency'] = DEFAULT_CURRENCY;
    }
     

    Erster Test mit VPN waren bis jetzt erfolgreich.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: Währung CHF/€ anhand der IP
    Antwort #2 am: 13. Januar 2023, 15:39:25
    Wie sieht das mit Datenschutz aus wenn du IPs an ein Portal zur Abfrage sendest ?

    Steht mod_geoip  auf deinem Server zur Verfügung ?
    (Scheint nicht immer in phpinfo()  (Hilfsprogramme => Server Info) aufzutauchen.)

    Miitels $_SERVER['GEOIP_COUNTRY_CODE_V6']  könntest du dann nämlich auch ziemlich genau feststellen woher ein Besucher kommt.
    Ich blocke für einen User damit z.B. alle Länder die nicht im Shop freigeschaltet sind (außer ganz Nord- und Südamerika) und somit ganz Asien, Afrika und vor allem Russland*.

    Gruß,
    noRiddle

    * Russland
    Nicht weil ich gegen Russland etwas habe oder gar der westlichen Propaganda aufsitze, sondern weil von dort oft Bots und Hackingversuche kommen die einen Shop lahmlegen können.

    *NACHTRAG*
    Die Einstellung "Auf die Landeswährung automatisch umstellen" könnte übrigens auch nur dann automatisch umstellen wenn die Sprache im Shop vorhanden und aktiviert ist und außerdem die Currency in der entsprechenden Sprachdatei definiert ist (nach  define('LANGUAGE_CURRENCY'  suchen).

    *NACHTRAG2*
    Ich finde das gehört auf irgend eine Weise als Feature in den Shop, an- und ausstellbar in der Konfig.
    Feature-Request im Bug-Tracker anlegen ?

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Re: Währung CHF/€ anhand der IP
    Antwort #3 am: 13. Januar 2023, 17:03:50
    Wenn du auf einen Webservice verzichten möchtest, kannst du das ähnlich wie Matomo/Piwik machen:
    Man sollt sich jeden Monat eine neue Version einer Datenbank, legt die lokal auf dem Webserver ab und sucht darin zu einer IP das Land, Stadt, etc.

    https://github.com/maxmind/GeoIP2-php

    generisches Integrationsbeispiel
    https://dev.maxmind.com/geoip/geolocate-an-ip/databases?lang=en#2-configure-a-geoip2-database-reader-to-query-the-database

    Simoneon

    • Neu im Forum
    • Beiträge: 6
    Re: Währung CHF/€ anhand der IP
    Antwort #4 am: 16. Januar 2023, 22:47:18
    Vielen Dank für eure Inputs werde ich prüfen.

    Mit der Abfrage für den externen Dienst habe ich so meine Probleme mit der Ladezeit, das scheint nicht die richtige Lösung zu sein. Ich habe eine kostenlose Version api.iplocation.net und kostenpflichtige Version ipwhois getestet.
    Leider sind so viele Bots unterwegs das die Abfragemenge schon gewaltig ist.

    Das Problem liegt ja daran das Deutsch CHF und € sein kann, identisch bei Italienisch und Französisch. Deshalb ist für die Schweiz die Option Sprache=>Landeswährung nicht praktikabel.

    Ich teste weiter.
    4 Antworten
    5655 Aufrufe
    14. Dezember 2014, 12:52:27 von webald
    1 Antworten
    2182 Aufrufe
    16. Oktober 2013, 11:35:23 von olli1it
    12 Antworten
    6810 Aufrufe
    28. Dezember 2010, 15:07:33 von franky_n
               
    anything