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: Sprachen und Preise koppeln?

    trunky

    • Frisch an Board
    • Beiträge: 91
    Sprachen und Preise koppeln?
    am: 08. August 2019, 16:19:04
    Hallo,

    ist es möglich, die Sprachen und Preise zu koppeln das z.B. im deutschen Shop nur Euro sind und im englischen Shop automatisch auch US Dollar?

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

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 10.588
    • Geschlecht:
    Re: Sprachen und Preise koppeln?
    Antwort #1 am: 08. August 2019, 17:47:34
    Von Haus aus ist das nicht möglich.
    Programmierbar wäre es natürlich.
    Das müsste allerdings hard-codiert definiert werden, weil eine eindeutige Beziehung von Sprache und Währung nicht gegeben ist. Selbst wenn man sie konstruieren würde und in einer DB-Tabelle speichern würde stieße man bei der Umsetzung auf Schwierigkeiten. Soll bei Sprache "en" Dollar oder Pfund mit zur Auswahl stehen ?
    Wenn die Sprache "en_us" wäre und/oder für britisches Englisch en_gb könnte man es evtl. koppeln.

    Nach meiner Einschätzung könnte es sogar sein, daß dein Wunsch update-sicher implementierbar wäre.

    Gruß,
    noRiddle

    trunky

    • Frisch an Board
    • Beiträge: 91
    Re: Sprachen und Preise koppeln?
    Antwort #2 am: 08. August 2019, 19:27:12
    ich meinte es einfacher.. wenn der Kunde im Dropdown Deutsch auswählt, soll die Seite in Deutsch sein und Euro ausweisen. Wenn er Englisch auswählt, soll die Seite in englisch sein und Dollar anzeigen.

    awids

    • Experte
    • Beiträge: 2.677
    • Geschlecht:
    Re: Sprachen und Preise koppeln?
    Antwort #3 am: 08. August 2019, 20:44:10
    Neue Datei: /includes/extra/application_top/application_top_end/lang_currencies_change.php

    Inhalt:
    Code: PHP  [Auswählen]
    <?php
    if ($_SESSION['language'] == 'german') { // Deutsch
      $_SESSION['currency'] = 'EUR';
    } elseif ($_SESSION['language'] == 'english') { // Englisch
      $_SESSION['currency'] = 'USD';
    } else { // Default
      $_SESSION['currency'] = 'EUR';
    }
    ?>

    Das ist aber nur ein schneller Weg und nicht unbedingt der Beste.

    trunky

    • Frisch an Board
    • Beiträge: 91
    Re: Sprachen und Preise koppeln?
    Antwort #4 am: 09. August 2019, 02:05:21
    Vermutlich :)
    Funktioniert immer erst beim zweiten Aufruf der Seite, nicht direkt beim Umschalten.

    Danke trotzdem für die Anregung.

    awids

    • Experte
    • Beiträge: 2.677
    • Geschlecht:
    Re: Sprachen und Preise koppeln?
    Antwort #5 am: 09. August 2019, 02:41:54
    Es funktioniert schon beim 1. Aufruf - nur werden die Preise erst beim Reload geupdatet. Wie gesagt, nicht der beste Weg. Aber wenigstens schon mal ein kleiner Ansatz.

    hpzeller

    • Experte
    • Beiträge: 3.378
    • Geschlecht:
    Re: Sprachen und Preise koppeln?
    Antwort #6 am: 09. August 2019, 09:59:08
    Hallo trunky,

    du kannst auch folgenden alternativen Vorschlag welcher bei Sprachwechsel ein sofortige Währungsumstellung zur Folge haben sollte testen.

    Im Admin  unter Konfiguration -> Mein Shop -> Auf die Landeswährung automatisch umstellen auf [Ja] setzen.

    Dann in der Datei lang/english/english.php folgende Codezeile

    Code: PHP  [Auswählen]
    define('LANGUAGE_CURRENCY', 'EUR');

    mit dieser ersetzen,

    Code: PHP  [Auswählen]
    define('LANGUAGE_CURRENCY', 'USD');

    oder (updatesicher) die Datei lang/english/extra/set_currency.php mit folgendem Inhalt erstellen.

    Code: PHP  [Auswählen]
    <?php
    // if USE_DEFAULT_LANGUAGE_CURRENCY is true, use the following currency when changing language,
    // instead of staying with the applications default currency
    define('LANGUAGE_CURRENCY', 'USD');
     

    Gruss
    Hanspeter

    trunky

    • Frisch an Board
    • Beiträge: 91
    Re: Sprachen und Preise koppeln?
    Antwort #7 am: 09. August 2019, 14:52:18
    Danke @hpzeller!

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 10.588
    • Geschlecht:
    Re: Sprachen und Preise koppeln?
    Antwort #8 am: 09. August 2019, 17:16:35
    Interessant, USE_DEFAULT_LANGUAGE_CURRENCY kannte ich gar nicht, bzw. habe ich mir nie genau angeschaut.
    Allerdings ist die Beschreibung im Backend auch irreführend:
    Zitat von: Shop-Backend
    Automatisch auf die Landeswährung des Kunden umstellen, sofern verfügbar.

    Das hatte ich bislang so verstanden, daß es um das Land des Kontos bei eingeloggten Kunden geht.
    Denn, was ist "die Landeswährung des Kunden" ?
    Daß da schlicht mit der sprach-abhängigen Konstanten LANGUAGE_CURRENCY verglichen wird war mir nicht klar.

    Von den Notices, die vollaufen dürften wegen des wiederholten Definierens einer Konstanten, mal abgesehen, eine schöne einfache Lösung, hpzeller.

    Gruß,
    noRiddle

    hpzeller

    • Experte
    • Beiträge: 3.378
    • Geschlecht:
    Re: Sprachen und Preise koppeln?
    Antwort #9 am: 09. August 2019, 19:35:36
    [...]
    Von den Notices, die vollaufen dürften wegen des wiederholten Definierens einer Konstanten, mal abgesehen, eine schöne einfache Lösung, hpzeller.
    [...]

    Das ist dem Umstand geschuldet, das man in der Datei lang/english/english.php nach

    Code: PHP  [Auswählen]
    require_once(DIR_FS_INC.'auto_include.inc.php');
    foreach(auto_include(DIR_WS_LANGUAGES.'english/extra/','php') as $file) require ($file);

    die Konstanten so

    Code: PHP  [Auswählen]
    define('LANGUAGE_CURRENCY', 'EUR');

    anstatt so

    Code: PHP  [Auswählen]
    defined('LANGUAGE_CURRENCY') or define('LANGUAGE_CURRENCY', 'EUR');

    definiert hat.

    PS:
    In der Datei includes/configure.php hat man es richtig gemacht, siehe nachfolgenden Code.

    Code: PHP  [Auswählen]
      if (DB_DATABASE != '') {
        // auto include
        require_once (DIR_FS_CATALOG.'inc/auto_include.inc.php');

        foreach(auto_include(DIR_FS_CATALOG.'includes/extra/configure/','php') as $file) require_once ($file);
      }

      // server
      defined('HTTP_SERVER') or define('HTTP_SERVER', 'https://hpzeller.com'); // eg, http://localhost - should not be empty for productive servers
      defined('HTTPS_SERVER') or define('HTTPS_SERVER', 'https://hpzeller.com'); // eg, https://localhost - should not be empty for productive servers

      // secure SSL
      defined('ENABLE_SSL') or define('ENABLE_SSL', true); // secure webserver for checkout procedure?
      defined('USE_SSL_PROXY') or define('USE_SSL_PROXY', false); // using SSL proxy?

      // session handling
      defined('STORE_SESSIONS') or define('STORE_SESSIONS', 'mysql'); // leave empty '' for default handler or set to 'mysql'

    Gruss
    Hanspeter

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 10.588
    • Geschlecht:
    Re: Sprachen und Preise koppeln?
    Antwort #10 am: 09. August 2019, 19:42:40
    Ja, ich kenne den Grund.
    Das habe ich schon mehrfach moniert und darum gebeten defined() OR define() zu benutzen.

    Irgend ein modified-Team-Mitglied hatte irgendwo darauf auch etwas geschrieben, ich finde es nur nicht mehr.

    Gruß,
    noRiddle
    Shop Hosting
    5 Antworten
    4509 Aufrufe
    30. August 2013, 10:45:35 von sham
    3 Antworten
    356 Aufrufe
    05. Januar 2019, 11:57:40 von cdfcool
    1 Antworten
    1767 Aufrufe
    30. Oktober 2012, 07:01:21 von hendrik
    anything