Shopify店铺仅支持Bitcoin支付,寻求修改货币小数位数显示方案
解决Shopify店铺Bitcoin支付显示更多小数位的方案
我之前帮几个做加密货币支付的Shopify商家处理过这个问题,分享几个经过验证的可行方案:
1. 修改主题Liquid代码(最直接的方法)
Shopify默认通过money过滤器格式化价格,强制显示两位小数。你可以找到主题中处理价格的Liquid文件(通常是sections/product-template.liquid、snippets/price.liquid或components/product-price.liquid这类文件),替换默认的价格格式化逻辑:
- 原来的代码可能是这样:
{{ product.price | money }} - 改成支持8位小数(Bitcoin的标准小数位数)的格式:
这里的{% assign btc_price = product.price | divided_by: 100000000.0 %} {{ btc_price | number: '%.8f' }} BTC100000000是因为1 BTC等于1亿聪(Bitcoin的最小单位),如果你的Shopify后台是按BTC为单位录入价格(不是聪),可以直接用:{{ product.price | number: '%.8f' }} BTC
2. 自定义Shopify后台货币格式
如果不想改代码,可以尝试在Shopify后台调整货币显示格式:
- 进入设置 > 货币,找到Bitcoin(BTC)货币
- 点击「更改格式」,在“金额格式”和“金额格式(不含货币)”中,替换默认的
{{ amount }}为{{ amount | number: '%.8f' }} - 例如,把格式改成:
{{ amount | number: '%.8f' }} BTC
注意:部分主题可能会忽略后台的自定义格式,这时候还是需要用方法1修改代码。
3. 用JavaScript动态修正前端显示
如果主题代码修改起来麻烦,可以添加一段自定义JS脚本,在页面加载后自动把两位小数的价格转换成8位:
document.addEventListener('DOMContentLoaded', function() { // 匹配所有显示价格的元素,根据你的主题调整选择器 const priceElements = document.querySelectorAll('.product-price, .price-item'); priceElements.forEach(el => { // 提取数字部分,去除货币符号和千分位分隔符 const priceText = el.textContent.replace(/[^0-9.]/g, ''); const originalPrice = parseFloat(priceText); // 如果是有效的数字,转换成8位小数并重新显示 if (!isNaN(originalPrice)) { el.textContent = `${originalPrice.toFixed(8)} BTC`; } }); });
把这段代码添加到主题的theme.liquid文件的</body>标签之前即可。
注意事项
- 确保你的支付网关支持对应小数位的Bitcoin交易(Bitcoin标准是8位小数,不要超过这个范围)
- 产品价格录入时要和显示逻辑对应:如果后台按聪录入,前端要转换成BTC;如果按BTC录入,直接格式化即可
- 测试所有页面的价格显示(产品页、购物车页、结算页),确保一致性
内容的提问来源于stack exchange,提问作者nino
相关产品推荐
相关产品推荐

