🌐 Make discount value a parameter (#1557)

This commit is contained in:
Luke Vella 2025-02-12 11:42:39 +07:00 committed by GitHub
parent 8ff805829f
commit 17d386d905
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 16 additions and 6 deletions

View file

@ -266,6 +266,8 @@ export async function POST(request: NextRequest) {
}, },
props: { props: {
name: session.customer_details?.name ?? undefined, name: session.customer_details?.name ?? undefined,
discount: 20,
couponCode: "GETPRO1Y20",
recoveryUrl, recoveryUrl,
}, },
}, },

View file

@ -60,7 +60,7 @@
"abandoned_checkout_offer": "To help you get started, you can get <b>{{discount}}% off</b> your first year. Just use the code below when you check out:", "abandoned_checkout_offer": "To help you get started, you can get <b>{{discount}}% off</b> your first year. Just use the code below when you check out:",
"abandoned_checkout_button": "Upgrade to Rallly Pro", "abandoned_checkout_button": "Upgrade to Rallly Pro",
"abandoned_checkout_support": "If you have any questions about Rallly Pro or need help with anything at all, just reply to this email. I'm here to help!", "abandoned_checkout_support": "If you have any questions about Rallly Pro or need help with anything at all, just reply to this email. I'm here to help!",
"abandoned_checkout_preview": "Exclusive offer: Get 20% off your first year of Rallly Pro!", "abandoned_checkout_preview": "Exclusive offer: Get {{discount}}% off your first year of Rallly Pro!",
"abandoned_checkout_subject": "Get 20% off your first year of Rallly Pro", "abandoned_checkout_subject": "Get {{discount}}% off your first year of Rallly Pro",
"abandoned_checkout_signoff": "Best regards," "abandoned_checkout_signoff": "Best regards,"
} }

View file

@ -5,6 +5,8 @@ export default function AbandonedCheckoutEmailPreview() {
return ( return (
<AbandonedCheckoutEmail <AbandonedCheckoutEmail
ctx={previewEmailContext} ctx={previewEmailContext}
discount={20}
couponCode="GETPRO1Y20"
recoveryUrl="https://example.com" recoveryUrl="https://example.com"
name="John Doe" name="John Doe"
/> />

View file

@ -7,12 +7,16 @@ import type { EmailContext } from "../types";
interface AbandonedCheckoutEmailProps { interface AbandonedCheckoutEmailProps {
recoveryUrl: string; recoveryUrl: string;
discount: number;
couponCode: string;
name?: string; name?: string;
ctx: EmailContext; ctx: EmailContext;
} }
export const AbandonedCheckoutEmail = ({ export const AbandonedCheckoutEmail = ({
recoveryUrl, recoveryUrl,
discount,
couponCode,
name, name,
ctx, ctx,
}: AbandonedCheckoutEmailProps) => { }: AbandonedCheckoutEmailProps) => {
@ -22,7 +26,8 @@ export const AbandonedCheckoutEmail = ({
poweredBy={false} poweredBy={false}
preview={ctx.t("abandoned_checkout_preview", { preview={ctx.t("abandoned_checkout_preview", {
defaultValue: defaultValue:
"Exclusive offer: Get 20% off your first year of Rallly Pro!", "Exclusive offer: Get {{discount}}% off your first year of Rallly Pro!",
discount,
ns: "emails", ns: "emails",
})} })}
> >
@ -68,7 +73,7 @@ export const AbandonedCheckoutEmail = ({
defaults="To help you get started, I'd like to offer you <b>{{discount}}% off your first year</b> with Rallly Pro. Simply use this code during checkout:" defaults="To help you get started, I'd like to offer you <b>{{discount}}% off your first year</b> with Rallly Pro. Simply use this code during checkout:"
ns="emails" ns="emails"
values={{ values={{
discount: 20, discount,
}} }}
components={{ components={{
b: <b />, b: <b />,
@ -84,7 +89,7 @@ export const AbandonedCheckoutEmail = ({
fontWeight: "bold", fontWeight: "bold",
}} }}
> >
GETPRO1Y20 {couponCode}
</Text> </Text>
</Card> </Card>
<Button href={recoveryUrl} id="recoveryUrl"> <Button href={recoveryUrl} id="recoveryUrl">
@ -131,7 +136,8 @@ AbandonedCheckoutEmail.getSubject = (
return ( return (
"🎉 " + "🎉 " +
ctx.t("abandoned_checkout_subject", { ctx.t("abandoned_checkout_subject", {
defaultValue: "Get 20% off your first year of Rallly Pro", defaultValue: "Get {{discount}}% off your first year of Rallly Pro",
discount: props.discount,
ns: "emails", ns: "emails",
}) })
); );