मैं Magento 2.0.4 की स्थापना के बाद एक बहुत ही अजीब मुद्दे का सामना कर रहा हूं। मैंने $ 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
];
मैंने कोड के माध्यम से बहुत डिबगिंग की और इस निष्कर्ष पर पहुंचा कि वे स्थानीय समर्थन के लिए ICUDATA का उपयोग कर रहे हैं।
मैं इस सब चीज़ के साथ अटका हुआ हूँ, ऐसा लगता है कि यह PriceFormat मुद्दा है।
कृपया सुनिश्चित करें कि यह मुद्दा केवल कुछ लोकेल विकल्पों जैसे कि पोजेशन (ईरान) के लिए उत्पन्न होता है।