diff --git a/README.md b/README.md index 431d962..b2915d9 100644 --- a/README.md +++ b/README.md @@ -83,39 +83,39 @@ articles in Sharetribe Developer Docs. ### default-booking: -This is the default process that is created in our backend for new +This is a default process that is created in our backend for new test marketplaces and used for bookings. When used in **Sharetribe Web Template** ([web-template](https://github.com/sharetribe/web-template/)) customizing [pricing](https://www.sharetribe.com/docs/concepts/pricing/) can be -done within the template by utilizing [privileged +done within the template by using [privileged transitions](https://www.sharetribe.com/docs/concepts/privileged-transitions/). ![default-booking](./default-booking.png) ### default-purchase: -This is the default process that is created in our backend for new +This is a default process that is created in our backend for new test marketplaces and used for purchases. It is a transaction process designed for product selling with shipping or pickup, and it uses the Sharetribe stock management features. When used in **Sharetribe Web Template** ([web-template](https://github.com/sharetribe/web-template/)) customizing [pricing](https://www.sharetribe.com/docs/concepts/pricing/) can be -done within the template by utilizing [privileged +done within the template by using [privileged transitions](https://www.sharetribe.com/docs/concepts/privileged-transitions/). ![default-purchase](./default-purchase.png) ### default-inquiry: -This is the default process that is created in our backend for new test marketplaces and used for free messaging. Its only function is to start a transaction so participants can send messages within the context of that transaction. The process does not use any payment, booking, or stock features. +This is a default process that is created in our backend for new test marketplaces and used for free messaging. Its only function is to start a transaction so participants can send messages within the context of that transaction. The process does not use any payment, booking, or stock features. ![default-inquiry](./default-inquiry.png) ### default-negotiation: -This is the default process that is created in our backend for new test +This is a default process that is created in our backend for new test marketplaces and used for price negotiation. The process supports transactions initiated by both the provider and the customer. This means it enables both a regular or forward marketplace flow, where the @@ -130,16 +130,19 @@ request loop after the item is delivered. In the change request loop, the customer can request changes to the delivered product before accepting the end result as successfully delivered. -As of October 2025, the **Sharetribe Web Template** -([web-template](https://github.com/sharetribe/web-template/)) supports -using the transaction process for reverse transactions. Support for a -forward price negotiation flow is on our roadmap, but it is currently -not supported by the template. - See the [negotiated process article](https://www.sharetribe.com/docs/concepts/negotiation-process/) for more details on the _default-negotiation_ process. ![default-negotiation](./default-negotiation.png) +### default-download + +This is a default process that is created in our backend for new test +marketplaces and used for digital download sales. The process does not have any provider actions. + +Once the customer successfully pays for the item, the transaction process reveals protected files from the listing to the transaction, so that the customer can then access them. The process also includes a path where the customer can report the transaction in case of an issue. + +![default-download](./default-download.png) + ### instant-booking: This is an example of instant booking supporting both card and push payment methods. @@ -177,4 +180,4 @@ This process makes it possible to create bookings for more than 90 days in the f The [README.md](./automatic-off-session-payment/README.md) file in the process folder describes how to take the process into use in the Sharetribe Web Template. -![automatic-off-session-payment](./automatic-off-session-payment.png) \ No newline at end of file +![automatic-off-session-payment](./automatic-off-session-payment.png) diff --git a/default-download.png b/default-download.png new file mode 100644 index 0000000..de07ee1 Binary files /dev/null and b/default-download.png differ diff --git a/default-download/process.edn b/default-download/process.edn new file mode 100644 index 0000000..f9f04ec --- /dev/null +++ b/default-download/process.edn @@ -0,0 +1,170 @@ +{:format :v3, + :transitions + [{:name :transition/inquire, + :actor :actor.role/customer, + :actions [{:name :action/update-protected-data}], + :to :state/inquiry} + {:name :transition/request-payment, + :actor :actor.role/customer, + :privileged? true, + :actions + [{:name :action/update-protected-data} + {:name :action/privileged-set-line-items} + {:name :action/stripe-create-payment-intent}], + :to :state/pending-payment} + {:name :transition/request-payment-after-inquiry, + :actor :actor.role/customer, + :privileged? true, + :actions + [{:name :action/update-protected-data} + {:name :action/privileged-set-line-items} + {:name :action/stripe-create-payment-intent}], + :from :state/inquiry, + :to :state/pending-payment} + {:name :transition/confirm-payment, + :actor :actor.role/customer, + :actions + [{:name :action/reveal-listing-protected-files} + {:name :action/stripe-confirm-payment-intent} + {:name :action/stripe-capture-payment-intent}], + :from :state/pending-payment, + :to :state/purchased} + {:name :transition/expire-payment, + :at + {:fn/plus + [{:fn/timepoint [:time/first-entered-state :state/pending-payment]} + {:fn/period ["P1D"]}]}, + :actions + [{:name :action/calculate-full-refund} + {:name :action/stripe-refund-payment}], + :from :state/pending-payment, + :to :state/payment-expired} + {:name :transition/auto-complete, + :at + {:fn/plus + [{:fn/timepoint [:time/first-entered-state :state/purchased]} + {:fn/period ["P7D"]}]}, + :actions [{:name :action/stripe-create-payout}], + :from :state/purchased, + :to :state/completed} + {:name :transition/operator-complete, + :actor :actor.role/operator, + :actions [{:name :action/stripe-create-payout}], + :from :state/purchased, + :to :state/completed} + {:name :transition/operator-report, + :actor :actor.role/operator, + :actions [], + :from :state/purchased, + :to :state/reported} + {:name :transition/report, + :actor :actor.role/customer, + :actions [], + :from :state/purchased, + :to :state/reported} + {:name :transition/operator-cancel, + :actor :actor.role/operator, + :actions + [{:name :action/calculate-full-refund} + {:name :action/stripe-refund-payment}], + :from :state/reported, + :to :state/canceled} + {:name :transition/auto-cancel, + :at + {:fn/plus + [{:fn/timepoint [:time/first-entered-state :state/reported]} + {:fn/period ["P60D"]}]}, + :actions + [{:name :action/calculate-full-refund} + {:name :action/stripe-refund-payment}], + :from :state/reported, + :to :state/canceled} + {:name :transition/operator-complete-from-reported, + :actor :actor.role/operator, + :actions [{:name :action/stripe-create-payout}], + :from :state/reported, + :to :state/completed} + {:name :transition/review, + :actor :actor.role/customer, + :actions + [{:name :action/post-review-by-customer} + {:name :action/publish-reviews}], + :from :state/completed, + :to :state/reviewed} + {:name :transition/expire-review-period, + :at + {:fn/plus + [{:fn/timepoint [:time/first-entered-state :state/completed]} + {:fn/period ["P7D"]}]}, + :actions [], + :from :state/completed, + :to :state/reviewed}], + :notifications + [{:name :notification/new-purchase, + :on :transition/confirm-payment, + :to :actor.role/provider, + :template :download-new-purchase} + {:name :notification/receipt, + :on :transition/confirm-payment, + :to :actor.role/customer, + :template :download-receipt} + {:name :notification/reported, + :on :transition/report, + :to :actor.role/provider, + :template :download-reported} + {:name :notification/operator-reported-to-customer, + :on :transition/operator-report, + :to :actor.role/customer, + :template :download-operator-reported} + {:name :notification/operator-reported-to-provider, + :on :transition/operator-report, + :to :actor.role/provider, + :template :download-reported} + {:name :notification/review-period-started, + :on :transition/auto-complete, + :to :actor.role/customer, + :template :download-review-period-started} + {:name :notification/payout-sent, + :on :transition/auto-complete, + :to :actor.role/provider, + :template :download-payout-sent} + {:name :notification/review-period-started-from-operator-completed, + :on :transition/operator-complete, + :to :actor.role/customer, + :template :download-review-period-started} + {:name :notification/payout-sent-from-operator-completed, + :on :transition/operator-complete, + :to :actor.role/provider, + :template :download-payout-sent} + {:name :notification/completed-from-reported-to-customer, + :on :transition/operator-complete-from-reported, + :to :actor.role/customer, + :template :download-completed-from-reported-to-customer} + {:name :notification/completed-from-reported-to-provider, + :on :transition/operator-complete-from-reported, + :to :actor.role/provider, + :template :download-completed-from-reported-to-provider} + {:name :notification/review-period-started-from-reported, + :on :transition/operator-complete-from-reported, + :to :actor.role/customer, + :template :download-review-period-started} + {:name :notification/auto-canceled-from-reported-to-customer, + :on :transition/auto-cancel, + :to :actor.role/customer, + :template :download-canceled-to-customer} + {:name :notification/auto-canceled-from-reported-to-provider, + :on :transition/auto-cancel, + :to :actor.role/provider, + :template :download-canceled-to-provider} + {:name :notification/operator-canceled-to-customer, + :on :transition/operator-cancel, + :to :actor.role/provider, + :template :download-canceled-to-customer} + {:name :notification/operator-canceled-to-provider, + :on :transition/operator-cancel, + :to :actor.role/provider, + :template :download-canceled-to-provider} + {:name :notification/new-review, + :on :transition/review, + :to :actor.role/provider, + :template :download-new-review}]} diff --git a/default-download/templates/download-canceled-to-customer/download-canceled-to-customer-html.html b/default-download/templates/download-canceled-to-customer/download-canceled-to-customer-html.html new file mode 100644 index 0000000..b8453c7 --- /dev/null +++ b/default-download/templates/download-canceled-to-customer/download-canceled-to-customer-html.html @@ -0,0 +1,43 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadCanceledToCustomer.Title" "Your purchase of {listingTitle} has been refunded" listingTitle=transaction.listing.title }}

