次の Magento マルチストア設定があります。
- german.domain.com
- English.domain.com
- フランス語.domain.com
みんな使ってる
- secure.domain.com
SSL ドメインとして。言語が英語に戻ることを除いて、カートとすべてが正常に機能します!
german.domain.com (ストアの言語はドイツ語) を使用していて、チェックアウトをクリックすると、ショップは secure.domain.com に移動します。german.domain.com に追加した製品は存在しますが、言語はドイツ語ではなくなりました。英語に戻ります!Cookie ドメインの設定は処理しません。そうしないと、カート内の製品が共有されません。
誰かがアイデアを持っているか、この問題を解決しましたか? これを解決するには、インテリジェントなコーディングが必要だと思います。
ありがとう
解決策: Franklin P Strube は正しい解決策を提供しましたが、私はそれを PHP の index.php にハードコーディングしました。
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
if($_SERVER['SERVER_NAME'] != 'secure.domain.com' && isset($_SERVER['HTTP_REFERER'])) {
$url = parse_url($_SERVER['HTTP_REFERER']);
if($url['host'] == 'german.domain.com') {
setcookie('language', 'german', 0, '/', '.domain.com');
} elseif($url['host'] == 'french.domain.com') {
setcookie('language', 'french', 0, '/', '.domain.com');
} else {
setcookie('language', 'english', 0, '/', '.domain.com');
}
}
if($_SERVER['SERVER_NAME'] == 'secure.domain.com') {
if(isset($_COOKIE['language'])) {
$mageRunCode = $_COOKIE['language'];
}
}
Mage::run($mageRunCode, $mageRunType);