Magento 2 - Thay đổi giá sản phẩm thành 0,00 trong trang chi tiết sản phẩm cho Địa điểm không thuộc Hoa Kỳ


14

Tôi đang gặp một vấn đề rất lạ sau khi cài đặt Magento 2.0.4. Tôi đã tạo ra một sản phẩm với giá $ 12 và thay đổi ngôn ngữ từ cấu hình Magento trong phần phụ trợ.

Dưới đây là ảnh chụp màn hình cho trang danh sách.

nhập mô tả hình ảnh ở đây

Cũng tìm ảnh chụp màn hình dưới đây cho trang chi tiết.

nhập mô tả hình ảnh ở đây

Bạn có thể nhận thấy sự khác biệt giữa hai ảnh chụp màn hình. Có, trang chi tiết sản phẩm hiển thị giá $ 0,00 trong khi trang danh sách vẫn giữ nguyên với giá tôi đã thêm.

Trang chi tiết sản phẩm tự động cập nhật giá chính xác đến $ 0,00 Sau một hoặc hai giây (Cập nhật Javascript).

Tìm mã dưới đây cho nó

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

Tôi đã gỡ lỗi thêm trong mã và tìm một mã javascript khác chuyển tham số cho tiện ích hộp giá Magento 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>

Bây giờ tôi đã kiểm tra phương thức 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
        ];

Tôi đã gỡ lỗi thông qua mã và đi đến kết luận rằng họ đang sử dụng ICUDATA để hỗ trợ ngôn ngữ.

Tôi bị mắc kẹt với tất cả những điều này, có vẻ như đó là vấn đề của PriceFormat.

Vui lòng đảm bảo rằng vấn đề này chỉ phát sinh đối với các tùy chọn Địa phương nhất định như Persion (Iran).


Áp dụng reindeix, dọn dẹp bộ đệm, triển khai conent tĩnh.
Suresh Chikani

Cảm ơn @SHPatel, Đây không phải là vấn đề reindex hoặc bộ đệm. tôi đã làm mọi thứ có thể
Codrain Technolabs Pvt Ltd

Đây là một lỗi và đã được báo cáo trước đây cho nhóm magento. Kiểm tra điều này để biết thêm chi tiết - github.com/magento/magento2/issues/4077
Reena Parekh

Cảm ơn @ReenaParekh, lỗi đó do tôi báo cáo. Nhưng tôi muốn giải pháp cho vấn đề này bởi vì mọi người sẽ dành thời gian để cập nhật nó trong phiên bản tiếp theo.
Codrain Technolabs Pvt Ltd

Câu trả lời:


0

vấn đề này đã được giải quyết, vui lòng cập nhật Magento2 của bạn lên phiên bản Ổn định mới nhất

nếu bạn đã cài đặt từ GIT & Composer, hãy làm theo các bước sau:

  • Hơn bạn phải ngăn chặn những thay đổi của bạn
  • GIT PULL Chi nhánh ổn định mới nhất tức là 2.1
  • Cập nhật nhà soạn nhạc
  • Nâng cấp Magento ( bin/magento setup:upgrade)

khác nếu bạn đã cài đặt bằng cách tải xuống thư mục zip hơn tải xuống mới nhất từ ​​trang web magento và ghi đè tất cả các tệp bằng zip mới hơn bạn cần xóa bộ nhớ cache và chạy

bin/magento setup:upgrade

0

Nâng cấp magento bằng các lệnh sau.

thiết lập bin / magento: nâng cấp

thiết lập bin / magento: db-giản đồ: nâng cấp

php -d memory_limit = -1 bin / magento setup: di: biên dịch

php -d memory_limit = -1 bin / magento setup: static-content: triển khai


0

Vui lòng thử cập nhật mã dưới đây:

Con đường - 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) {

hy vọng nó làm việc cho bạn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.