+

+ {{t "DownloadCanceledToCustomer.ContentParagraph1" "Your purchase of {listingTitle} was canceled. You've received a full refund of your purchase." listingTitle=transaction.listing.title }}

+

+ + + + + + +
{{t "DownloadCanceledToCustomer.Cta" "View details"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's a link for your convenience:"}} {{marketplace.url}}/order/{{url-encode id}}/

+
+
+ {{/with}} +

+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact the {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-canceled-to-customer/download-canceled-to-customer-subject.txt b/default-download/templates/download-canceled-to-customer/download-canceled-to-customer-subject.txt new file mode 100644 index 0000000..80dcb0e --- /dev/null +++ b/default-download/templates/download-canceled-to-customer/download-canceled-to-customer-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadCanceledToCustomer.Subject" "Your purchase of {listingTitle} has been refunded" listingTitle=transaction.listing.title }} \ No newline at end of file diff --git a/default-download/templates/download-canceled-to-provider/download-canceled-to-provider-html.html b/default-download/templates/download-canceled-to-provider/download-canceled-to-provider-html.html new file mode 100644 index 0000000..d5ba262 --- /dev/null +++ b/default-download/templates/download-canceled-to-provider/download-canceled-to-provider-html.html @@ -0,0 +1,44 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadCanceledToProvider.Title" "A purchase of {listingTitle} was refunded" listingTitle=transaction.listing.title }}

+

+ {{t "DownloadCanceledToProvider.ContentParagraph1" "A problem was reported with {customerDisplayName}'s purchase of {listingTitle}. We've reviewed the report and canceled the purchase. {customerDisplayName} has received a full refund." customerDisplayName=transaction.customer.display-name listingTitle=transaction.listing.title marketplaceName=marketplace.name }}

+

+ {{t "DownloadCanceledToProvider.ContentParagraph2" "If you have any questions, please contact us." }}

+ + + + + + +
{{t "DownloadCanceledToProvider.Cta" "View details"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's a link for your convenience:"}} {{marketplace.url}}/sale/{{url-encode id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact the {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-canceled-to-provider/download-canceled-to-provider-subject.txt b/default-download/templates/download-canceled-to-provider/download-canceled-to-provider-subject.txt new file mode 100644 index 0000000..2eb50e4 --- /dev/null +++ b/default-download/templates/download-canceled-to-provider/download-canceled-to-provider-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadCanceledToProvider.Subject" "A purchase of {listingTitle} was refunded" listingTitle=transaction.listing.title }} \ No newline at end of file diff --git a/default-download/templates/download-completed-from-reported-to-customer/download-completed-from-reported-to-customer-html.html b/default-download/templates/download-completed-from-reported-to-customer/download-completed-from-reported-to-customer-html.html new file mode 100644 index 0000000..b0a30df --- /dev/null +++ b/default-download/templates/download-completed-from-reported-to-customer/download-completed-from-reported-to-customer-html.html @@ -0,0 +1,44 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadCompletedFromReportedToCustomer.Title" "The report of {listingTitle} has been resolved" listingTitle=transaction.listing.title }}

+

+ {{t "DownloadCompletedFromReportedToCustomer.ContentParagraph1" "A problem was reported with {listingTitle}, which you recently purchased. {marketplaceName} has reviewed your purchase and confirmed the files were successfully delivered. The purchase has been completed and {providerDisplayName} has received the payment." listingTitle=transaction.listing.title marketplaceName=marketplace.name providerDisplayName=transaction.provider.display-name }}

+

+ {{t "DownloadCompletedFromReportedToCustomer.ContentParagraph2" "If you have any questions, please contact us." }}

+ + + + + + +
{{t "DownloadCompletedFromReportedToCustomer.Cta" "View details"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's a link for your convenience:"}} {{marketplace.url}}/order/{{url-encode id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact the {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-completed-from-reported-to-customer/download-completed-from-reported-to-customer-subject.txt b/default-download/templates/download-completed-from-reported-to-customer/download-completed-from-reported-to-customer-subject.txt new file mode 100644 index 0000000..8665058 --- /dev/null +++ b/default-download/templates/download-completed-from-reported-to-customer/download-completed-from-reported-to-customer-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadCompletedFromReportedToCustomer.Subject" "Report of {listingTitle} resolved (payment released to {providerDisplayName})" listingTitle=transaction.listing.title providerDisplayName=transaction.provider.display-name }} \ No newline at end of file diff --git a/default-download/templates/download-completed-from-reported-to-provider/download-completed-from-reported-to-provider-html.html b/default-download/templates/download-completed-from-reported-to-provider/download-completed-from-reported-to-provider-html.html new file mode 100644 index 0000000..6002bab --- /dev/null +++ b/default-download/templates/download-completed-from-reported-to-provider/download-completed-from-reported-to-provider-html.html @@ -0,0 +1,97 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{~#*inline "format-money"~}}{{money-amount money}} {{money.currency}}{{~/inline~}}{{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadCompletedFromReportedToOrovider.Title" "We've sent you a payment (report resolved)" }}

+

+ {{t "DownloadCompletedFromReportedToOrovider.ContentParagraph1" "A problem was reported with {customerDisplayName}'s purchase of {listingTitle}. {marketplaceName} has reviewed the report and confirmed the files were successfully delivered. The purchase has now been completed." customerDisplayName=transaction.customer.display-name listingTitle=transaction.listing.title marketplaceName=marketplace.name }}

+

+ {{t "DownloadCompletedFromReportedToOrovider.ContentParagraph1" "We've released a payment of {currency} {amount,number,::.00} to you. It may take up to seven days to reach your bank account." currency=payout-total.currency amount=payout-total.amount }}

+ + + + + + +
{{#each tx-line-items}}{{#eq "line-item/file" code}} + + + + + + + + +
+ +

{{t "DownloadCompletedFromReportedToOrovider.UnitPriceLabel" "{listingTitle}" listingTitle=transaction.listing.title}}

+
+

{{> format-money money=unit-price}}

+
+ {{/eq}}{{#contains include-for "provider"}}{{#eq "line-item/provider-commission" code}} + + + + + + + + +
+ +

{{t "DownloadCompletedFromReportedToOrovider.FeeLabel" "{marketplaceName} fee" marketplaceName=marketplace.name }}

+
+

{{> format-money money=line-total}}

+
+ {{/eq}}{{/contains}}{{/each}} +
+ + + + + + + + +
+ +

{{t "DownloadCompletedFromReportedToOrovider.EarningLabel" "You'll make"}}

+
+

{{> format-money money=payout-total}}

+
+
+ + + + + + +
{{t "DownloadCompletedFromReportedToOrovider.Cta" "View details"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's the link for your convenience:"}} {{marketplace.url}}/sale/{{url-encode id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-completed-from-reported-to-provider/download-completed-from-reported-to-provider-subject.txt b/default-download/templates/download-completed-from-reported-to-provider/download-completed-from-reported-to-provider-subject.txt new file mode 100644 index 0000000..3e4cb8a --- /dev/null +++ b/default-download/templates/download-completed-from-reported-to-provider/download-completed-from-reported-to-provider-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadCompletedFromReportedToOrovider.Subject" "We've sent you a payment (report resolved)" }} \ No newline at end of file diff --git a/default-download/templates/download-new-purchase/download-new-purchase-html.html b/default-download/templates/download-new-purchase/download-new-purchase-html.html new file mode 100644 index 0000000..ed4163f --- /dev/null +++ b/default-download/templates/download-new-purchase/download-new-purchase-html.html @@ -0,0 +1,95 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{~#*inline "format-money"~}}{{money-amount money}} {{money.currency}}{{~/inline~}}{{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadNewPurchase.Title" "A new purchase for {listingTitle}" listingTitle=transaction.listing.title }}

+

+ {{t "DownloadNewPurchase.ContentParagraph1" "{customerDisplayName} purchased {listingTitle}. Here's the purchase breakdown." customerDisplayName=transaction.customer.display-name listingTitle=transaction.listing.title }}

+ + + + + + +
{{#each tx-line-items}}{{#eq "line-item/file" code}} + + + + + + + + +
+ +

{{t "DownloadNewPurchase.UnitPriceLabel" "{listingTitle}" listingTitle=transaction.listing.title}}

+
+

{{> format-money money=unit-price}}

+
+ {{/eq}}{{#contains include-for "provider"}}{{#eq "line-item/provider-commission" code}} + + + + + + + + +
+ +

{{t "DownloadNewPurchase.FeeLabel" "{marketplaceName} fee" marketplaceName=marketplace.name }}

+
+

{{> format-money money=line-total}}

+
+ {{/eq}}{{/contains}}{{/each}} +
+ + + + + + + + +
+ +

{{t "DownloadNewPurchase.EarningLabel" "You'll make"}}

+
+

{{> format-money money=payout-total}}

+
+
+ + + + + + +
{{t "DownloadNewPurchase.Cta" "View details"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's the link for your convenience:"}} {{marketplace.url}}/sale/{{url-encode id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-new-purchase/download-new-purchase-subject.txt b/default-download/templates/download-new-purchase/download-new-purchase-subject.txt new file mode 100644 index 0000000..2dfd798 --- /dev/null +++ b/default-download/templates/download-new-purchase/download-new-purchase-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadNewPurchase.Subject" "New purchase: {listingTitle}" listingTitle=transaction.listing.title }} \ No newline at end of file diff --git a/default-download/templates/download-new-review/download-new-review-html.html b/default-download/templates/download-new-review/download-new-review-html.html new file mode 100644 index 0000000..ffbba99 --- /dev/null +++ b/default-download/templates/download-new-review/download-new-review-html.html @@ -0,0 +1,42 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadNewReview.Title" "{customerDisplayName} left {listingTitle} a review" customerDisplayName=transaction.customer.display-name listingTitle=transaction.listing.title }}

+

+ {{t "DownloadNewReview.ContentParagraph1" "{customerDisplayName} recently purchased {listingTitle} and left a review. The review has been published on the listing page and in your profile." customerDisplayName=transaction.customer.display-name listingTitle=transaction.listing.title }}

+ + + + + + +
{{t "DownloadNewReview.Cta" "See the review"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's a link for your convenience:"}} {{marketplace.url}}/l/{{url-encode transaction.listing.id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact the {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-new-review/download-new-review-subject.txt b/default-download/templates/download-new-review/download-new-review-subject.txt new file mode 100644 index 0000000..1932eaa --- /dev/null +++ b/default-download/templates/download-new-review/download-new-review-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadNewReview.Subject" "{customerDisplayName} left {listingTitle} a review" customerDisplayName=transaction.customer.display-name listingTitle=transaction.listing.title }} \ No newline at end of file diff --git a/default-download/templates/download-operator-reported/download-operator-reported-html.html b/default-download/templates/download-operator-reported/download-operator-reported-html.html new file mode 100644 index 0000000..5bc2815 --- /dev/null +++ b/default-download/templates/download-operator-reported/download-operator-reported-html.html @@ -0,0 +1,44 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadOperatorReported.Title" "We're looking into your purchase of {listingTitle}" listingTitle=transaction.listing.title }}

+

+ {{t "DownloadOperatorReported.ContentParagraph1" "We noticed a potential issue with {listingTitle}. Following our review of your purchase, we'll confirm the payment or issue a refund." marketplaceName=marketplace.name listingTitle=transaction.listing.title }}

+

+ {{t "DownloadOperatorReported.ContentParagraph2" "If you have any questions, please contact us." }}

+ + + + + + +
{{t "DownloadOperatorReported.Cta" "View details"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's a link for your convenience:"}} {{marketplace.url}}/order/{{url-encode id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact the {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-operator-reported/download-operator-reported-subject.txt b/default-download/templates/download-operator-reported/download-operator-reported-subject.txt new file mode 100644 index 0000000..8bbdd31 --- /dev/null +++ b/default-download/templates/download-operator-reported/download-operator-reported-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadOperatorReported.Subject" "We're looking into your purchase of {listingTitle}" listingTitle=transaction.listing.title }} \ No newline at end of file diff --git a/default-download/templates/download-payout-sent/download-payout-sent-html.html b/default-download/templates/download-payout-sent/download-payout-sent-html.html new file mode 100644 index 0000000..bc341d3 --- /dev/null +++ b/default-download/templates/download-payout-sent/download-payout-sent-html.html @@ -0,0 +1,95 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{~#*inline "format-money"~}}{{money-amount money}} {{money.currency}}{{~/inline~}}{{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadPayoutSent.Title" "We've sent you a payment" }}

+

+ {{t "DownloadPayoutSent.ContentParagraph1" "{customerDisplayName} recently purchased {listingTitle}. We've released a payment of {currency} {amount,number,::.00} to you. It may take up to seven days to reach your bank account." customerDisplayName=transaction.customer.display-name listingTitle=transaction.listing.title currency=payout-total.currency amount=payout-total.amount }}

+ + + + + + +
{{#each tx-line-items}}{{#eq "line-item/file" code}} + + + + + + + + +
+ +

{{t "DownloadPayoutSent.UnitPriceLabel" "{listingTitle}" listingTitle=transaction.listing.title}}

+
+

{{> format-money money=unit-price}}

+
+ {{/eq}}{{#contains include-for "provider"}}{{#eq "line-item/provider-commission" code}} + + + + + + + + +
+ +

{{t "DownloadPayoutSent.FeeLabel" "{marketplaceName} fee" marketplaceName=marketplace.name }}

+
+

{{> format-money money=line-total}}

+
+ {{/eq}}{{/contains}}{{/each}} +
+ + + + + + + + +
+ +

{{t "DownloadPayoutSent.EarningLabel" "You'll make"}}

+
+

{{> format-money money=payout-total}}

+
+
+ + + + + + +
{{t "DownloadPayoutSent.Cta" "View details"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's the link for your convenience:"}} {{marketplace.url}}/sale/{{url-encode id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-payout-sent/download-payout-sent-subject.txt b/default-download/templates/download-payout-sent/download-payout-sent-subject.txt new file mode 100644 index 0000000..2264662 --- /dev/null +++ b/default-download/templates/download-payout-sent/download-payout-sent-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadPayoutSent.Subject" "We've sent you a payment" }} \ No newline at end of file diff --git a/default-download/templates/download-receipt/download-receipt-html.html b/default-download/templates/download-receipt/download-receipt-html.html new file mode 100644 index 0000000..77f79d4 --- /dev/null +++ b/default-download/templates/download-receipt/download-receipt-html.html @@ -0,0 +1,98 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{~#*inline "format-money"~}}{{money-amount money}} {{money.currency}}{{~/inline~}}{{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadReceipt.Title" "Thank you for your purchase!" }}

+

+ {{t "DownloadReceipt.ContentParagraph1" "Here's a breakdown of your purchase from {providerDisplayName}. Your card has been charged for {currency} {amount,number,::.00}." providerDisplayName=transaction.provider.display-name currency=payin-total.currency amount=payin-total.amount }}

+ + + + + + +
{{#each tx-line-items}}{{#eq "line-item/file" code}} + + + + + + + + +
+ +

{{t "DownloadReceipt.UnitPriceLabel" "{listingTitle}" listingTitle=transaction.listing.title}}

+
+

{{> format-money money=unit-price}}

+
+ {{/eq}}{{#contains include-for "customer"}}{{#eq "line-item/customer-commission" code}} + + + + + + + + +
+ +

{{t "DownloadReceipt.FeeLabel" "{marketplaceName} fee" marketplaceName=marketplace.name }}

+
+

{{> format-money money=line-total}}

+
+ {{/eq}}{{/contains}}{{/each}} +
+ + + + + + + + +
+ +

{{t "DownloadReceipt.TotalPrice" "Total price"}}

+
+

{{> format-money money=payin-total}}

+
+
+ + + + + + +
+

+ {{t "DownloadReceipt.ContentParagraph2" "To download the files, click the button below."}}

+ {{t "DownloadReceipt.Cta" "Download files"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's the link for your convenience:"}} {{marketplace.url}}/order/{{url-encode id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-receipt/download-receipt-subject.txt b/default-download/templates/download-receipt/download-receipt-subject.txt new file mode 100644 index 0000000..f985fbf --- /dev/null +++ b/default-download/templates/download-receipt/download-receipt-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadReceipt.Subject" "Thank you for purchasing {listingTitle}" listingTitle=transaction.listing.title }} \ No newline at end of file diff --git a/default-download/templates/download-reported/download-reported-html.html b/default-download/templates/download-reported/download-reported-html.html new file mode 100644 index 0000000..46b6b4c --- /dev/null +++ b/default-download/templates/download-reported/download-reported-html.html @@ -0,0 +1,44 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadReported.Title" "{customerDisplayName} reported a problem with their purchase" customerDisplayName=transaction.customer.display-name }}

+

+ {{t "DownloadReported.ContentParagraph1" "A problem was reported with {customerDisplayName}'s purchase of {listingTitle}. {marketplaceName} will review the report and get back to you as soon as possible." customerDisplayName=transaction.customer.display-name listingTitle=transaction.listing.title marketplaceName=marketplace.name }}

+

+ {{t "DownloadReported.ContentParagraph2" "If you have any questions, please contact us." }}

+ + + + + + +
{{t "DownloadReported.Cta" "View details"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's a link for your convenience:"}} {{marketplace.url}}/sale/{{url-encode id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact the {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-reported/download-reported-subject.txt b/default-download/templates/download-reported/download-reported-subject.txt new file mode 100644 index 0000000..44537cb --- /dev/null +++ b/default-download/templates/download-reported/download-reported-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadReported.Subject" "Problem reported: {listingTitle}" listingTitle=transaction.listing.title }} \ No newline at end of file diff --git a/default-download/templates/download-review-period-started/download-review-period-started-html.html b/default-download/templates/download-review-period-started/download-review-period-started-html.html new file mode 100644 index 0000000..5f2cb95 --- /dev/null +++ b/default-download/templates/download-review-period-started/download-review-period-started-html.html @@ -0,0 +1,42 @@ + + + {{set-translations (asset "content/email-texts.json")}} + {{set-locale (asset "general/localization.json" "locale" "en_US")}} + {{set-timezone transaction.listing.availability-plan.timezone}} + + + {{#with transaction}} + + + + + + +
+ + + + +
+

{{t "DownloadReviewPeriodStarted.Title" "Review {listingTitle}" listingTitle=transaction.listing.title }}

+

+ {{t "DownloadReviewPeriodStarted.ContentParagraph1" "You recently purchased {listingTitle} from {providerDisplayName}. Please leave a review for your purchase." listingTitle=transaction.listing.title providerDisplayName=transaction.provider.display-name }}

+ + + + + + +
{{t "DownloadReviewPeriodStarted.Cta" "Leave a review"}} +
+

{{t "TransactionEmails.AccessibleLinkText" "Can't click the button? Here's a link for your convenience:"}} {{marketplace.url}}/order/{{url-encode id}}/

+
+
+ {{/with}} +
+
+

{{t "TransactionEmails.MembershipParagraph" "You have received this email notification because you are a member of {marketplaceName}. If you no longer wish to receive these emails, please contact the {marketplaceName} team." marketplaceName=marketplace.name }}

+
+
+
+ \ No newline at end of file diff --git a/default-download/templates/download-review-period-started/download-review-period-started-subject.txt b/default-download/templates/download-review-period-started/download-review-period-started-subject.txt new file mode 100644 index 0000000..06a144a --- /dev/null +++ b/default-download/templates/download-review-period-started/download-review-period-started-subject.txt @@ -0,0 +1 @@ +{{set-translations (asset "content/email-texts.json")}}{{t "DownloadReviewPeriodStarted.Subject" "Leave a review for {listingTitle}" listingTitle=transaction.listing.title }} \ No newline at end of file