diff --git a/docs/content/add-plugins/sendgrid.md b/docs/content/add-plugins/sendgrid.md deleted file mode 100644 index 2a08a165c3..0000000000 --- a/docs/content/add-plugins/sendgrid.md +++ /dev/null @@ -1,9 +0,0 @@ -# SendGrid (Documentation coming soon) - -[View plugin here](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-sendgrid) - -
- -
diff --git a/docs/content/add-plugins/sendgrid.mdx b/docs/content/add-plugins/sendgrid.mdx new file mode 100644 index 0000000000..f9cf0a8216 --- /dev/null +++ b/docs/content/add-plugins/sendgrid.mdx @@ -0,0 +1,3967 @@ +# SendGrid + +In this document, you’ll learn about the [SendGrid plugin](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-sendgrid), what it does, and how to use it. + +
+ +
+ +## Overview + +[SendGrid](https://sendgrid.com) is an email and notification service that can be used to send emails to your customers and users. + +By integrating SendGrid with Medusa, you’ll be sending email notifications to your users in the following cases: + +1. Order-related events include new orders, shipments created, and orders canceled. +2. Swaps and Returns related events including new return requests of orders and items returned successfully. +3. When Gift Cards in an order are created. +4. User-related events including reset passwords. +5. Restock Notifications for when product stocks are low. + +## Prerequisites + +Before going further with this guide make sure you have a Medusa server set up. You can follow our [Quickstart guide](../quickstart/quick-start.md). + +You also must have [Redis configured on your Medusa server](../tutorial/0-set-up-your-development-environment.md). Sending emails is done through Subscribers, which uses Redis as the event queue. If you don’t set up Redis, the plugin will not send emails. + +## Create a SendGrid Account + +If you don’t have a SendGrid account, make sure to [create one](https://signup.sendgrid.com) first. You also need to set up a [single sender](https://docs.sendgrid.com/ui/sending-email/sender-verification) first in SendGrid before you can start sending emails. + +### API Key + +For the integration to work, you need to create an API key in your SendGrid account. + +You can do that by choosing from the sidebar of your SendGrid dashboard Settings > API Keys. Then, click on Create API Key. + +:::note + +If you choose to give the API Key restricted access, make sure to at least give it the “Mail Send” access. + +::: + +Once you create the API key, the key will be shown for one time only. So, make sure to copy and save it somewhere for later usage. + +### Email Templates + +The SendGrid plugin uses SendGrid templates to send emails. If you don’t provide the plugin with the templates necessary then emails will not be sent. + +To create an email template, go to Email API > Dynamic Templates. Then, click “Create a Dynamic Template”. You’ll then be able to see the Template ID which you’ll need for your plugin setup. + +When you create the dynamic templates you’ll be able to use variables sent from Medusa [using Handlebars](https://docs.sendgrid.com/for-developers/sending-email/using-handlebars). + +For a full list of templates and their variables please check out the [Template Reference](#template-reference). + +:::tip + +Medusa supports localization so you can also create multiple templates for multiple languages. + +::: + +## Template Reference + +This section covers the template types supported by the plugin and what variables you can expect in your dynamic template. You can use the variables to add details like order total or customer name. + +:::note + +You don’t have to create a template for every type in the reference. You can simply create templates for the type of emails you want to send using Medusa and SendGrid, + +::: + +### Order Placed + +**Key in plugin options:** `order.placed` + +**Description:** Template to be sent to the customer when they place a new order. + +
+ Example Data + + ```jsx + { + "beforeInsert": [Function], + "billing_address": null, + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "claims": Array [], + "created_at": Any, + "currency_code": "usd", + "customer": Object { + "billing_address_id": null, + "created_at": Any, + "deleted_at": null, + "email": "test@testson.com", + "first_name": null, + "has_account": false, + "id": Any, + "last_name": null, + "metadata": null, + "phone": null, + "updated_at": Any, + }, + "customer_id": Any, + "date": Any, + "discount_total": "0.00 USD", + "discounts": Array [], + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "fulfilled", + "fulfillments": Array [], + "gift_card_total": "0.00 USD", + "gift_card_transactions": Array [], + "gift_cards": Array [], + "has_discounts": 0, + "has_gift_cards": 0, + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "discounted_price": "12.00 USD", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": "test-item", + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "price": "12.00 USD", + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Intelligent Plastic Chips", + "totals": Object { + "discount_total": 0, + "gift_card_total": 0, + "original_tax_total": 400, + "original_total": 2400, + "quantity": 2, + "subtotal": 2000, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "tax_total": 400, + "total": 2400, + "unit_price": 1000, + }, + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "locale": null, + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "payments": Array [], + "refunded_total": 0, + "refunds": Array [], + "region": Object { + "automatic_taxes": true, + "created_at": Any, + "currency_code": "usd", + "deleted_at": null, + "fulfillment_providers": Array [], + "gift_cards_taxable": true, + "id": "test-region", + "metadata": null, + "name": "Test region", + "payment_providers": Array [ + PaymentProvider { + "id": "test-pay", + "is_installed": true, + }, + ], + "tax_code": null, + "tax_provider_id": null, + "tax_rate": 12.5, + "updated_at": Any, + }, + "region_id": "test-region", + "returns": Array [], + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "shipping_methods": Array [], + "shipping_total": "0.00 USD", + "status": "pending", + "subtotal": "24.00 USD", + "subtotal_ex_tax": "20.00 USD", + "swaps": Array [], + "tax_rate": null, + "tax_total": "4.00 USD", + "total": "24.00 USD", + "updated_at": Any, + } + ``` +
+ +### Order Cancelled + +**Key in plugin options:** `order_canceled_template` + +**Description:** Template to be sent to a customer when their order is canceled. + +
+ Example Data + + ```jsx + { + "beforeInsert": [Function], + "billing_address": null, + "billing_address_id": null, + "canceled_at": Any, + "cart_id": null, + "claims": Array [], + "created_at": Any, + "currency_code": "usd", + "customer": Object { + "billing_address_id": null, + "created_at": Any, + "deleted_at": null, + "email": "test@testson.com", + "first_name": null, + "has_account": false, + "id": Any, + "last_name": null, + "metadata": null, + "phone": null, + "updated_at": Any, + }, + "customer_id": Any, + "date": Any, + "discount_total": "0.00 USD", + "discounts": Array [], + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "canceled", + "fulfillments": Array [], + "gift_card_total": "0.00 USD", + "gift_card_transactions": Array [], + "gift_cards": Array [], + "has_discounts": 0, + "has_gift_cards": 0, + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": null, + "has_shipping": null, + "id": "test-item", + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "price": "10.00 USD", + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": null, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 12, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "locale": null, + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "canceled", + "payments": Array [], + "refunded_total": 0, + "refunds": Array [], + "region": Object { + "automatic_taxes": true, + "created_at": Any, + "currency_code": "usd", + "deleted_at": null, + "fulfillment_providers": Array [], + "gift_cards_taxable": true, + "id": "test-region", + "metadata": null, + "name": "Test region", + "payment_providers": Array [ + PaymentProvider { + "id": "test-pay", + "is_installed": true, + }, + ], + "tax_code": null, + "tax_provider_id": null, + "tax_rate": 12.5, + "updated_at": Any, + }, + "region_id": "test-region", + "returns": Array [], + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "shipping_methods": Array [ + Object { + "cart_id": null, + "claim_order_id": null, + "data": Object {}, + "id": Any, + "order_id": Any, + "price": 0, + "return_id": null, + "shipping_option": Object { + "admin_only": false, + "amount": 500, + "created_at": Any, + "data": Object {}, + "deleted_at": null, + "id": Any, + "is_return": false, + "metadata": null, + "name": "free", + "price_type": "flat_rate", + "profile_id": Any, + "provider_id": "test-ful", + "region_id": "test-region", + "updated_at": Any, + }, + "shipping_option_id": Any, + "swap_id": null, + "tax_lines": Array [], + }, + ], + "shipping_total": "0.00 USD", + "status": "canceled", + "subtotal": "20.00 USD", + "swaps": Array [], + "tax_rate": null, + "tax_total": "4.00 USD", + "total": "24.00 USD", + "updated_at": Any, + } + ``` +
+ +### Order Shipment Created + +**Key in plugin options:** `order_shipped_template` + +**Description:** Template to be sent to the customer when a shipment of their order has been created. + +
+ Example Data + + ```jsx + { + "date": Any, + "email": "test@testson.com", + "fulfillment": Object { + "canceled_at": null, + "claim_order_id": null, + "created_at": Any, + "data": Object {}, + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "fulfillment_id": Any, + "item_id": "test-item", + "quantity": 2, + }, + ], + "metadata": Object {}, + "no_notification": null, + "order_id": Any, + "provider_id": "test-ful", + "shipped_at": Any, + "swap_id": null, + "tracking_links": Array [], + "tracking_numbers": Array [], + "updated_at": Any, + }, + "locale": null, + "order": Object { + "beforeInsert": [Function], + "billing_address": null, + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "claims": Array [], + "created_at": Any, + "currency_code": "usd", + "customer": Object { + "billing_address_id": null, + "created_at": Any, + "deleted_at": null, + "email": "test@testson.com", + "first_name": null, + "has_account": false, + "id": Any, + "last_name": null, + "metadata": null, + "phone": null, + "updated_at": Any, + }, + "customer_id": Any, + "discount_total": 0, + "discounts": Array [], + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "shipped", + "fulfillments": Array [ + Object { + "canceled_at": null, + "claim_order_id": null, + "created_at": Any, + "data": Object {}, + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "fulfillment_id": Any, + "item_id": "test-item", + "quantity": 2, + }, + ], + "metadata": Object {}, + "no_notification": null, + "order_id": Any, + "provider_id": "test-ful", + "shipped_at": Any, + "swap_id": null, + "tracking_numbers": Array [], + "updated_at": Any, + }, + ], + "gift_card_total": 0, + "gift_card_transactions": Array [], + "gift_cards": Array [], + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": "test-item", + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "payments": Array [], + "refundable_amount": 0, + "refunded_total": 0, + "refunds": Array [], + "region": Object { + "automatic_taxes": true, + "created_at": Any, + "currency_code": "usd", + "deleted_at": null, + "fulfillment_providers": Array [], + "gift_cards_taxable": true, + "id": "test-region", + "metadata": null, + "name": "Test region", + "payment_providers": Array [ + PaymentProvider { + "id": "test-pay", + "is_installed": true, + }, + ], + "tax_code": null, + "tax_provider_id": null, + "tax_rate": 12.5, + "updated_at": Any, + }, + "region_id": "test-region", + "returns": Array [], + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "shipping_methods": Array [ + Object { + "cart_id": null, + "claim_order_id": null, + "data": Object {}, + "id": Any, + "order_id": Any, + "price": 0, + "return_id": null, + "shipping_option": Object { + "admin_only": false, + "amount": 500, + "created_at": Any, + "data": Object {}, + "deleted_at": null, + "id": Any, + "is_return": false, + "metadata": null, + "name": "free", + "price_type": "flat_rate", + "profile_id": Any, + "provider_id": "test-ful", + "region_id": "test-region", + "updated_at": Any, + }, + "shipping_option_id": Any, + "swap_id": null, + "tax_lines": Array [], + }, + ], + "shipping_total": 0, + "status": "pending", + "subtotal": 2000, + "swaps": Array [], + "tax_rate": null, + "tax_total": 400, + "total": 2400, + "updated_at": Any, + }, + "tracking_links": Array [], + "tracking_number": "", + } + ``` +
+ +### Order Return Requested + +**Key in plugin options:** `order_return_requested_template` + +**Description:** Template to be sent to the customer when a return request is made for an order. + +
+ Example Data + + ```jsx + { + "date": Any, + "email": "test@testson.com", + "has_shipping": false, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "price": "12.00 USD", + "quantity": 1, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Intelligent Plastic Chips", + "totals": Object { + "discount_total": 0, + "gift_card_total": 0, + "original_tax_total": 200, + "original_total": 1200, + "quantity": 1, + "subtotal": 1000, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "tax_total": 200, + "total": 1200, + "unit_price": 1000, + }, + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "locale": null, + "order": Object { + "beforeInsert": [Function], + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "claims": Array [], + "created_at": Any, + "currency_code": "usd", + "customer_id": Any, + "discounts": Array [], + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "fulfilled", + "gift_card_transactions": Array [], + "gift_cards": Array [], + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "refunds": Array [], + "region": Object { + "automatic_taxes": true, + "created_at": Any, + "currency_code": "usd", + "deleted_at": null, + "fulfillment_providers": Array [], + "gift_cards_taxable": true, + "id": Any, + "metadata": null, + "name": "Test region", + "payment_providers": Array [ + PaymentProvider { + "id": "test-pay", + "is_installed": true, + }, + ], + "tax_code": null, + "tax_provider_id": null, + "tax_rate": 12.5, + "updated_at": Any, + }, + "region_id": "test-region", + "returns": Array [ + Object { + "claim_order_id": null, + "created_at": Any, + "id": Any, + "idempotency_key": Any, + "items": Array [ + Object { + "is_requested": true, + "item_id": "test-item", + "metadata": null, + "note": null, + "quantity": 1, + "reason_id": null, + "received_quantity": null, + "requested_quantity": 1, + "return_id": Any, + }, + ], + "metadata": null, + "no_notification": null, + "order_id": Any, + "received_at": null, + "refund_amount": 1200, + "shipping_data": null, + "status": "requested", + "swap_id": null, + "updated_at": Any, + }, + ], + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "shipping_methods": Array [], + "status": "pending", + "swaps": Array [], + "tax_rate": null, + "total": 2400, + "updated_at": Any, + }, + "refund_amount": "12.00 USD", + "return_request": Object { + "claim_order_id": null, + "created_at": Any, + "id": Any, + "idempotency_key": Any, + "items": Array [ + Object { + "is_requested": true, + "item": Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + "item_id": "test-item", + "metadata": null, + "note": null, + "quantity": 1, + "reason_id": null, + "received_quantity": null, + "requested_quantity": 1, + "return_id": Any, + }, + ], + "metadata": null, + "no_notification": null, + "order_id": Any, + "received_at": null, + "refund_amount": "12.00 USD", + "shipping_data": null, + "shipping_method": null, + "status": "requested", + "swap_id": null, + "updated_at": Any, + }, + "shipping_total": "0.00 USD", + "subtotal": "12.00 USD", + } + ``` +
+ +### Order Items Returned + +**Key in plugin options:** `order_items_returned_template` + +**Description:** Template to be sent to the customer when an order’s items have been returned. + +
+ Example Data + + ```jsx + { + "date": Any, + "email": "test@testson.com", + "has_shipping": false, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "price": "12.00 USD", + "quantity": 1, + "returned_quantity": 1, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Intelligent Plastic Chips", + "totals": Object { + "discount_total": 0, + "gift_card_total": 0, + "original_tax_total": 200, + "original_total": 1200, + "quantity": 1, + "subtotal": 1000, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "tax_total": 200, + "total": 1200, + "unit_price": 1000, + }, + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 11, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "locale": null, + "order": Object { + "beforeInsert": [Function], + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "claims": Array [], + "created_at": Any, + "currency_code": "usd", + "customer_id": Any, + "discounts": Array [], + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "requires_action", + "gift_card_transactions": Array [], + "gift_cards": Array [], + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": 1, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 11, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "refunds": Array [], + "region": Object { + "automatic_taxes": true, + "created_at": Any, + "currency_code": "usd", + "deleted_at": null, + "fulfillment_providers": Array [], + "gift_cards_taxable": true, + "id": Any, + "metadata": null, + "name": "Test region", + "payment_providers": Array [ + PaymentProvider { + "id": "test-pay", + "is_installed": true, + }, + ], + "tax_code": null, + "tax_provider_id": null, + "tax_rate": 12.5, + "updated_at": Any, + }, + "region_id": "test-region", + "returns": Array [ + Object { + "claim_order_id": null, + "created_at": Any, + "id": Any, + "idempotency_key": Any, + "items": Array [ + Object { + "is_requested": true, + "item_id": "test-item", + "metadata": null, + "note": null, + "quantity": 1, + "reason_id": null, + "received_quantity": null, + "requested_quantity": 1, + "return_id": Any, + }, + ], + "metadata": null, + "no_notification": null, + "order_id": Any, + "received_at": Any, + "refund_amount": 1200, + "shipping_data": null, + "status": "received", + "swap_id": null, + "updated_at": Any, + }, + ], + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "shipping_methods": Array [], + "status": "pending", + "swaps": Array [], + "tax_rate": null, + "total": 2400, + "updated_at": Any, + }, + "refund_amount": "12.00 USD", + "return_request": Object { + "claim_order_id": null, + "created_at": Any, + "id": Any, + "idempotency_key": Any, + "items": Array [ + Object { + "is_requested": true, + "item": Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": 1, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 11, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + "item_id": "test-item", + "metadata": null, + "note": null, + "quantity": 1, + "reason_id": null, + "received_quantity": null, + "requested_quantity": 1, + "return_id": Any, + }, + ], + "metadata": null, + "no_notification": null, + "order_id": Any, + "received_at": Any, + "refund_amount": "12.00 USD", + "shipping_data": null, + "shipping_method": null, + "status": "received", + "swap_id": null, + "updated_at": Any, + }, + "shipping_total": "0.00 USD", + "subtotal": "12.00 USD", + } + ``` +
+ +### Claim Shipment Created + +**Key in plugin options:** `claim_shipment_created_template` + +**Description:** Template to be sent to the customer when a Claim shipment has been created. + +
+ Example Data + + ```jsx + { + "claim": Object { + "canceled_at": null, + "created_at": Any, + "deleted_at": null, + "fulfillment_status": "shipped", + "id": Any, + "idempotency_key": Any, + "metadata": null, + "no_notification": null, + "order": Object { + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "created_at": Any, + "currency_code": "usd", + "customer_id": Any, + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "fulfilled", + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "region_id": "test-region", + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "status": "pending", + "tax_rate": null, + "updated_at": Any, + }, + "order_id": Any, + "payment_status": "na", + "refund_amount": null, + "shipping_address_id": Any, + "type": "replace", + "updated_at": Any, + }, + "email": "test@testson.com", + "fulfillment": Object { + "canceled_at": null, + "claim_order_id": Any, + "created_at": Any, + "data": Object {}, + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "fulfillment_id": Any, + "item_id": Any, + "quantity": 1, + }, + ], + "metadata": Object {}, + "no_notification": null, + "order_id": null, + "provider_id": "test-ful", + "shipped_at": Any, + "swap_id": null, + "tracking_links": Array [], + "tracking_numbers": Array [], + "updated_at": Any, + }, + "locale": null, + "order": Object { + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "created_at": Any, + "currency_code": "usd", + "customer_id": Any, + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "fulfilled", + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "region_id": "test-region", + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "status": "pending", + "tax_rate": null, + "updated_at": Any, + }, + "tracking_links": Array [], + "tracking_number": "", + } + ``` +
+ +### Swap Created + +**Key in plugin options:** `swap_created_template` + +**Description:** Template to be sent to the customer when a swap for an order has been created. + +
+ Example Data + + ```jsx + { + "locale": null, + "swap": Object { + "additional_items": Array [ + Object { + "allow_discounts": true, + "cart_id": Any, + "claim_order_id": null, + "created_at": Any, + "description": "Small Wooden Computer", + "fulfilled_quantity": 1, + "has_shipping": true, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": Object {}, + "order_id": null, + "quantity": 1, + "returned_quantity": null, + "shipped_quantity": 1, + "should_merge": true, + "swap_id": Any, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": Any, + "metadata": null, + "name": "default", + "rate": 12.5, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Awesome Metal Ball", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "variant-2", + "inventory_quantity": 9, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Small Wooden Computer", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "variant-2", + }, + ], + "return_order": Object { + "claim_order_id": null, + "created_at": Any, + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "is_requested": true, + "item_id": "test-item", + "metadata": null, + "note": null, + "quantity": 1, + "reason_id": null, + "received_quantity": null, + "requested_quantity": 1, + "return_id": Any, + }, + ], + "metadata": null, + "no_notification": null, + "order_id": null, + "received_at": null, + "refund_amount": 1200, + "shipping_data": null, + "status": "requested", + "swap_id": Any, + "updated_at": Any, + }, + "allow_backorder": true, + "canceled_at": null, + "cart_id": Any, + "confirmed_at": Any, + "created_at": Any, + "deleted_at": null, + "difference_due": 488, + "fulfillment_status": "shipped", + "id": Any, + "idempotency_key": Any, + "metadata": null, + "no_notification": null, + "order_id": Any, + "payment_status": "awaiting", + "shipping_address_id": Any, + "updated_at": Any, + }, + "order": Object { + "discounts": Array [], + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "created_at": Any, + "currency_code": "usd", + "customer_id": Any, + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "fulfilled", + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "region_id": "test-region", + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "status": "pending", + "tax_rate": null, + "updated_at": Any, + "swaps": Array [], + }, + "return_request": Object { + "claim_order_id": null, + "created_at": Any, + "id": Any, + "idempotency_key": Any, + "items": Array [ + Object { + "is_requested": true, + "item": Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": 1, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 11, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + "item_id": "test-item", + "metadata": null, + "note": null, + "quantity": 1, + "reason_id": null, + "received_quantity": null, + "requested_quantity": 1, + "return_id": Any, + }, + ], + "metadata": null, + "no_notification": null, + "order_id": Any, + "received_at": Any, + "refund_amount": "12.00 USD", + "shipping_data": null, + "shipping_method": null, + "status": "received", + "swap_id": null, + "updated_at": Any, + }, + "date": Any, + "swapLink": Any, + "email": "test@testson.com", + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "discounted_price": "12.00 USD", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": "test-item", + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "price": "12.00 USD", + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Intelligent Plastic Chips", + "totals": Object { + "discount_total": 0, + "gift_card_total": 0, + "original_tax_total": 400, + "original_total": 2400, + "quantity": 2, + "subtotal": 2000, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "tax_total": 400, + "total": 2400, + "unit_price": 1000, + }, + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "return_items": Array[...], //same as items + "return_total": "12.00 USD", + "refund_amount": "12.00 USD", + "additional_total": "11.25 USD" + } + ``` +
+ +### Swap Shipment Created + +**Key in plugin options:** `swap_shipment_created_template` + +**Description:** Template to be sent to the customer when a shipment of a swap of an order has been created. + +
+ Example Data + + ```jsx + Object { + "additional_total": "16.88 USD", + "date": Any, + "email": "test@testson.com", + "fulfillment": Object { + "canceled_at": null, + "claim_order_id": null, + "created_at": Any, + "data": Object {}, + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "fulfillment_id": Any, + "item_id": Any, + "quantity": 1, + }, + ], + "metadata": Object {}, + "no_notification": null, + "order_id": null, + "provider_id": "test-ful", + "shipped_at": Any, + "swap_id": Any, + "tracking_links": Array [], + "tracking_numbers": Array [], + "updated_at": Any, + }, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": Any, + "claim_order_id": null, + "created_at": Any, + "description": "Small Wooden Computer", + "discounted_price": "11.25 USD", + "fulfilled_quantity": 1, + "has_shipping": true, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": Object {}, + "order_id": null, + "price": "11.25 USD", + "quantity": 1, + "returned_quantity": null, + "shipped_quantity": 1, + "should_merge": true, + "swap_id": Any, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": Any, + "metadata": null, + "name": "default", + "rate": 12.5, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Awesome Metal Ball", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "variant-2", + "inventory_quantity": 9, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Small Wooden Computer", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "variant-2", + }, + ], + "locale": null, + "order": Object { + "beforeInsert": [Function], + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "created_at": Any, + "currency_code": "usd", + "customer_id": Any, + "discounts": Array [], + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "fulfilled", + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": Any, + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 9, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "region": Object { + "automatic_taxes": true, + "created_at": Any, + "currency_code": "usd", + "deleted_at": null, + "fulfillment_providers": Array [], + "gift_cards_taxable": true, + "id": Any, + "metadata": null, + "name": "Test region", + "payment_providers": Array [ + PaymentProvider { + "id": "test-pay", + "is_installed": true, + }, + ], + "tax_code": null, + "tax_provider_id": null, + "tax_rate": 12.5, + "updated_at": Any, + }, + "region_id": "test-region", + "shipping_address_id": Any, + "status": "pending", + "swaps": Array [ + Object { + "additional_items": Array [ + Object { + "allow_discounts": true, + "cart_id": Any, + "claim_order_id": null, + "created_at": Any, + "description": "Small Wooden Computer", + "fulfilled_quantity": 1, + "has_shipping": true, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": Object {}, + "order_id": null, + "quantity": 1, + "returned_quantity": null, + "shipped_quantity": 1, + "should_merge": true, + "swap_id": Any, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": Any, + "metadata": null, + "name": "default", + "rate": 12.5, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Awesome Metal Ball", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "variant-2", + "inventory_quantity": 9, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Small Wooden Computer", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "variant-2", + }, + ], + "allow_backorder": true, + "canceled_at": null, + "cart_id": Any, + "confirmed_at": Any, + "created_at": Any, + "deleted_at": null, + "difference_due": 488, + "fulfillment_status": "shipped", + "id": Any, + "idempotency_key": Any, + "metadata": null, + "no_notification": null, + "order_id": Any, + "payment_status": "awaiting", + "shipping_address_id": Any, + "updated_at": Any, + }, + ], + "tax_rate": null, + "updated_at": Any, + }, + "paid_total": "4.88 USD", + "refund_amount": "12.00 USD", + "return_total": "12.00 USD", + "swap": Object { + "additional_items": Array [ + Object { + "allow_discounts": true, + "cart_id": Any, + "claim_order_id": null, + "created_at": Any, + "description": "Small Wooden Computer", + "fulfilled_quantity": 1, + "has_shipping": true, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": Object {}, + "order_id": null, + "quantity": 1, + "returned_quantity": null, + "shipped_quantity": 1, + "should_merge": true, + "swap_id": Any, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": Any, + "metadata": null, + "name": "default", + "rate": 12.5, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Awesome Metal Ball", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "variant-2", + "inventory_quantity": 9, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Small Wooden Computer", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "variant-2", + }, + ], + "allow_backorder": true, + "beforeInsert": [Function], + "canceled_at": null, + "cart_id": Any, + "confirmed_at": Any, + "created_at": Any, + "deleted_at": null, + "difference_due": 488, + "fulfillment_status": "shipped", + "id": Any, + "idempotency_key": Any, + "metadata": null, + "no_notification": null, + "order_id": Any, + "payment_status": "awaiting", + "return_order": Object { + "claim_order_id": null, + "created_at": Any, + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "is_requested": true, + "item_id": "test-item", + "metadata": null, + "note": null, + "quantity": 1, + "reason_id": null, + "received_quantity": null, + "requested_quantity": 1, + "return_id": Any, + }, + ], + "metadata": null, + "no_notification": null, + "order_id": null, + "received_at": null, + "refund_amount": 1200, + "shipping_data": null, + "status": "requested", + "swap_id": Any, + "updated_at": Any, + }, + "shipping_address": Object { + "address_1": "121 W Something St", + "address_2": null, + "city": "ville la something", + "company": null, + "country_code": null, + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": null, + "id": Any, + "last_name": null, + "metadata": null, + "phone": "12353245", + "postal_code": "1234", + "province": "something", + "updated_at": Any, + }, + "shipping_address_id": Any, + "shipping_methods": Array [ + Object { + "cart_id": Any, + "claim_order_id": null, + "data": Object {}, + "id": Any, + "order_id": null, + "price": 500, + "return_id": null, + "shipping_option": Object { + "admin_only": false, + "amount": 500, + "created_at": Any, + "data": Object {}, + "deleted_at": null, + "id": Any, + "is_return": false, + "metadata": null, + "name": "Test Method", + "price_type": "flat_rate", + "profile_id": Any, + "provider_id": "test-ful", + "region_id": "test-region", + "updated_at": Any, + }, + "shipping_option_id": Any, + "swap_id": Any, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "metadata": null, + "name": "default", + "rate": 12.5, + "shipping_method_id": Any, + "updated_at": Any, + }, + ], + }, + ], + "updated_at": Any, + }, + "tax_amount": "-0.12 USD", + "tracking_links": Array [], + "tracking_number": "", + } + ``` +
+ +### Swap Received + +**Key in plugin options:** `swap_received_template` + +**Description:** Template to be sent to the customer when a swap of an order has been received. + +
+ Example Data + + ```jsx + { + "locale": null, + "swap": Object { + "additional_items": Array [ + Object { + "allow_discounts": true, + "cart_id": Any, + "claim_order_id": null, + "created_at": Any, + "description": "Small Wooden Computer", + "fulfilled_quantity": 1, + "has_shipping": true, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": Object {}, + "order_id": null, + "quantity": 1, + "returned_quantity": null, + "shipped_quantity": 1, + "should_merge": true, + "swap_id": Any, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": Any, + "metadata": null, + "name": "default", + "rate": 12.5, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Awesome Metal Ball", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "variant-2", + "inventory_quantity": 9, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Small Wooden Computer", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "variant-2", + }, + ], + "return_order": Object { + "claim_order_id": null, + "created_at": Any, + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "is_requested": true, + "item_id": "test-item", + "metadata": null, + "note": null, + "quantity": 1, + "reason_id": null, + "received_quantity": null, + "requested_quantity": 1, + "return_id": Any, + }, + ], + "metadata": null, + "no_notification": null, + "order_id": null, + "received_at": null, + "refund_amount": 1200, + "shipping_data": null, + "status": "requested", + "swap_id": Any, + "updated_at": Any, + }, + "allow_backorder": true, + "canceled_at": null, + "cart_id": Any, + "confirmed_at": Any, + "created_at": Any, + "deleted_at": null, + "difference_due": 488, + "fulfillment_status": "shipped", + "id": Any, + "idempotency_key": Any, + "metadata": null, + "no_notification": null, + "order_id": Any, + "payment_status": "awaiting", + "shipping_address_id": Any, + "updated_at": Any, + }, + "order": Object { + "discounts": Array [], + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "created_at": Any, + "currency_code": "usd", + "customer_id": Any, + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "fulfilled", + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "region_id": "test-region", + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "status": "pending", + "tax_rate": null, + "updated_at": Any, + "swaps": Array [], + }, + "return_request": Object { + "claim_order_id": null, + "created_at": Any, + "id": Any, + "idempotency_key": Any, + "items": Array [ + Object { + "is_requested": true, + "item": Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": 1, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 11, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + "item_id": "test-item", + "metadata": null, + "note": null, + "quantity": 1, + "reason_id": null, + "received_quantity": null, + "requested_quantity": 1, + "return_id": Any, + }, + ], + "metadata": null, + "no_notification": null, + "order_id": Any, + "received_at": Any, + "refund_amount": "12.00 USD", + "shipping_data": null, + "shipping_method": null, + "status": "received", + "swap_id": null, + "updated_at": Any, + }, + "date": Any, + "swapLink": Any, + "email": "test@testson.com", + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "discounted_price": "12.00 USD", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": "test-item", + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "price": "12.00 USD", + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "thumbnail": null, + "title": "Intelligent Plastic Chips", + "totals": Object { + "discount_total": 0, + "gift_card_total": 0, + "original_tax_total": 400, + "original_total": 2400, + "quantity": 2, + "subtotal": 2000, + "tax_lines": Array [ + Object { + "code": "default", + "created_at": Any, + "id": Any, + "item_id": "test-item", + "metadata": null, + "name": "default", + "rate": 20, + "updated_at": Any, + }, + ], + "tax_total": 400, + "total": 2400, + "unit_price": 1000, + }, + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "return_items": Array[...], //same as items + "return_total": "12.00 USD", + "tax_total": "4.00 USD", + "refund_amount": "12.00 USD", + "additional_total": "11.25 USD" + } + ``` +
+ +### Gift Card Created + +**Key in plugin options:** `gift_card_created_template` + +**Description:** Template to be to the customer sent when a gift card in their order has been created. + +
+ Example Data + + ```jsx + Object { + "code": Any, + "value": 4, + "balance": 100, + "region": Object { + "automatic_taxes": true, + "created_at": Any, + "currency_code": "usd", + "deleted_at": null, + "fulfillment_providers": Array [], + "gift_cards_taxable": true, + "id": Any, + "metadata": null, + "name": "Test region", + "payment_providers": Array [ + PaymentProvider { + "id": "test-pay", + "is_installed": true, + }, + ], + "tax_code": null, + "tax_provider_id": null, + "tax_rate": 12.5, + "updated_at": Any, + }, + "region_id": "test-region", + "order": Object { + "billing_address_id": null, + "canceled_at": null, + "cart_id": null, + "created_at": Any, + "currency_code": "usd", + "customer_id": Any, + "display_id": Any, + "draft_order_id": null, + "email": "test@testson.com", + "external_id": null, + "fulfillment_status": "fulfilled", + "id": Any, + "idempotency_key": null, + "items": Array [ + Object { + "allow_discounts": true, + "cart_id": null, + "claim_order_id": null, + "created_at": Any, + "description": "", + "fulfilled_quantity": 2, + "has_shipping": null, + "id": Any, + "is_giftcard": false, + "is_return": false, + "metadata": null, + "order_id": Any, + "quantity": 2, + "returned_quantity": null, + "shipped_quantity": 2, + "should_merge": true, + "swap_id": null, + "thumbnail": "", + "title": "Intelligent Plastic Chips", + "unit_price": 1000, + "updated_at": Any, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + }, + ], + "metadata": null, + "no_notification": null, + "object": "order", + "payment_status": "captured", + "region_id": "test-region", + "shipping_address": Object { + "address_1": "84185 Lindsey Centers", + "address_2": null, + "city": null, + "company": null, + "country_code": "us", + "created_at": Any, + "customer_id": null, + "deleted_at": null, + "first_name": "Chyna", + "id": Any, + "last_name": "Osinski", + "metadata": null, + "phone": null, + "postal_code": "51510", + "province": null, + "updated_at": Any, + }, + "shipping_address_id": Any, + "status": "pending", + "tax_rate": null, + "updated_at": Any, + }, + "order_id": Any, + "is_disabled": false, + "created_at": Any, + "updated_at": Any, + "deleted_at": null, + "locale": null, + "email": "test@testson.com", + "display_value": 4 + } + ``` +
+ +### Customer Password Reset + +**Key in plugin options:** `customer_password_reset_template` + +**Description:** Template to be sent to the customer when they request a password reset. + +
+ Example Data + + ```jsx + Object { + "id": Any, + "email": "test@testson.com", + "first_name": "Chyna", + "last_name": "Osinski", + "token": Any, + } + ``` +
+ +### User Password Reset + +**Key in plugin options:** `user_password_reset_template` + +**Description:** Template to be sent to the admin user when they request a password reset. + +
+ Example Data + + ```jsx + Object { + "email": "test@testson.com", + "token": Any, + } + ``` +
+ +### Restock Notification + +**Key in plugin options:** medusa_restock_template + +**Description:** Template to be sent to admin users when a product has hit the restock quantity threshold. + +
+ Example Data + + ```jsx + Object { + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": "", + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant": Object { + "allow_backorder": false, + "barcode": null, + "created_at": Any, + "deleted_at": null, + "ean": null, + "height": null, + "hs_code": null, + "id": "test-variant", + "inventory_quantity": 10, + "length": null, + "manage_inventory": true, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "product": Object { + "collection_id": null, + "created_at": Any, + "deleted_at": null, + "description": null, + "discountable": true, + "external_id": null, + "handle": null, + "height": null, + "hs_code": null, + "id": "test-product", + "is_giftcard": false, + "length": null, + "material": null, + "metadata": null, + "mid_code": null, + "origin_country": null, + "profile_id": Any, + "status": "draft", + "subtitle": null, + "thumbnail": null, + "title": "Awesome Metal Ball", + "type_id": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "product_id": "test-product", + "sku": null, + "title": "Practical Granite Pizza", + "upc": null, + "updated_at": Any, + "weight": null, + "width": null, + }, + "variant_id": "test-variant", + "emails": Array [ + "test@testson.com" + ] + } + ``` +
+ +## Install the SendGrid Plugin + +In the directory of your Medusa server run the following command to install the SendGrid plugin: + +```bash +npm i medusa-plugin-sendgrid +``` + +Then, in your `.env` file add the API key you created earlier as well as the send from email: + +```bash +SENDGRID_API_KEY= +SENDGRID_FROM= +``` + +Make sure to replace the `` with the SendGrid API key and the `` with the email you’re using in SendGrid as the single sender. + +Also, you should add the ID of each template you create in `.env` as well. For example: + +```bash +SENDGRID_ORDER_PLACED_ID= +``` + +Where `