cách hiển thị tiền tệ theo kiểu VN

Thảo luận trong 'Programming Questions' bắt đầu bởi thangbinh, 25 Tháng ba 2009.

  1. thangbinh

    thangbinh New Member

    [​IMG]

    bro nào biết chỉnh magento về cách hiển thị tiền tệ việt nam ko ạ ? ví dụ : 12.000.000đ chứ ko phải 12.000.000,00₫ , nếu có thể thay dấu , ở phần thập phân thành dấu . và 2 số 0 phía sau thành 3 số 0 thì tốt quá :D em cảm ơn nhiều lắm ạ

    Bài viết khác cùng chuyên mục:

  2. minhdiep

    minhdiep Member

    Bạn tìm function roundPrice()
    app/code/core/Mage/Core/Model/Store.php

    Mã:
     public function roundPrice($price)
        {
            return round($price, 2);
        }
    viết lại thành

    Mã:
     public function roundPrice($price,$roundTo=3)
        {
        return round($price, $roundTo);
        } 
    Tìm trong
    /lib/zend/Currency.php

    Mã:
    protected $_options = array(
            'position'  => self::STANDARD,
            'script'    => null,
            'format'    => null,
            'display'   => self::NO_SYMBOL,
            'precision' => 2,
            'name'      => null,
            'currency'  => null,
            'symbol'    => null
        );
    thay

    Mã:
    protected $_options = array(
            'position'  => self::STANDARD,
            'script'    => null,
            'format'    => null,
            'display'   => self::NO_SYMBOL,
            'precision' => 3,
            'name'      => null,
            'currency'  => null,
            'symbol'    => null
        );
    Bạn sẽ thấy nó như thế nào :D
  3. hongphuong

    hongphuong New Member

    Cách này đã giải quyết được vấn đề của bác thangbinh rồi, tuy nhiên em thấy có 2 vấn đề sau:
    + Can thiệp vào core là việc không được khuyến khích, vì nó sẽ gây khó khăn cho việc update về sau.
    + Thêm 3 số 0 vào đằng sau để từ 12.000VNĐ thành 12,000VNĐ như ý kiến của bác thangbinh là đi ngược với quy tắc tiền tệ. Tỉ giá hối đoái được tính là 1$ ăn 17.xxx VNĐ chứ có phải là 1$ ăn 17,00 VNĐ đâu. Sau này nếu sử dụng hệ thống update tỉ giá tiền tệ từ service sẽ gặp trục trặc.
    nếu bỏ hẳn hai số 0 đằng sau đi thì có phải là chỉ cần thay số 3 trong vd của bác minhdiep thành số 0 ko ạ? :geek:
    nguyendattai thích bài này.
  4. minhdiep

    minhdiep Member

    Chính xác bạn ạ.
  5. thangbinh

    thangbinh New Member

    vậy có cách nào chỉnh lại mà ko cần can thiệp vào code ko bro ?
    @minhdiep : thank bro nhiều lắm ;)
    PS : em muốn bỏ 3 số 0 phía sau đi để khi nhập vào tiện hơn thôi, như 12 triệu thay vì nhập 12000000 thì nhập 12000 :D
  6. cadet43

    cadet43 New Member

    Hi ..,
    Các anh em cho mình hỏi là làm sao để config price in đ(Vietnamese store) and US(English store).
    Với 1 sản phẩm mình thiết lập trên store Vietnamese and English, nhưng chỉ hiện ra giá đ thôi, chưa hiện ra giá US trong English store.
    Thanks,
  7. admin

    admin Mai Văn Hải Staff Member

    Bạn làm như sau:
    - Click chọn Hệ thống
    - Bên tay trái màn hình Phạm vi cấu hình hiện tại bạn chọn ngôn ngữ cần cầu hình
    - Chọn Cài đặt ngoại tệ
    tại đây bạn chọn loại tiền sẽ hiển thị cho ngôn ngữ.

    Xem hình sau nhé

    [​IMG]
  8. nthanh0905

    nthanh0905 New Member

    mình thay số 3 thành số 0 nhưng nó chỉ hiển thị đúng trên trang Admin, còn trang sản phẩm nó vẫn ra ,00 như thường. Sửa file Store trong Core thì bị lỗi trang, làm sao bi jờ?
  9. letram105

    letram105 New Member


    MÌnh làm ý hệt mà ko thành công. vẫn ko có thay đổi gì. MÌnh dùng Magento ver. 1.4.1.1
  10. designxvn

    designxvn New Member

    mình dùng phiên bản 1.4.1 cũng không được , đã thử trên 1.4.2.0-RC1 , cho hỏi còn cách nào khác không cần sửa code không ? cám ơn nhiều
  11. admin

    admin Mai Văn Hải Staff Member

  12. admin

    admin Mai Văn Hải Staff Member

    Cách mới để làm việc này, các bạn làm theo các bước sau:

    1. Mở file Currency.php trong app\code\core\Mage\Directory\Mode
    2. Tìm đến dòng 195:

    Mã:
        public function format($price, $options=array(), $includeContainer = true, $addBrackets = false)
        {
            return $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets);
        }
    
    Bạn đổi số 2 thành 0.

    lưu lại và chạy. :)
    Nam NP thích bài này.
  13. hddvn

    hddvn New Member

    Tôi dùng Magento 1.4.2.0; làm theo cách a Hải vẫn không được. Mong được giúp đỡ.
  14. admin

    admin Mai Văn Hải Staff Member

    Sau khi sửa file, bạn xóa hết các file trong thư mục var/cache
    cho chạy lại web nhé.

    chúc bạn thành công
  15. hddvn

    hddvn New Member

    Tôi đã xóa cache theo hướng dẫn, tuy nhiên vẫn không thành công
  16. khangbn

    khangbn New Member

    hi thanks ok rồi :lol:
  17. atanniyya

    atanniyya New Member

    Trong phần My Account Dashboard (Hay thông tin đơn hàng) vẫn hiện thị hai số 00, ở ngoài shopping thì đã fix được.

    Tiện thể hỏi luôn các bác trong phần My Account Dashboard (Hay thông tin đơn hàng) bị lỗi không cho phép đơn hàng quá 100.000.000,00 đ. Hix lỗi này em timg khắp mà vẫn chưa tìm ra cách khắc phục. Ở ngoài giao diện đã khắc phục được nhưng trong cái thông tin đơn hàng thì đúng là bó tay.

    Mong các bác hỗ trợ (gửi email cho em qua tatdathn@gmail.com) sẽ hậu tạ ^^
  18. ttstech

    ttstech New Member

    bạn dùng magento bản mới, ko cần edit core.
    làm theo hướng dẫn trên là chạy được
  19. thangusol

    thangusol New Member

    Bạn thử vào link sau xem nhé.
    http://php.quicoto.com/how-to-change-cu ... n-magento/
  20. trang79

    trang79 New Member

    Cách sửa code như anh Mai Hải chỉ đúng khi website chỉ có 1 store view tiếng Việt. Vậy phải làm cách nào để store view tiếng Việt mất 2 chữ số 0 ở phần thập phân trong khi các store view ngôn ngữ khác vẫn còn phần thập phân. Website của em dùng 2 ngôn ngữ Anh và Việt.
    Và đơn hàng lớn hơn 100 triệu thì cần phải làm sao để được chấp nhận.
    Mong được hướng dẫn cụ thể

Chia sẻ trang này