Magento 2 - ABD Dışı Yerel Ayarlar için ürün detay sayfasında 0.00 fiyat değişikliği


14

Magento 2.0.4 kurulumundan sonra çok garip bir sorunla karşılaşıyorum. Ben 12 $ fiyat ile bir ürün oluşturmak ve yerel arka uç Magento yapılandırma değiştirin.

Aşağıda listeleme sayfasının ekran görüntüsü verilmiştir.

resim açıklamasını buraya girin

Ayrıca ayrıntı sayfası için aşağıdaki ekran görüntüsünü bulun.

resim açıklamasını buraya girin

İki ekran görüntüsü arasındaki farkı fark etmiş olabilirsiniz. Evet, ürün detay sayfası 0,00 TL fiyat gösterirken liste sayfası eklediğim fiyatla aynı düzeyde kalıyor.

Ürün ayrıntıları sayfası, bir veya iki saniye sonra doğru fiyatı otomatik olarak 0,00 TL'ye günceller (Javascript Güncellemeleri).

Bunun için aşağıdaki kodu bulun

$('[data-price-type="' + priceCode + '"]', this.element).html(priceTemplate({data: price}));

Daha fazla kod hata ayıklama ve Magento 2 pricebox widget için parametre geçer başka bir javascript kodu bulmak.

<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>

Şimdi getJsonConfig () yöntemini kontrol ettim,

  $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
        ];

Kod üzerinden çok sayıda hata ayıklama yaptım ve yerel destek için ICUDATA kullandıkları sonucuna vardım.

Ben her şeyi ile sıkışmış, Görünüşe göre PriceFormat sorunu.

Lütfen bu sorunun yalnızca Persion (İran) gibi bazı Yerel ayar seçenekleri için ortaya çıktığından emin olun.


Reindeix uygulayın, önbelleği temizleyin, statik içeriği dağıtın.
Suresh Chikani

Teşekkürler @ SHPatel, Onun bir reindex veya önbellek sorunu değil. mümkün olan her şeyi yaptım.
Codrain Technolabs Pvt Ltd

Bu bir hatadır ve daha önce magento ekibine bildirilmiştir. Daha fazla ayrıntı için bunu kontrol edin - github.com/magento/magento2/issues/4077
Reena Parekh

Teşekkürler @ReenaParekh, Bu hata tarafımdan bildirildi. Ama bu soruna çözüm istiyorum çünkü magento insanlar bir sonraki sürümde güncellemek için zaman alacaktır.
Codrain Technolabs Pvt Ltd

Yanıtlar:


0

Bu sorun çözüldü, lütfen Magento2'nizi en son Kararlı sürüme güncelleyin

GIT & Composer'dan yüklediyseniz şu adımları izleyin:

  • Daha sonra değişikliklerinizi belirtmelisiniz
  • GIT ÇEKME Son Kararlı Şube ie 2.1
  • Besteci Güncellemesi
  • Magento'yu Yükselt ( bin/magento setup:upgrade)

aksi takdirde magento web sitesinden en son indirilenden daha zip klasörünü kullanarak yüklediyseniz ve önbelleği temizleyip çalıştırmanız gerekenden daha yeni zip kullanarak tüm dosyaları geçersiz kılın

bin/magento setup:upgrade

0

Aşağıdaki komutları kullanarak magentoyu yükseltin.

bin / magento kurulumu: yükseltme

bin / magento kurulumu: db-schema: upgrade

php -d memory_limit = -1 bin / magento kurulumu: di: derle

php -d memory_limit = -1 bin / magento kurulumu: statik içerik: dağıtma


0

Lütfen aşağıdaki kodu güncellemeyi deneyin:

Yol - 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) {

umarım senin için çalışır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.