From edd72f2776410c66d5ac762caf70e878e8f2bf12 Mon Sep 17 00:00:00 2001 From: Gerhard Scheikl Date: Fri, 8 May 2026 15:27:16 +0200 Subject: [PATCH] feat(invoice): add Send invoice email action Adds a Send button to the order action extension and a corresponding "send" op to /api/orders/:orderId/invoice. Generates the invoice on demand if missing, then sends via the configured SMTP. --- app/routes/api.orders.$orderId.invoice.tsx | 45 ++++++++++++++++++ data/regen-RE-1001.pdf | Bin 0 -> 25578 bytes data/regen-RE-1002.pdf | Bin 0 -> 25638 bytes data/sample-rechnung.pdf | Bin 26060 -> 26382 bytes data/sample-storno.pdf | Bin 21533 -> 21526 bytes .../src/ActionExtension.tsx | 5 +- shopify.app.toml | 1 - 7 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 data/regen-RE-1001.pdf create mode 100644 data/regen-RE-1002.pdf diff --git a/app/routes/api.orders.$orderId.invoice.tsx b/app/routes/api.orders.$orderId.invoice.tsx index 1abe9c1..cc3f53c 100644 --- a/app/routes/api.orders.$orderId.invoice.tsx +++ b/app/routes/api.orders.$orderId.invoice.tsx @@ -3,6 +3,7 @@ import { authenticate } from "../shopify.server"; import db from "../db.server"; import { generateInvoice } from "../services/invoice/generateInvoice.server"; import { cancelAndReissue } from "../services/invoice/cancelAndReissue.server"; +import { sendInvoiceEmail } from "../services/invoice/email.server"; /** * GET /api/orders/:orderId/invoice → returns latest invoice metadata + history @@ -60,6 +61,50 @@ export const action = async ({ request, params }: ActionFunctionArgs) => { return cors(Response.json({ ok: true, op, ...result })); } + if (op === "send") { + const orderGid = orderId.startsWith("gid://") + ? orderId + : `gid://shopify/Order/${orderId}`; + let invoice = await db.invoice.findFirst({ + where: { + shopDomain: session.shop, + orderId: orderGid, + kind: "invoice", + cancelledAt: null, + }, + orderBy: [{ version: "desc" }, { createdAt: "desc" }], + }); + if (!invoice) { + const generated = await generateInvoice({ + shopDomain: session.shop, + admin, + orderId, + }); + invoice = await db.invoice.findUnique({ where: { id: generated.invoiceId } }); + } + if (!invoice) throw new Error("Failed to materialise an invoice for this order."); + const sendResult = await sendInvoiceEmail({ + shopDomain: session.shop, + invoiceId: invoice.id, + }); + if (!sendResult.ok) { + return cors( + Response.json( + { ok: false, op: "send", error: sendResult.errorMessage ?? "Email send failed." }, + { status: 422 }, + ), + ); + } + return cors( + Response.json({ + ok: true, + op: "send", + invoiceNumber: invoice.invoiceNumber, + toAddress: sendResult.toAddress, + }), + ); + } + const result = await generateInvoice({ shopDomain: session.shop, admin, diff --git a/data/regen-RE-1001.pdf b/data/regen-RE-1001.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7892605161a398d088ca948136289174dd0e8618 GIT binary patch literal 25578 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 literal 0 HcmV?d00001 diff --git a/data/regen-RE-1002.pdf b/data/regen-RE-1002.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d2a0219c3ebd54556ebfe71c39c3fb5d3872b0f9 GIT binary patch literal 25638 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 Dt0JK` literal 0 HcmV?d00001 diff --git a/data/sample-rechnung.pdf b/data/sample-rechnung.pdf index 31553f004bd865987b9c22c3625430c570c6ebfc..750ec802126a7f86e6e873cbcb02f6e638bfff59 100644 GIT binary patch delta 3633 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 D_rCTd delta 3332 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 OH8eCd3MC~)PeuwwdWN9@ diff --git a/data/sample-storno.pdf b/data/sample-storno.pdf index f0c1cfa05245142b8215356591d48590dfe9f477..514d4e34482c706f2fefbd7b9a19f9962b6537ce 100644 GIT binary patch delta 3109 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 delta 3131 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 Vba--QW(qPeIW;#5B_%~qMhenW^Va|X diff --git a/extensions/invoice-order-action/src/ActionExtension.tsx b/extensions/invoice-order-action/src/ActionExtension.tsx index f74e192..c62754a 100644 --- a/extensions/invoice-order-action/src/ActionExtension.tsx +++ b/extensions/invoice-order-action/src/ActionExtension.tsx @@ -13,7 +13,7 @@ function Extension() { const orderGid: string | undefined = data?.selected?.[0]?.id; const orderId = orderGid ? orderGid.split("/").pop() : undefined; - async function trigger(action: "generate" | "cancel_reissue") { + async function trigger(action: "generate" | "cancel_reissue" | "send") { if (!orderId) { setError("No order selected"); return; @@ -47,6 +47,9 @@ function Extension() { trigger("generate")} disabled={busy}> Generate / regenerate + trigger("send")} disabled={busy}> + Send invoice email + trigger("cancel_reissue")} disabled={busy}> Cancel & reissue diff --git a/shopify.app.toml b/shopify.app.toml index 0dbcaf0..12c18d0 100644 --- a/shopify.app.toml +++ b/shopify.app.toml @@ -39,5 +39,4 @@ redirect_urls = [ ] [build] -include_config_on_deploy = true automatically_update_urls_on_dev = true