v3.0.0
This adds support for a new process: default-inquiry. This new process is a super simple one and it is meant for situations where payments are not supported or where the process needs to be separately developed (i.e. an MVP-style process to test some idea)
Essentially, the default-inquiry process just enables free messaging between the customer and provider. Any payments etc. need to happen face-to-face or somehow outside of the marketplace.
Notes:
- At the moment of this release in the web-template repository, the listing types in Console do not yet support the new process! You might want to wait for it to support the new process before trying to use the default-inquiry process.
- The initial inquiry message is saved to the protected data of the transaction.
- The process has 1 transition
- Price can be configured on/off
- It is then reflected on ListingCard, ListingPage, EditListingWizard, ManageListingCard, and CheckoutPage.
Major changes:
- This will change the CheckoutPage quite much¹.
- SearchMap: SearchMapPriceLabel is empty if the listing is working with an inquiry listing type that doesn't display a price.
- We might introduce a separate label component later.
- Remove en.json file (Biketribe-themed translations) and
- Rename defaultMicrocopy.json (with generic copy-texts) to be the new en.json file².
- server/index.js and server/api/login-as.js use getSdk function from api-util/sdk.js
- ModalMissingReminder: StripeAccountReminder is removed.
- Brand image (for authentication page etc.) is not going to use default from the app but uses hosted image only.
¹ Read more about how the CheckoutPage works from (added) README.md:
https://github.com/sharetribe/web-template/tree/main/src/containers/CheckoutPage
² If you are taking an update from upstream, you might want to check only those translation keys that were added, deleted, or those which got new options for arguments. Those are listed below. The complete list of translation changes to microcopy files looks like this.
Out of those the most important ones for no-code users are these:
New translation keys:
"CheckoutPage.default-inquiry.orderBreakdown": "Order breakdown",
"CheckoutPage.default-inquiry.title": "Send an inquiry to {authorDisplayName}",
"CheckoutPageWithInquiryProcess.messageLabel": "Inquiry message",
"CheckoutPageWithInquiryProcess.messagePlaceholder": "Hello there! I'm interested in…",
"CheckoutPageWithInquiryProcess.messageRequired": "Message is required.",
"CheckoutPageWithInquiryProcess.perUnit": "{unitType, select, day {per day} night {per night} hour {per hour} other {}}",
"CheckoutPageWithInquiryProcess.submitButtonText": "Send inquiry",
"EditListingWizard.default-inquiry.new.saveDetails": "Next: Location",
"EditListingWizard.default-inquiry.new.saveLocation": "Next: Pricing",
"EditListingWizard.default-inquiry.new.saveLocationNoPricingTab": "Next: Photos",
"EditListingWizard.default-inquiry.new.savePhotos": "Publish listing",
"EditListingWizard.default-inquiry.new.savePricing": "Next: Photos",
"InboxPage.default-inquiry.free-inquiry.status": "Free inquiry",
"InquiryWithoutPaymentForm.ctaButton": "Send an inquiry",
"OrderPanel.ctaButtonMessageInquiry": "Send an inquiry",
"SortBy.newest": "Newest",
"SortBy.oldest": "Oldest",
"SortBy.lowestPrice": "Lowest price",
"SortBy.highestPrice": "Highest price",
"SortBy.relevance": "Relevance",
"SortBy.relevanceLong": "Relevance (Keyword search)",
"TransactionPage.ActivityFeed.default-inquiry.free-inquiry": "{actor, select, you {You started a conversation.} other {{otherUsersName} started a conversation.}}",
"TransactionPage.default-inquiry.customer.free-inquiry.title": "You sent an inquiry.",
"TransactionPage.default-inquiry.provider.free-inquiry.title": "You received an inquiry from {customerName}.",
"TransactionPanel.conversationHeading": "Conversation",
"TransactionPanel.inquiryMessageHeading": "Inquiry message",
Old translations with updated arguments:
The unitType argument can now have option inquiry. So, it's possible to add a new sub-message: "inquiry {per bag of potatoes}"
But it needs to be added before "other {}".
"EditListingPricingForm.pricePerProduct": "Price {unitType, select, day {per day} night {per night} hour {per hour} other {}}",
"ListingCard.perUnit": "{unitType, select, day {per day} night {per night} hour {per hour} other {}}",
"OrderPanel.perUnit": "{unitType, select, day {per day} night {per night} hour {per hour} other {}}",
Note: EditListingPricingForm.pricePerProduct changed a bit more:
- "EditListingPricingForm.pricePerProduct": "Price per {unitType, select, day {day} night {night} hour {hour} other {unit}}", + "EditListingPricingForm.pricePerProduct": "Price {unitType, select, day {per day} night {per night} hour {per hour} other {}}",
Deleted translation keys:
"ModalMissingInformation.gotoPaymentSettings": "Add payment details",
"ModalMissingInformation.missingStripeAccountText": "You have listings but your payment details are missing. Your listings are not available until payment details are saved.",
"ModalMissingInformation.missingStripeAccountTitle": "Payment details missing",
Changes 2023-09-04
-
[add] This PR adds a 3rd process (default-inquiry) to the template.
- As a consequence, CheckoutPage has been refactored heavily.
- This removes the en.json file (Biketribe-themed translations) and,
- This renames defaultMicrocopy.json (with generic copy-texts) as the new en.json file.
- This PR 195 branch evolved to be a v3 development branch. It included the following PRs too.
- Read more about the changes from PR:
-
[fix] small UI bug fixes. (The biggest is the removing defaultBranding.brandImageURL)
#209 -
[change] Change the email template name of the default inquiry process.
#208 -
[change] IconSpinner: add delay prop to reduce the fast flicker of the spinner on fast connections.
#207 -
[change] EditListingDetailsPanel: rename setNoAvailabilityForProductListings as
setNoAvailabilityForUnbookableListings #206 -
[fix] ListingPage: use updated CSS rules with react-image-gallery.
#205 -
[change] Use the getSdk function to initialize SDK on server/index.js and server/api/login-as.js.
#201 -
[fix] Add default sort options to en.json (microcopy)
#204 -
[delete] Remove the en.json file (Biketribe-themed translations) and rename defaultMicrocopy.json to
be the new en.json file. #203 -
[change] Updates to the copy texts in the defaultMicrocopy.json file.
#199 -
[fix] asset data denormalization: null values were not handled correctly.
#200