Magento स्थान के आधार पर उपयुक्त स्थानीयकरण प्रदर्शित करना


17

मैं Magento साइट को कॉन्फ़िगर करने के लिए उपयोगकर्ता की डिफ़ॉल्ट भाषा और स्थान को पहचानने और उस भाषा में साइट को प्रदर्शित करने और उचित अनुकूलन के साथ सक्षम होना चाहता हूं।

उदाहरण के लिए:

डिफ़ॉल्ट रूप में रूसी भाषा के साथ रूस से एक उपयोगकर्ता रुबल्स के साथ सीधे रूसी भाषा की वेबसाइट पर जाएगा डिफ़ॉल्ट मुद्रा और कीमतों के रूप में।

क्या यह संभव है? यदि हां, तो कैसे?

जवाबों:


14

जियोआईपी और स्टोर व्यू आपको इस मुद्दे को हल करने में मदद करेंगे।

जियोआईपी आप अपने जियोआईपी डेटाबेस के लिए मैक्समाइंड जैसे प्रदाता का उपयोग कर सकते हैं (या इसे वेब सर्वर मॉड्यूल के रूप में लोड कर सकते हैं जो हेडर में देश को जोड़ता है)।

आईपी ​​पते के आधार पर आप ग्राहक को उचित स्टोर व्यू (स्टोर व्यू स्विचर द्वारा उत्पन्न लिंक की जांच कर सकते हैं) पर पुनर्निर्देशित कर सकते हैं।

स्टोर दृश्य

रूसी एक स्टोर व्यू होनी चाहिए। अपने ग्राहकों के लिए उपयोग की जाने वाली लिंक को देखने के लिए स्टोर व्यू स्विचर देखें।

पुनर्निर्देशन के बाद आप स्टोर दृश्य के साथ ग्राहक को जोड़ने के लिए एक कुकी सेट कर सकते हैं।


हमने अपने मुफ़्त शिपिंग संदेश जैसी चीजों को बदलने के लिए साइट पर कुछ ब्लॉकों को स्विच करने के लिए जियोआईपी का उपयोग किया है
एडम जस्टिस

1
इस विषय पर देखने के लिए 3 चीजें: (1) यदि आगंतुक किसी दूसरे देश में प्रॉक्सी का उपयोग करता है या आईपी बेमेल है, तो वह स्वयं एक अलग वेबसाइट पर स्विच करना चाह सकता है। वह संभव करो। (२) स्थानीयकरण और अनुवाद में अंतर। उदाहरण के लिए अनुवाद के लिए स्थानीयकरण और भाषा स्वीकृति हेडर के लिए जियोआईपी का उपयोग करें (रूसी वेबसाइट के साथ रूसी वेबसाइट, जर्मन / इतालवी / अन्य भाषा के साथ स्विस वेबसाइट)। जवाब नीचे देखें । (३) यदि आपके पास रूस के लिए अलग-अलग मूल्य (या एक अलग आधार मुद्रा) है, तो इसके लिए एक समर्पित वेबसाइट बनाएं।
मथायस ज़ीस

9

एक Magento GeoIP एक्सटेंशन (मेरे द्वारा लिखित) है जो नवीनतम MaxMind डेटा फ़ाइल डाउनलोड करता है और समय-समय पर इसे अपडेट करता है।

मैं सुझाव देता हूं कि controller_front_init_beforeघटना में हुक लगाना चाहिए । आगंतुक के देश का ISO 3166-1 कोड प्राप्त करने के लिए आप निम्नलिखित कोड का उपयोग कर सकते हैं और फिर यदि आपके पास एक है तो उसे स्टोर के दृश्य पर पुनर्निर्देशित कर सकते हैं:

$geoIP = Mage::getSingleton('geoip/country');
$code = $geoIP->getCountry();

/*
 * Check if store view for this country/language exists and it is not a current store view. 
 * If so do a redirect.
 * You can also take a language from user agent into consideration.
 */

इस विस्तार का उपयोग करने के बारे में विस्तृत लेख यहां पाया जा सकता है


5

अगर आप प्रोग्राम कर सकते हैं तो http://www.thefutureoftheweb.com/blog/use-accept-language-header पर एक नज़र डालें । आप index.phpभाषा के लिए उपयुक्त स्टोरव्यू लोड करने में एक स्विच बना सकते हैं।


भाषा हां, लेकिन मुद्दा सिर्फ भाषा का ही नहीं बल्कि भौगोलिक स्थिति का भी है।
कार्लसन

स्विच बनाने के लिए आप मैक्समाइंड जियो एपीआई या किसी अन्य फ्री जियो सेवा का उपयोग कर सकते हैं। मैं उनके उच्च सटीकता (की वजह से मैक्समाइंड का उपयोग maxmind.com/en/geolocation_landing )
Sander Mangel

