বার্নিশের পিছনে জিওআইপি-ভিত্তিক ডিফল্ট মুদ্রা নির্বাচন


14

আমি চাই যে কোনও স্টোর প্রথমবার জিওআইপি ব্যবহার করার সময় গ্রাহকের আইপি-র উপর ভিত্তি করে ডিফল্ট মুদ্রা বেছে নেবে (কোনও পূর্বনির্বাচিত মুদ্রার কুকি ছাড়াই)। নেক্সসেসির দুর্দান্ত টারপেনটাইন এক্সটেনশন ব্যবহার করে স্টোরটি বার্নিশের পিছনে।

স্ট্যান্ডার্ড ম্যাজেন্টো কারেন্সি কুকি কোনও প্রদত্ত অনুরোধের ভিত্তিতে সেট করা থাকে না কেন এক্সটেনশন মুদ্রা জরিমানা পরিচালনা করে।

এই পর্যায়ে আমার চিন্তাভাবনাগুলি হল:

  1. জিওআইপি লুকআপ করার জন্য বার্নিশ কনফিগারেশনে ভিসিএল যুক্ত করুন (সি তে) এবং অবশ্যই আগে থেকেই সেট না থাকলে অবশ্যই ইনকিউন্ড অনুরোধে কুকি সেট করুন।
  2. প্রতি ব্যবহারকারী ক্যাশেড ব্লক যুক্ত করুন যা অনুসন্ধান করে এবং কুকি সেট করে (যদিও এটি প্রথম পৃষ্ঠার লোডে প্রযোজ্য হবে না)

আমি কি একটি স্পষ্ট কৌশল মিস করছি - সম্ভবত কোনও ক্লায়েন্ট-সাইড জেএস কোনও অ-বার্নিশ-ক্যাশেড ইউআরএল পথ যা সংকল্প করে?

কেউ কি এটি করার সর্বোত্তম উপায় জানেন ?

উত্তর:


4

আমরা উত্পাদনের এই দৌড়ানোর মতো কিছু পেয়েছি (আমরা ক্রেতার অবস্থানের উপর নির্ভর করে কার্ট এবং মূল্য সংযোজনকে সক্ষম বা অক্ষম করছি)।

আমরা https://github.com/leed25d/geoip-vmod থেকে "বার্নিশ জিওআইপি মডিউল" তৈরি এবং ইনস্টল করেছি ... এটি প্রতিটি অনুরোধে একটি "এক্স-জিওআইপি" শিরোনাম সেট করে যা ব্যবহারকারীর দেশকে ইঙ্গিত করে ম্যাগানোতে পৌঁছে যায়। Magento এর মধ্যে আপনাকে এই শিরোনামটি সনাক্ত করতে হবে এবং প্রয়োজনীয় সামগ্রীটি কাস্টমাইজ করতে হবে।

কাটিয়ে ওঠার চূড়ান্ত সমস্যাটি হ'ল বার্নিশ উত্পন্ন পৃষ্ঠাটিকে ক্যাশে করবে এবং তা তাদের গ্রাহকের দেশ নির্বিশেষে পরিবেশন করবে। আপনি এই পৃষ্ঠার জন্য ক্যাচিং "বন্ধ" করতে পারেন, তবে পারফরম্যান্স ভুগছে, তাই এটি আদর্শও নয়। আমাদের সমাধানটি ছিল আমাদের এইচটিটিপি প্রতিক্রিয়ায় একটি "ভেরি" শিরোনাম প্রেরণ, যা ওয়ার্নিশকে এক্স-জিওআইপি শিরোনামের বিভিন্ন মানের জন্য বিভিন্ন বস্তু ক্যাশে করতে বলে, তাই প্রতিটি দর্শকের দেশের জন্য আমাদের আলাদা পৃষ্ঠা রয়েছে have

অ্যালিজেন্টে আমার একজন সহকর্মী একটি ম্যাজেন্টো মডিউল তৈরি করেছেন যাতে এক্স-জিওআইপি শিরোলেখ থেকে আইপি-তে ফ্যালব্যাক সহ, এটি উন্নয়নের জন্য কার্যকর যা) এবং দেশের জন্য একটি পর্যবেক্ষক প্রেরণ করার জন্য একটি কোড রয়েছে বিভিন্ন "শিরোনাম। আমরা মডিউলটি সর্দার করেছি, আপনি যদি বাস্তবায়নের বিশদ চান তবে https://github.com/aligent/Aligent_GeoIP দেখুন


1

আপনি এক্স-ফরওয়ার্ড-ফর সার্ভার ভেরিয়েবলটি চেষ্টা করে সেট করতে পারেন এবং জিওআইপি দিয়ে এটি ব্যবহার করতে পারেন

 remove req.http.X-Forwarded-For;
 set req.http.X-Forwarded-For = client.ip;

