对于特定货币,销售点(POS)的现金交易现在会自动四舍五入到最接近的面额。此功能适用于使用以下货币和地区的现金付款及退款:CAD(加拿大)、AUD(澳大利亚)、NZD(新西兰)、EUR(瑞士、比利时、芬兰)、DKK(丹麦)、SEK(瑞典)、NOK(挪威)。未来可能会支持更多货币。
此外,在 GraphQL Admin API 2024-10 及更高版本中,我们引入了新字段,以简化对订单和交易的现金四舍五入调整的查询。
订单级别的现金四舍五入调整
在Order对象上,我们引入了totalCashRoundingAdjustment字段,该字段表示在销售点订单中所有支付和退款交易上应用的总现金舍入调整金额。
- Payments:使用totalCashRoundingAdjustment.paymentSet。
- Refunds:使用totalCashRoundingAdjustment.refundSet。
计算四舍五入后的总金额:
- 四舍五入后的总支付金额 = 收到的总金额 Set.presentment Money + 现金四舍五入调整支付金额 Set.presentment Money: totalReceivedSet.presentmentMoney + totalCashRoundingAdjustment.paymentSet.presentmentMoney
- 四舍五入后的总退款金额 = 已退款总金额 Set.presentment Money + 现金四舍五入调整退款金额 Set.presentment Money: totalRefundedSet.presentmentMoney + totalCashRoundingAdjustment.refundSet.presentmentMoney
交易级别的现金四舍五入调整
在OrderTransaction对象上,我们引入了amountRoundingSet字段,该字段表示在销售点上针对单笔现金支付或退款交易应用的现金舍入调整金额。
要识别现金交易,请检查gateway字段是否等于cash。
计算四舍五入后的交易金额:
四舍五入后的交易金额 = 交易金额 Set.presentment Money + 四舍五入调整金额 Set.presentment Money = amountSet.presentmentMoney + amountRoundingSet.presentmentMoney
示例
考虑一个销售点订单示例:
- 现金支付:9.99,向上舍入+0.01至10.00
- 部分现金退款:5.02,向下舍入-0.02至5.00
订单示例
| 字段 | 值 |
|---|---|
| totalReceivedSet.presentmentMoney | 9.99 |
| totalCashRoundingAdjustment.paymentSet.presentmentMoney | +0.01 |
| 四舍五入后的总支付金额 | 10.00 |
| totalRefundedSet.presentmentMoney | 5.02 |
| totalCashRoundingAdjustment.refundSet.presentmentMoney | -0.02 |
| 四舍五入后的总退款金额 | 5.00 |
交易示例
| 交易类型 | amountSet.presentmentMoney | amountRoundingSet.presentmentMoney | 四舍五入后的交易金额 |
|---|---|---|---|
| 支付 | 9.99 | +0.01 | 10.00 |
| 退款 | 5.02 | -0.02 | 5.00 |