यदि उपयोगकर्ता वर्तमान में रूस में है, तो आप क्या करना चाहते हैं, लेकिन उसकी भाषा एन-यूएस है? स्थान अक्सर स्वीकार-भाषा की तुलना में कम जानकारीपूर्ण (और सटीक) होता है।
कोजिरो

@kojiro मैं पहले http स्वीकार भाषा के लिए जाना होगा। तुम सही हो, स्थान कुछ लोगों को भाषा के बारे में थोड़ा कहते हैं
Sander Mangel

1
सावधान रहें, अकेला लिंक एक खराब उत्तर माना जाता है क्योंकि यह अपने आप से अर्थहीन है और लक्ष्य संसाधन भविष्य में जीवित रहने की गारंटी नहीं है । यहां उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
j0k

5

एक और बात देखने के लिए है GEO IP।

कोड की पंक्तियों की युगल आपको उपयोगकर्ताओं को देश कोड देगी, जिसे आप उसके आधार पर स्विच कर सकते हैं।

लेकिन ध्यान दें कि आपके पास किसी भी पुनर्निर्देशन आधारित कोड का उपयोग करके समस्याएँ होंगी यदि आप एंटरप्राइज़ संस्करण और पूर्ण पृष्ठ कैश के साथ एक ही स्टोर का उपयोग कर रहे हैं क्योंकि पहला पृष्ठ हिट कैश्ड है


कैशिंग के बारे में अच्छी बात है। आपको यह पता लगाना होगा कि Vary: Accept-Languageहेडर में ब्राउज़र और FPC दोनों के लिए कैसे ।
कोजीरो

एफपीसी के बारे में अपने अंतिम नोट के बारे में कुछ विवरण जोड़ने की देखभाल करें? मैं कम से कम कहने को आतुर हूं।
नेवरमाइंड

मेरे पास एक मॉड्यूल का उपयोग करने के साथ एक समस्या थी जो GEO IP का उपयोग करता है और उपयोगकर्ता को देश कोड के आधार पर सही स्टोर पर पुनर्निर्देशित करता है। यह विफल हो गया और डिबगिंग के बाद, पर्यवेक्षक को कभी नहीं बुलाया गया था जब पृष्ठ को एफपीसी का उपयोग करके कैश किया गया था, केवल एक पर्यवेक्षक को बुलाया गया था, क्योंकि एफपीसी ने पूरी स्क्रिप्ट को मैगनेटो कोड नहीं चलाया था।
जेमी तूमा

मुझे पता है कि एक अन्य डेवलपर इंडेक्स के भीतर एक स्क्रिप्ट का निर्माण कर रहा था। चारों ओर एक काम के रूप में, लेकिन यह सुनिश्चित नहीं था कि यह सफल था या नहीं, इसलिए YET टिप्पणी नहीं कर सकता है !!
जेमी टेमा

4

एक अन्य विकल्प PHP के auto_prepend कॉन्फ़िगरेशन का उपयोग करना है। यह सभी लिपियों PHP द्वारा संभाला स्क्रिप्ट चलाने के लिए कारण होगा इससे पहले कि वास्तविक अनुरोध किया स्क्रिप्ट रन, लेकिन बाद .htaccess (आप का उपयोग कर रहे हैं)।

यह दृष्टिकोण कुछ अन्य सुझावों के साथ संयुक्त है (जैसे कि भू स्थान डेटा के लिए मैक्समाइंड का उपयोग करना और विशिष्ट क्षेत्रों के लिए स्टोर दृश्य) बल्कि एक स्वच्छ दृष्टिकोण हो सकता है।

यदि आप Magento> = 1.4 का संस्करण चला रहे हैं, तो डिफ़ॉल्ट स्टोर कोड को $ _SERVER ['MAGE_RUN_CODE'] मान सेट करके कॉन्फ़िगर किया जा सकता है।

या तो .htaccess फ़ाइल या अपाचे के विन्यास में निम्नलिखित जोड़ें:

php_value auto_prepend_file /var/www/mystore/path/to/script.php

आपके script.phpकिसी भी आवश्यक व्यावसायिक तर्क को पूरा करने और उचित स्टोर कोड निर्धारित करने में:

<?php
if (get_ip_location($_SERVER['REMOTE_ADDR']) == 'uk') {
    $_SERVER['MAGE_RUN_CODE'] = 'store_code_uk';
} else {
    $_SERVER['MAGE_RUN_CODE'] = 'store_code_us';
}

ध्यान देने वाली एक बात यह है कि यह अनुरोधित सभी PHP फ़ाइलों के लिए लागू होगा , इसलिए आपको इसे ध्यान में रखना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.