मैगेंटो 2 - गैर-अमेरिकी लोकेल के लिए उत्पाद विस्तार पृष्ठ में उत्पाद मूल्य परिवर्तन 0.00


14

मैं 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 मुद्दा है।

कृपया सुनिश्चित करें कि यह मुद्दा केवल कुछ लोकेल विकल्पों जैसे कि पोजेशन (ईरान) के लिए उत्पन्न होता है।


रेनडिक्स, क्लीन कैश, स्टैटिक कॉन्टेंट की तैनाती करें।
सुरेश चिकानी

थैंक्स @SHPatel, यह एक रेनडेक्स या कैश मुद्दा नहीं है। मैंने हर संभव कोशिश की।
कोड्रेन टेक्नोलैब्स प्राइवेट लिमिटेड

यह एक बग है और मैगेंटो टीम को पहले से सूचित किया गया है। अधिक जानकारी के लिए इस जाँच करें - github.com/magento/magento2/issues/4077
रीना पारेख

धन्यवाद @ReenaParekh, मेरे द्वारा रिपोर्ट की गई वह बग। लेकिन मैं इस मुद्दे का समाधान चाहता हूं क्योंकि मैगेंटो लोग इसे अपनी अगली रिलीज में अद्यतन करने के लिए समय लेंगे।
कोड्रेन टेक्नोलैब्स प्राइवेट लिमिटेड

जवाबों:


0

यह समस्या हल हो गई है, कृपया अपने Magento2 को नवीनतम स्थिर संस्करण में अपडेट करें

यदि आपने GIT और संगीतकार से स्थापित किया है, तो इन चरणों का पालन करें:

  • आपको अपने परिवर्तनों को रोकना चाहिए
  • GIT PULL नवीनतम स्थिर शाखा यानी 2.1
  • संगीतकार अद्यतन
  • Magento अपग्रेड करें ( bin/magento setup:upgrade)

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

bin/magento setup:upgrade

0

निम्न आदेशों द्वारा Magento का नवीनीकरण करें।

बिन / Magento सेटअप: उन्नयन

बिन / Magento सेटअप: db-स्कीमा: उन्नयन

php -d memory_limit = -1 बिन / मैगेंटो सेटअप: di: संकलन

php -d memory_limit = -1 बिन / मजेंटो सेटअप: स्थैतिक-सामग्री: परिनियोजित


0

कृपया नीचे दिए गए कोड को अपडेट करने का प्रयास करें:

पथ - lib/internal/Magento/Framework/Locale/Format.php

class Format implements \Magento\Framework\Locale\FormatInterface
{
    const DEFAULT_NUMBER_SET = 'latn';
    /**
     * @var \Magento\Framework\App\ScopeResolverInterface
     */
@@ -104,12 +105,18 @@ public function getPriceFormat($localeCode = null, $currencyCode = null)
            $currency = $this->_scopeResolver->getScope()->getCurrentCurrency();
        }
        $localeData = (new DataBundle())->get($localeCode);
        /* $format = $localeData['NumberElements']['latn']['patterns']['currencyFormat']
            ?: explode(';', $localeData['NumberPatterns'][1])[0];
        $decimalSymbol = $localeData['NumberElements']['latn']['symbols']['decimal']
            ?: $localeData['NumberElements'][0];
        $groupSymbol = $localeData['NumberElements']['latn']['symbols']['group']
            ?: $localeData['NumberElements'][1]; */
 //start updated code
        $defaultSet = $localeData['NumberElements']['default'] ?: self::DEFAULT_NUMBER_SET;
        $format = $localeData['NumberElements'][$defaultSet]['patterns']['currencyFormat']
            ?: ($localeData['NumberElements'][self::DEFAULT_NUMBER_SET]['patterns']['currencyFormat']
                ?: explode(';', $localeData['NumberPatterns'][1])[0]);
        $decimalSymbol = $localeData['NumberElements'][$defaultSet]['symbols']['decimal']
            ?: ($localeData['NumberElements'][self::DEFAULT_NUMBER_SET]['symbols']['decimal']
                ?: $localeData['NumberElements'][0]);
        $groupSymbol = $localeData['NumberElements'][$defaultSet]['symbols']['group']
            ?: ($localeData['NumberElements'][self::DEFAULT_NUMBER_SET]['symbols']['group']
                ?: $localeData['NumberElements'][1]);

  // end updated code

        $pos = strpos($format, ';');
        if ($pos !== false) {

आशा है कि यह आपके लिए काम करेगा।

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