diff --git a/.changeset/four-eggs-give.md b/.changeset/four-eggs-give.md new file mode 100644 index 0000000000..c21d03a8ea --- /dev/null +++ b/.changeset/four-eggs-give.md @@ -0,0 +1,5 @@ +--- +"medusa-plugin-sendgrid": minor +--- + +fix(medusa-plugin-sendgrid): Inject GiftCardService to eliminate undefined error diff --git a/docs/content/add-plugins/sendgrid.mdx b/docs/content/add-plugins/sendgrid.mdx index 0951af214f..5f5b23a956 100644 --- a/docs/content/add-plugins/sendgrid.mdx +++ b/docs/content/add-plugins/sendgrid.mdx @@ -3608,8 +3608,9 @@ You don’t have to create a template for every type in the reference. You can s ```json noReport Object { "code": Any, - "value": 4, + "value": 100, "balance": 100, + "display_value": "100.00", "region": Object { "automatic_taxes": true, "created_at": Any, @@ -3937,7 +3938,7 @@ const plugins = [ order_placed_template: process.env.SENDGRID_ORDER_PLACED_ID, localization: { "de-DE": { // locale key - order_placed_template: + order_placed_template: process.env.SENDGRID_ORDER_PLACED_ID_LOCALIZED, }, }, diff --git a/packages/medusa-plugin-sendgrid/src/services/sendgrid.js b/packages/medusa-plugin-sendgrid/src/services/sendgrid.js index f50b1e700e..a7fc8663d5 100644 --- a/packages/medusa-plugin-sendgrid/src/services/sendgrid.js +++ b/packages/medusa-plugin-sendgrid/src/services/sendgrid.js @@ -31,6 +31,7 @@ class SendGridService extends NotificationService { fulfillmentProviderService, totalsService, productVariantService, + giftCardService, }, options ) { @@ -49,6 +50,7 @@ class SendGridService extends NotificationService { this.fulfillmentService_ = fulfillmentService this.totalsService_ = totalsService this.productVariantService_ = productVariantService + this.giftCardService_ = giftCardService SendGrid.setApiKey(options.api_key) } @@ -579,20 +581,16 @@ class SendGridService extends NotificationService { const giftCard = await this.giftCardService_.retrieve(id, { relations: ["region", "order"], }) - - if (!giftCard.order) { - return - } - const taxRate = giftCard.region.tax_rate / 100 - - const locale = await this.extractLocale(order) + const locale = giftCard.order ? await this.extractLocale(order) : null; + const email = giftCard.order ? giftCard.order.email : giftCard.metadata.email; return { ...giftCard, locale, - email: giftCard.order.email, - display_value: giftCard.value * (1 + taxRate), + email, + display_value: `${this.humanPrice_((giftCard.value * 1+ taxRate), giftCard.region.currency_code)} ${giftCard.region.currency_code}`, + message: giftCard.metadata?.message || giftCard.metadata?.personal_message } }