আমি ম্যাজেন্টো ২.০.৪ ইনস্টল করার পরে একটি খুব অদ্ভুত সমস্যার মুখোমুখি। আমি 12 ডলার মূল্যের সাথে একটি পণ্য তৈরি করেছি এবং ব্যাকএন্ডে ম্যাজেন্টো কনফিগারেশন থেকে লোকেলটি পরিবর্তন করেছি।
নীচে তালিকার পৃষ্ঠার স্ক্রিনশট রয়েছে।
বিস্তারিত পৃষ্ঠার জন্য নীচের স্ক্রিনশটটিও সন্ধান করুন।
আপনি দুটি স্ক্রিনশটের মধ্যে পার্থক্য লক্ষ্য করতে পারেন। হ্যাঁ, তালিকার পৃষ্ঠাগুলিতে আমি যা যুক্ত করেছি তার দামটি ধরে রাখার সময় পণ্যের বিশদ পৃষ্ঠাটি $ 0.00 মূল্য দেখায়।
পণ্য বিবরণ পৃষ্ঠাটি স্বয়ংক্রিয়ভাবে এক বা দুই সেকেন্ড পরে জাভাস্ক্রিপ্ট আপডেটগুলি সঠিক মূল্যকে $ 0,00 এ আপডেট করে।
এটির জন্য নীচের কোডটি সন্ধান করুন
$('[data-price-type="' + priceCode + '"]', this.element).html(priceTemplate({data: price}));
আমি কোডে আরও ডিবাগ করেছি এবং অন্য একটি জাভাস্ক্রিপ্ট কোড পেয়েছি যা ম্যাজেন্টো 2 প্রাইসবক্স উইজেটে প্যারামিটারটি পাস করে।
<script>
require([
'jquery',
'Magento_Catalog/js/price-box'
], function($){
var priceBoxes = $('[data-role=priceBox]');
priceBoxes = priceBoxes.filter(function(index, elem){
return !$(elem).find('.price-from').length;
});
priceBoxes.priceBox({'priceConfig': <?php /* @escapeNotVerified */ echo $block->getJsonConfig() ?>});
});
</script>
এখন আমি getJsonConfig () পদ্ধতিটি পরীক্ষা করেছি,
$product = $this->getProduct();
if (!$this->hasOptions()) {
$config = [
'productId' => $product->getId(),
'priceFormat' => $this->_localeFormat->getPriceFormat()
];
return $this->_jsonEncoder->encode($config);
}
$tierPrices = [];
$tierPricesList = $product->getPriceInfo()->getPrice('tier_price')->getTierPriceList();
foreach ($tierPricesList as $tierPrice) {
$tierPrices[] = $this->priceCurrency->convert($tierPrice['price']->getValue());
}
$config = [
'productId' => $product->getId(),
'priceFormat' => $this->_localeFormat->getPriceFormat(),
'prices' => [
'oldPrice' => [
'amount' => $this->priceCurrency->convert(
$product->getPriceInfo()->getPrice('regular_price')->getAmount()->getValue()
),
'adjustments' => []
],
'basePrice' => [
'amount' => $this->priceCurrency->convert(
$product->getPriceInfo()->getPrice('final_price')->getAmount()->getBaseAmount()
),
'adjustments' => []
],
'finalPrice' => [
'amount' => $this->priceCurrency->convert(
$product->getPriceInfo()->getPrice('final_price')->getAmount()->getValue()
),
'adjustments' => []
]
],
'idSuffix' => '_clone',
'tierPrices' => $tierPrices
];
আমি কোডটির মাধ্যমে প্রচুর ডিবাগিং করেছি এবং এই সিদ্ধান্তে পৌঁছেছি যে তারা লোকাল সমর্থনের জন্য আইসিইউডিটি ব্যবহার করছে।
আমি এই সমস্ত কিছুর সাথে আটকে আছি, মনে হচ্ছে এটি প্রাইসফর্ম্যাট ইস্যু।
দয়া করে নিশ্চিত করুন যে এই সমস্যাটি কেবলমাত্র পার্সিয়ান (ইরান) এর মতো নির্দিষ্ট স্থানীয় বিকল্পগুলির জন্য উত্থিত হয়েছে।