তবে এটি কেবলমাত্র ব্যাকএন্ডকে কোনও পণ্য পৃষ্ঠা বলার জন্য প্রথম অনুরোধের জন্য মুদ্রাকে সঠিকভাবে সেট করতে সহায়তা করবে। কোনও ব্যবহারকারীর দ্বারা সেই প্রোডাক্ট পৃষ্ঠার দ্বিতীয় এবং পরবর্তী দর্শনগুলি বার্নিশ ক্যাশে পাবেন এবং তাই ব্যাকএন্ডে মুদ্রা কোডটি ঠিক চলবে না? আমি মনে করি কুকির ডিফল্ট সেটিংসটি ব্যাকএন্ডে হিট হওয়ার আগেই হওয়া দরকার?
অ্যাশলে শ্রডার

আপনার ম্যাজেন্টো-বার্নিশ এক্সটেনশান সমর্থন করে কিনা এজ্যাক্স বা ইএসআই অন্তর্ভুক্ত।
Dmytro জাভালকিন

1

আমি এটি আগে করিনি, তবে এটিই আমার মনকে অতিক্রম করে:

দেশের কোড নির্ধারণের জন্য libvmod-geoip ব্যবহার করুন (এই বার্নিশ এক্সটেনশনটি ব্যবহার করেন নি, সাবধান হন ;-)) https://github.com/lampeh/libvmod-geoip

তারপরে আপনি sub vcl_hash()ক্যাশে-কীগুলিতে দেশের কোড যুক্ত করার মাধ্যমে হ্যাশ ফাংশনটি প্রসারিত করুন । এটি আপনাকে দেশের কোডের ভিত্তিতে সমস্ত কিছু ক্যাশে দেয় to

sub vcl_hash {
    #...
    set req.hash += geoip.client_country_code();
    #...
}

আপনি শিরোনাম হিসাবে দেশের কোড যুক্ত করুন, যেমন set req.http.X-GeoIP = geoip.client_country_code();ম্যাজেন্টো সার্ভার সঠিক দেশটি নির্ধারণ করতে এবং সঠিক জিনিস সরবরাহ করতে সক্ষম।

এটি কেবল একটি ধারণা, আপনার এটির উন্নতি করার প্রয়োজন হতে পারে তবে আশা করি আপনাকে একটি ভাল সমাধান খুঁজে পেতে সহায়তা করবে :)

আপনি গ্রাহকদের কুকিগুলি অ্যাক্সেস করতে এবং একটি দেশ-কোড / মুদ্রা পরীক্ষা করতে পারেন এবং যদি সেট করা থাকে তবে অন্যভাবে যেতে পারেন এবং জিওআইপি ফাংশনটি কল করবেন না ...


0

আপনি প্রতি ব্যবহারকারীকে ক্যাশে দেওয়ার পরামর্শ দিয়েছেন, যা পাগলামি। আপনার ক্যাশে হিট রেটগুলি প্রথম স্থানে ওয়ার্নিশ ব্যবহারের কোনও উপকারের পক্ষে প্রায় শূন্য হবে। উল্লেখ করার প্রয়োজন নেই বার্নিশ তার ব্যবহারকারীদের ক্যাশে প্রবেশের জন্য নতুন প্রতি ব্যবহারকারীের জন্য স্থান তৈরি করতে পুরানো প্রতি ব্যবহারকারী ক্যাশে এন্ট্রিগুলি নিষ্পত্তি করতে তার LRU প্রক্রিয়াটির মাধ্যমে অত্যন্ত কঠোর পরিশ্রম করবে।

আপনার স্বল্প কিছু সু্যোগ আছে,

  1. বার্নিশ রাখুন, বার্নিশ জিওআইপ মডিউলটি ব্যবহার করুন, প্রতি ব্যবহারকারী ক্যাচিং ব্যবহার করুন, 0% হিট রেট রয়েছে এবং বার্নিশের ক্ষেত্রে আপনার সমস্ত সার্ভারের সংস্থান নষ্ট করবেন।
  2. বার্নিশ রাখুন, বার্নিশ জিওআইপ মডিউল ব্যবহার করুন, কোনও মুদ্রা সম্পর্কিত ব্লকের জন্য একটি ESI ব্যবহার করুন। আপনাকে এসি ক্যাশে করতে হবে, অন্যথায়, হিট রেটগুলি শূন্য হবে।
  3. বার্নিশ রাখুন, বার্নিশ জিওআইপ মডিউলটি ব্যবহার করুন এবং কেবল আপনার ইউআরএল কাঠামো পরিবর্তন করুন। যদি আপনার প্রতিটি মুদ্রার জন্য আলাদা ইউআরএল থাকে (যেমন। / ইউএসডি, / ক্যান), তবে আপনার অবিচ্ছিন্ন হিট রেট থাকবে এবং এটি প্রায় নির্দোষভাবে কাজ করবে।
  4. ডাচ বার্নিশ, তারপরে সবকিছু ইচ্ছাকৃতভাবে কাজ করবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.