This website requires JavaScript.
2837731815
fixed issue in order cancellation
main
Gerhard Scheikl
2026-05-31 11:12:20 +02:00
15c62627be
switch to newer nodejs version
Gerhard Scheikl
2026-05-31 10:54:00 +02:00
01b4734477
security hardening
Gerhard Scheikl
2026-05-31 09:35:31 +02:00
d7d437a871
removed duplicate MCP server entry
Gerhard Scheikl
2026-05-30 22:27:02 +02:00
c5b6bfc20d
refactor(invoice): drop dead paid/paidStamp; classify VOIDED; warn on unknown payment status
Gerhard Scheikl
2026-05-15 18:12:06 +02:00
91c1a74c1b
fix(invoice): partial refund stays "Bezahlt" + use "Endbetrag" final-row label
Gerhard Scheikl
2026-05-15 16:56:45 +02:00
40ee895719
feat(invoice): show refund + outstanding-amount rows on the PDF
Gerhard Scheikl
2026-05-15 16:45:09 +02:00
9c732618e1
fix(invoice): suppress GiroCode + payment terms for refunded (and paid) orders
Gerhard Scheikl
2026-05-15 16:33:34 +02:00
fe54f6e64a
feat(invoice): make the phone number on the PDF a clickable tel: link
Gerhard Scheikl
2026-05-15 16:20:55 +02:00
d5bdc41e0a
start german thankYouLine with a capital letter
Gerhard Scheikl
2026-05-15 16:18:10 +02:00
09769153be
fix(invoice): drop salutation from PDF (it's an invoice, not a letter)
Gerhard Scheikl
2026-05-15 16:16:10 +02:00
c24d567ae4
fix(invoice): localize Shopify payment-gateway names on the PDF
Gerhard Scheikl
2026-05-15 16:08:19 +02:00
2a4a7fd983
fix(invoice): unify customer-facing remittance reference with the printed invoice number
Gerhard Scheikl
2026-05-15 15:51:10 +02:00
a2b3c14022
fix(invoice): detect pickup via missing shippingAddress (real signal for built-in 'Shop location' rate)
Gerhard Scheikl
2026-05-15 15:24:43 +02:00
720f508ec3
chore: gitignore .react-router/ generated types
Gerhard Scheikl
2026-05-15 15:13:19 +02:00
8a40bcbee6
fix(invoice): use shippingLine.deliveryCategory as primary pickup signal
Gerhard Scheikl
2026-05-15 15:12:59 +02:00
4e522f41df
chore: gitignore log.txt (debug artifact)
Gerhard Scheikl
2026-05-15 15:04:42 +02:00
f16ef4e103
fix(invoice): drop fulfillmentOrders query (scope-denied), keep shippingLine pickup heuristic
Gerhard Scheikl
2026-05-15 15:04:16 +02:00
d742e75419
fix(invoice): detect pickup via DeliveryMethodType and show 'Abholort: <location>' meta row
Gerhard Scheikl
2026-05-15 14:46:55 +02:00
415a9dd462
feat(invoice): per-line + cart discounts, fulfillment delivery date, pickup label, header layout refresh
Gerhard Scheikl
2026-05-15 13:59:08 +02:00
8780b4a68a
feat(invoice): add Shopify order #, shipping address/method/cost and tracking
Gerhard Scheikl
2026-05-15 13:41:53 +02:00
55a0dd03f2
feat(invoice): informal German tone + show payment method and status
Gerhard Scheikl
2026-05-15 11:26:26 +02:00
dde53319e5
fix(observability,webhooks,i18n): timestamped logs, dedupe webhook retries, default non-de locales to English
Gerhard Scheikl
2026-05-15 11:02:17 +02:00
274ccfbc01
attempt to fix mail sending
Gerhard Scheikl
2026-05-09 22:26:04 +02:00
3a77bed716
fix security issues
Gerhard Scheikl
2026-05-09 22:19:25 +02:00
c45648832a
fix(customer-account): retarget to order-status.payment-details.render-after
Gerhard Scheikl
2026-05-09 21:52:47 +02:00
ca769c49a4
feat(customer-account): payment extension for order page (shares /api/public/payment-info; dual auth)
Gerhard Scheikl
2026-05-09 21:45:27 +02:00
5ac2e09f8c
cleanup(thank-you): remove debug, render nothing when no payment data
Gerhard Scheikl
2026-05-09 21:38:16 +02:00
53ce591f55
image test
Gerhard Scheikl
2026-05-09 21:26:32 +02:00
f6c5d108ad
fix(thank-you): force https for QR PNG URL behind TLS-terminating proxy
Gerhard Scheikl
2026-05-09 21:19:01 +02:00
3fb8600402
fix(thank-you): serve GiroCode as signed PNG URL instead of data URL
Gerhard Scheikl
2026-05-09 21:14:47 +02:00
f59c981ff4
attempted fix for girocode in thank you page
Gerhard Scheikl
2026-05-09 21:11:11 +02:00
cc7cedfedb
fix(payment-info): rewrite OrderIdentity GID to Order GID; surface error detail; brief retry
Gerhard Scheikl
2026-05-09 21:07:39 +02:00
8bc86ef985
payment info updates
Gerhard Scheikl
2026-05-09 21:05:09 +02:00
35dea965f6
feat(thank-you): make extension APP_URL shop-aware (dev shop -> dev backend)
Gerhard Scheikl
2026-05-09 20:52:10 +02:00
884070cddc
feat(thank-you): payment instructions extension (GiroCode + bank details) for manual payment orders
Gerhard Scheikl
2026-05-09 20:48:08 +02:00
93aec2f368
refactor(automations): detect manual payment via OrderTransaction.manualPaymentGateway
Gerhard Scheikl
2026-05-09 20:31:31 +02:00
0800d1160b
feat(automations): auto-email invoice on wire-transfer placed and on fulfillment
Gerhard Scheikl
2026-05-09 20:21:41 +02:00
a99dbc51c5
attempted fix for flow actions
Gerhard Scheikl
2026-05-09 20:09:27 +02:00
5061dbb3d5
remove unwanted characters in file name
Gerhard Scheikl
2026-05-09 19:48:18 +02:00
6ded8ec1b9
fix(offers): add read_draft_orders scope so draftOrders query works
Gerhard Scheikl
2026-05-09 19:41:12 +02:00
6224597497
feat(offers): generate Angebot/Offer PDFs for draft orders
Gerhard Scheikl
2026-05-09 19:26:33 +02:00
1ec4faaac5
security: restrict installs to ALLOWED_SHOP and remove generic landing form
Gerhard Scheikl
2026-05-09 18:01:14 +02:00
ecd2b00985
feat(pdf): make footer email and website clickable
Gerhard Scheikl
2026-05-09 17:45:56 +02:00
8cceb8af66
fix: use invoice.number for girocode reference
Gerhard Scheikl
2026-05-09 17:41:42 +02:00
9bfce39db2
feat(girocode): use full company name + add Recipient/Bank/Amount/Reference labels
Gerhard Scheikl
2026-05-09 17:41:22 +02:00
85a56cac59
fix(settings): preserve stored logo + persist editor changes on save
Gerhard Scheikl
2026-05-09 17:17:55 +02:00
d454843856
fix(email): use invoice language so email matches PDF attachment
Gerhard Scheikl
2026-05-09 17:14:20 +02:00
b5d41046a0
feat(invoices): make order number link to admin order page
Gerhard Scheikl
2026-05-09 17:11:13 +02:00
cc159f9b6b
feat(ui): add Send/Re-send button on invoices page and order block
Gerhard Scheikl
2026-05-09 17:09:33 +02:00
227c00b3a0
fix(settings): place save banner next to Save button
Gerhard Scheikl
2026-05-09 16:21:55 +02:00
f97d6dc9d2
feat(email): text colour menu in WYSIWYG (LinumIQ blue + presets)
Gerhard Scheikl
2026-05-09 16:11:49 +02:00
26e4af97bc
fix(email): preserve <img style> in WYSIWYG so logo stays scaled
Gerhard Scheikl
2026-05-09 08:22:07 +02:00
67204d79ac
feat(email): render shop logo inside WYSIWYG editor (cid swap)
Gerhard Scheikl
2026-05-09 08:05:00 +02:00
573dfbfd50
feat(email): default template with inline logo + shop contact vars
Gerhard Scheikl
2026-05-08 23:12:23 +02:00
04933fcac6
feat(email): WYSIWYG template editor with variable substitution
Gerhard Scheikl
2026-05-08 23:06:40 +02:00
537dfd34cb
fix(pdf): hide payment terms text on paid invoices
Gerhard Scheikl
2026-05-08 22:52:18 +02:00
64ac54d3c3
fix(ui): align section headings (drop padding=none + redundant inner s-box)
Gerhard Scheikl
2026-05-08 22:47:10 +02:00
093db30b6c
feat(email): always BCC shop@linumiq.com on outgoing invoice mails
Gerhard Scheikl
2026-05-08 22:44:21 +02:00
02a93b502b
fix(health): add /healthz route and tighten docker healthcheck
Gerhard Scheikl
2026-05-08 22:42:09 +02:00
64dbdcbc6f
set context for linumiq.com deployment
Gerhard Scheikl
2026-05-08 22:07:38 +02:00
bbb2cdc94a
fixed dockerfile location in final folder
Gerhard Scheikl
2026-05-08 22:02:01 +02:00
e865bc5985
deploy: add shopify.app.prod.toml (linumiq-invoice prod app, client_id c5cb73...)
Gerhard Scheikl
2026-05-08 21:50:33 +02:00
9557a3b335
deploy: split into dev/prod with separate Shopify configs and containers
Gerhard Scheikl
2026-05-08 21:41:22 +02:00
bdec06bc67
chore: ignore locally generated PDF artifacts in data/
Gerhard Scheikl
2026-05-08 17:22:54 +02:00
edd72f2776
feat(invoice): add Send invoice email action
Gerhard Scheikl
2026-05-08 15:27:16 +02:00
a67fc0767e
fix(api): wrap invoice API responses with cors() helper
Gerhard Scheikl
2026-05-08 15:12:52 +02:00
58cfc30cd7
fix(build): extract STORED_LOGO_SENTINEL to non-server module
Gerhard Scheikl
2026-05-08 14:41:48 +02:00
23246fe31f
deploy: point Caddy snippet at container on caddy_net
Gerhard Scheikl
2026-05-08 14:36:44 +02:00
383e9c7944
updated docker-compose file for linumiq.com server
Gerhard Scheikl
2026-05-08 14:21:03 +02:00
a275197ce4
make app production-ready
Gerhard Scheikl
2026-05-08 11:01:08 +02:00
770c6fd16a
many updates :-)
Gerhard Scheikl
2026-05-08 10:40:19 +02:00
5b2aa5d62b
first version
Gerhard Scheikl
2026-04-28 21:56:11 +02:00
0f75dbaccb
initial version (template only)
Gerhard Scheikl
2026-04-28 13:34:35 +02:00