更新 POS 與行動版收據的電子郵件通知以支援現金進位原則
如果您的商店使用自訂的通知範本,可能需要手動更新POS 與行動版收據的電子郵件通知,確保收據上會顯示現金進位原則。
這些變更需要熟悉 Shopify 通知範本所使用的程式碼。如果您的範本已大幅自訂,且不確定如何套用必要變更,請聯絡進行調整的開發人員,或點選還原為預設,將範本還原成原始狀態。還原為預設後,您所有的自訂內容都會被移除,但預設範本可確保您使用的是最新的範本版本。
更新 POS 與行動版收據的電子郵件通知
您可以更新POS 與行動版收據通知,讓收據同時顯示來自付款與退款交易的淨現金進位金額,以及進位後的總額。
步驟:
在 Shopify 管理介面中,前往設定 > 通知。
按一下顧客通知。
在POS 區段中,按一下POS 與行動版收據。
按一下編輯程式碼。
新增邏輯以計算淨現金進位金額 (
net_transaction_amount_rounding)。- 找到第一行
{% assign transaction_size = 0 %}程式碼。 - 將現有的程式碼區塊替換為以下程式碼區塊:
- 找到第一行
{% assign transaction_size = 0 %}
{% assign transaction_amount = 0 %}
{% assign net_transaction_amount_rounding = 0 %}
{% assign authorized_amount = 0 %}
{% assign has_refunds = false %}
{% assign shopify_pay_captured = false %}
{% assign shop_cash_offers_captured = false %}
{% for transaction in transactions %}
{% if transaction.status == "success" %}
{% if transaction.kind == "sale" or transaction.kind == "capture" %}
{% if transaction.payment_details.credit_card_company %}
{% assign shopify_pay_captured = true %}
{% endif %}
{% if transaction.gateway == "shop_cash" or transaction.gateway == "shop_offer" %}
{% assign shop_cash_offers_captured = true %}
{% endif %}
{% assign transaction_size = transaction_size | plus: 1 %}
{% assign transaction_amount = transaction_amount | plus: transaction.amount %}
{% if transaction.amount_rounding != nil %}
{% assign net_transaction_amount_rounding = net_transaction_amount_rounding | plus: transaction.amount_rounding %}
{% endif %}
{% elsif transaction.kind == "refund" or transaction.kind == "change" %}
{% assign transaction_size = transaction_size | plus: 1 %}
{% assign transaction_amount = transaction_amount | minus: transaction.amount %}
{% assign has_refunds = true %}
{% if transaction.amount_rounding != nil %}
{% assign net_transaction_amount_rounding = net_transaction_amount_rounding | minus: transaction.amount_rounding %}
{% endif %}
{% elsif transaction.kind == "authorization" %}
{% assign authorized_amount = authorized_amount | plus: transaction.amount %}
{% endif %}
{% endif %}
{% endfor %}
{% # Add shop cash/offer transactions to totals if shopify pay is captured and shop cash/offer is not captured yet %}
{% if shopify_pay_captured == true and shop_cash_offers_captured == false %}
{% for transaction in transactions %}
{% if transaction.status == "success" %}
{% if transaction.kind == "authorization" and transaction.gateway == "shop_cash" or transaction.gateway == "shop_offer" %}
{% assign transaction_size = transaction_size | plus: 1 %}
{% assign transaction_amount = transaction_amount | plus: transaction.amount %}
{% if transaction.amount_rounding != nil %}
{% assign net_transaction_amount_rounding = net_transaction_amount_rounding | plus: transaction.amount_rounding %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}- 在收據中顯示現金進位的總調整金額與進位後金額。
- 找到
<table class="row subtotal-table subtotal-table--total">這行程式碼。 - 將現有的程式碼區塊替換為以下程式碼區塊,利用
net_transaction_amount_rounding與amount_rounding的值來計算進位後的金額。
- 找到
<table class="row subtotal-table subtotal-table--total">
{% if payment_terms and payment_terms.automatic_capture_at_fulfillment == false or b2b? %}
{% assign next_payment = payment_terms.next_payment %}
{% assign due_at_date = next_payment.due_at | date: "%b %d, %Y" %}
{% if net_transaction_amount_rounding != 0 %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p> <span>Total</span></p>
</td>
<td class="subtotal-line__value">
<strong>{{ total_price | money_with_currency }}</strong>
</td>
</tr>
{% if total_discounts > 0 %}
<tr class="subtotal-line">
<td></td>
<td class="subtotal-line__value total-discount">
You saved <span class="total-discount--amount">{{ total_discounts | money }}</span>
</td>
</tr>
{% endif %}
<tr><td colspan="2" class="subtotal-table__line"></td></tr>
<div class="subtotal-line__value-small">
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p> <span>Cash rounding</span> </p>
</td>
<td class="subtotal-line__value">
<strong>{% if net_transaction_amount_rounding < 0 %}-{% endif %} {{ net_transaction_amount_rounding | abs | money }}</strong>
</td>
</tr>
</div>
<tr><td colspan="2" class="subtotal-table__line"></td></tr>
{% endif %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p><span>Total paid today</span></p>
</td>
<td class="subtotal-line__value">
<strong>{{ transaction_amount | plus: net_transaction_amount_rounding | money_with_currency }}</strong>
</td>
</tr>
<div class="payment-terms">
{% assign next_amount_due = total_price %}
{% if next_payment %}
{% assign next_amount_due = next_payment.amount_due %}
{% endif %}
{% if payment_terms.type == 'receipt' %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p><span>Total due on receipt</span></p>
</td>
<td class="subtotal-line__value">
<strong>{{ next_amount_due | money_with_currency }}</strong>
</td>
</tr>
{% elsif payment_terms.type == 'fulfillment' %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p><span>Total due on fulfillment</span></p>
</td>
<td class="subtotal-line__value">
<strong>{{ next_amount_due | money_with_currency }}</strong>
</td>
</tr>
{% else %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p><span>Total due {{ due_at_date }}</span></p>
</td>
<td class="subtotal-line__value"><strong>{{ next_amount_due | money_with_currency }}</strong></td>
</tr>
{% endif %}
</div>
{% if total_discounts > 0 and net_transaction_amount_rounding == 0 %}
<tr class="subtotal-line">
<td></td>
<td class="subtotal-line__value total-discount">
You saved <span class="total-discount--amount">{{ total_discounts | money }}</span>
</td>
</tr>
{% endif %}
{% else %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p> <span>Total</span></p>
</td>
<td class="subtotal-line__value">
<strong>{{ total_price | money_with_currency }}</strong>
</td>
</tr>
{% if total_discounts > 0 %}
<tr class="subtotal-line">
<td></td>
<td class="subtotal-line__value total-discount">
You saved <span class="total-discount--amount">{{ total_discounts | money }}</span>
</td>
</tr>
{% endif %}
{% if net_transaction_amount_rounding != 0 %}
<tr><td colspan="2" class="subtotal-table__line"></td></tr>
<div class="subtotal-line__value-small">
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p><span>Cash rounding</span></p>
</td>
<td class="subtotal-line__value">
<strong>{% if net_transaction_amount_rounding < 0 %}-{% endif %} {{ net_transaction_amount_rounding | abs | money }}</strong>
</td>
</tr>
</div>
{% if financial_status == 'paid' %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p> <span>Paid</span> <br>
<small>{{ gateway | capitalize }}</small>
</p>
</td>
<td class="subtotal-line__value">
<strong>{{ transaction_amount | plus: net_transaction_amount_rounding | money_with_currency }}</strong>
</td>
</tr>
{% endif %}
{% endif %}
{% if transaction_amount != total_price and payment_terms == nil%}
{% if transaction_amount == 0 and authorized_amount > 0 and has_refunds == false %}
{% else %}
<div class="payment-terms">
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p><span>Total paid today</span></p>
</td>
<td class="subtotal-line__value">
<strong>{{ transaction_amount | plus: net_transaction_amount_rounding | money_with_currency }}</strong>
</td>
</tr>
</div>
{% endif %}
{% endif %}
{% endif %}
</table>
{% unless payment_terms %}
{% if transaction_size > 1 or transaction_amount < total_price %}
<table class="row subtotal-table">
<tr><td colspan="2" class="subtotal-table__line"></td></tr>
<tr><td colspan="2" class="subtotal-table__small-space"></td></tr>
{% for transaction in transactions %}
{% assign amount_rounding = 0 %}
{% if transaction.amount_rounding != 0 %}
{% assign amount_rounding = transaction.amount_rounding %}
{% endif %}
{% if transaction.status == "success" and transaction.kind == "capture" or transaction.kind == "sale" %}
{% if transaction.payment_details.gift_card_last_four_digits %}
{% capture transaction_name %}Gift card (ending with {{ transaction.payment_details.gift_card_last_four_digits }}){% endcapture %}
{% elsif transaction.payment_details.credit_card_company %}
{% capture transaction_name %}{{ transaction.payment_details.credit_card_company }} (ending in {{ transaction.payment_details.credit_card_last_four_digits }}){% endcapture %}
{% else %}
{% capture transaction_name %}{{ transaction.gateway_display_name }}{% endcapture %}
{% endif %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p> <span>{{transaction_name}}</span> </p>
</td>
<td class="subtotal-line__value">
<strong>{{ transaction.amount | plus: amount_rounding | money }}</strong>
</td>
</tr>
{% elsif shopify_pay_captured and shop_cash_offers_captured == false and transaction.kind == "authorization" and transaction.gateway == "shop_cash" or transaction.gateway == "shop_offer" %}
{% capture transaction_name %}{{ transaction.gateway_display_name }}{% endcapture %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p> <span>{{transaction_name}}</span> </p>
</td>
<td class="subtotal-line__value">
<strong>{{ transaction.amount | plus: amount_rounding | money }}</strong>
</td>
</tr>
{% endif %}
{% if transaction.kind == 'refund' %}
{% if transaction.payment_details.gift_card_last_four_digits %}
{% assign refund_method_title = transaction.payment_details.type %}
{% elsif transaction.payment_details.credit_card_company %}
{% assign refund_method_title = transaction.payment_details.credit_card_company %}
{% else %}
{% assign refund_method_title = transaction.gateway_display_name %}
{% endif %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p> <span>Refund</span> <br>
<small>{{ refund_method_title | replace: '_', ' ' | capitalize }}</small>
</p>
</td>
<td class="subtotal-line__value">
<strong>- {{ transaction.amount | plus: amount_rounding | money }}</strong>
</td>
</tr>
{% endif %}
{% endfor %}
</table>
{% endif %}
{% if total_outstanding > 0 %}
<table class="row subtotal-table">
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p><span>Balance due</span></p>
</td>
<td class="subtotal-line__value">
<strong>{{ total_outstanding | money }}</strong>
</td>
</tr>
</table>
{% endif %}
{% endunless %}