Händlerbund_728x90_animiert
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:

Autor Thema: Sprachen und Preise koppeln?  (Gelesen 355 mal)

Offline trunky

  • Frisch an Board
  • **
  • Beiträge: 86
    • Teile Beitrag
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

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.112
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
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

Offline trunky

  • Frisch an Board
  • **
  • Beiträge: 86
    • Teile Beitrag
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.

Online awids

  • Experte
  • *****
  • Beiträge: 2.562
  • Geschlecht: Männlich
    • Teile Beitrag
    • awids
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.

Offline trunky

  • Frisch an Board
  • **
  • Beiträge: 86
    • Teile Beitrag
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.

Online awids

  • Experte
  • *****
  • Beiträge: 2.562
  • Geschlecht: Männlich
    • Teile Beitrag
    • awids
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.

Offline hpzeller

  • Experte
  • *****
  • Beiträge: 3.120
  • Geschlecht: Männlich
    • Teile Beitrag
    • xos-shop.com | XOS-Shop ist ein umfangreiches "Open Source Webshop-System", welches per Webinterface administriert wird und an die Bedürfnisse des Betreibers angepasst werden kann.
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

Offline trunky

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

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.112
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
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

Offline hpzeller

  • Experte
  • *****
  • Beiträge: 3.120
  • Geschlecht: Männlich
    • Teile Beitrag
    • xos-shop.com | XOS-Shop ist ein umfangreiches "Open Source Webshop-System", welches per Webinterface administriert wird und an die Bedürfnisse des Betreibers angepasst werden kann.
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

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.112
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
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


Teile per facebook Teile per linkedin Teile per twitter