refactor(automations): detect manual payment via OrderTransaction.manualPaymentGateway
- Drop wireTransferGatewayNames from ShopSettings (new migration). - Replace string-matching with a GraphQL query against Order.transactions[].manualPaymentGateway, the first-class flag Shopify exposes for any merchant-defined manual payment method. - Both webhook handlers now fetch the order on the fly to classify it, removing the configurable gateway-names field from settings.
This commit is contained in:
@@ -177,7 +177,6 @@ export const action = async ({ request }: ActionFunctionArgs) => {
|
||||
emailBodyHtmlEn: str("emailBodyHtmlEn"),
|
||||
autoEmailOnWireTransferPlaced: bool("autoEmailOnWireTransferPlaced"),
|
||||
autoEmailOnFulfilledNonWireTransfer: bool("autoEmailOnFulfilledNonWireTransfer"),
|
||||
wireTransferGatewayNames: str("wireTransferGatewayNames"),
|
||||
};
|
||||
|
||||
await db.shopSettings.upsert({
|
||||
@@ -422,8 +421,10 @@ export default function SettingsRoute() {
|
||||
Flow required (Flow is gated to Plus stores for custom apps).
|
||||
When an automation fires, the invoice is generated (if it doesn't
|
||||
already exist) and emailed to the customer using the SMTP and
|
||||
email-template settings above. A copy is recorded in the email
|
||||
log; failures are logged server-side.
|
||||
email-template settings above. "Wire-transfer" is detected via
|
||||
Shopify's <code>OrderTransaction.manualPaymentGateway</code> flag,
|
||||
so any merchant-defined manual payment method (Überweisung, Cash
|
||||
on Delivery, Money Order, …) qualifies.
|
||||
</s-paragraph>
|
||||
<Toggle
|
||||
label='Auto-email the invoice when a wire-transfer order is placed (so the customer gets the bank details + GiroCode immediately).'
|
||||
@@ -435,12 +436,6 @@ export default function SettingsRoute() {
|
||||
name="autoEmailOnFulfilledNonWireTransfer"
|
||||
checked={settings.autoEmailOnFulfilledNonWireTransfer}
|
||||
/>
|
||||
<Field
|
||||
label="Wire-transfer payment gateway names (comma-separated, case-insensitive substring match)"
|
||||
name="wireTransferGatewayNames"
|
||||
defaultValue={settings.wireTransferGatewayNames}
|
||||
helpText='Used to classify which orders count as "wire transfer". Leave empty to use the default: manual, Überweisung, Wire Transfer, Bank Transfer, Vorkasse, Bank Deposit.'
|
||||
/>
|
||||
</s-stack>
|
||||
</s-section>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user