Skip to content

v4.0.0

Compare
Choose a tag to compare
@Gnito Gnito released this 07 Feb 13:53
· 737 commits to main since this release
100b138

Breaking changes:
if you have customized your transaction process, you need to update the email templates. The new customer commission (#293) adds changes to emails that contain a receipt aka order breakdown information. In addition, also PR #310 touches the email templates.

This release also prepares the codebase for future configuration possibilities:

  • Postponing the requirement (for a provider) to give payout details before publishing a listing
    • Payout details are still needed before orders can work. (see #297)
    • This feature makes it a bit more clear for operators, if potential provider needs help with Stripe onboarding.
  • Makes certain listing features optional (location, delivery method)
  • Adds infinity stock (It is emulated through a big number 10^15)

This adds a new environment variable: REACT_APP_MARKETPLACE_NAME. It makes it a bit easier to work with multiple app instances (for Live, Test, Dev).

Note: you have probably changed src/util/configDefault.js to use your own marketplace name instead of 'Biketribe'. Check that the line doesn't use 'Biketribe' if you take an update from the upstream!
marketplaceName: process.env.REACT_APP_MARKETPLACE_NAME || 'Biketribe',

More components are now code-splitted: Topbar, FieldDateInput, FieldDateRangeInput, FieldDateRangeController

Translations changes

New translation keys:

  "CheckoutPage.destinationAccountNotCompleteStripeError": "This listing is currently unavailable because the listing author's payout information is incomplete. Your card hasn't been charged. Please contact support.",

  "ListingPage.addPayoutDetails": "Add payout details",
  "ListingPage.addPayoutDetailsMessage": "Please add your payout details to start accepting orders.",
  "ListingPage.payoutDetailsWarning": "This listing is not available {processType, select, booking {for booking} other {for purchase}}. You have not added your payout details yet.",
  "ListingPage.payoutDetailsWarningLink": "Add your payout details",

  "ProductOrderForm.ownListing": "This is your own listing.",

  "EditListingPricingAndStockForm.updateToInfinite": "Update the stock of this listing to “infinite”",
  "EditListingPricingAndStockForm.updateToInfiniteInfo": "<b>The stock type of this listing type has changed.</b> The stock of this listing is currently {currentStock}, but listings in this listing type should now have “infinite” stock.",
  "EditListingPricingAndStockForm.updateToInfiniteRequired": "You need to update the stock of this listing to infinite to save changes.",

Old translations with updated arguments:

The deliveryMethod argument in the following translations has a new value 'none' if deliveryMethod doesn't exist. The change affects these (but 'none' is not included in the default translation as the other scenario works fine for it too):

  "TransactionPage.ActivityFeed.default-purchase.delivered": "{deliveryMethod, select, shipping {The listing was shipped.} other {The listing was delivered.}}",
  "TransactionPage.default-purchase.customer.purchased.extraInfo": "{deliveryMethod, select, shipping {You'll be notified when {providerName} ships the item.} other {Use the chat function below to agree on a time for pickup.}}",

The role argument added for the following translation:

  "OrderBreakdown.commission": "{role, select, customer {{marketplaceName} fee *} provider {{marketplaceName} fee *} other {}}",

Updates to existing translations:

  "CheckoutPage.providerStripeAccountMissingError": "This listing is currently unavailable because the listing author hasn't added their payout details yet. Please contact support.",

  "EditListingPricingAndStockForm.oldStockTotalWasOutOfSync": "Oops, the stock of this listing is out of sync. Someone might just have bought this item. Please refresh the page and try again.",

  "EditListingWizard.default-booking.new.saveAvailability": "Next",
  "EditListingWizard.default-booking.new.saveDetails": "Next",
  "EditListingWizard.default-booking.new.saveLocation": "Next",
  "EditListingWizard.default-booking.new.savePhotos": "Publish listing",
  "EditListingWizard.default-booking.new.savePricing": "Next",
  "EditListingWizard.default-inquiry.new.saveDetails": "Next",
  "EditListingWizard.default-inquiry.new.saveLocation": "Next",
  "EditListingWizard.default-inquiry.new.saveLocationNoPricingTab": "Next",
  "EditListingWizard.default-inquiry.new.savePhotos": "Publish listing",
  "EditListingWizard.default-inquiry.new.savePricing": "Next",
  "EditListingWizard.default-purchase.new.saveDelivery": "Next",
  "EditListingWizard.default-purchase.new.saveDetails": "Next",
  "EditListingWizard.default-purchase.new.savePhotos": "Publish listing",
  "EditListingWizard.default-purchase.new.savePricingAndStock": "Next",

Changes 2024-02-07

  • [add] Update de.json asset. #313
  • [add] Update fr.json asset. #311
  • [add] Update translation assets for German, French, and Spanish.
    #309
  • [change] Update default email templates (no need to use triple handlebars anymore).
    #310
  • [add] Add stock types: infiniteOneItem and infiniteMultipleItems (faked through 10^15)
    #299
  • [change] Make location and delivery method configurable on EditListingWizard. This just prepares
    the codebase for an upcoming feature, when the configuration is ready on Console.
    #298
  • [change] Make the requirement of payout details configurable on EditListingWizard. This just
    prepares the codebase for an upcoming feature, when the configuration is ready on Console.
    #297
  • [fix] The destructuring of undefined commissionAsset variable can't be against null.
    #308
  • [change] Allow distinguishing customer and provider commission translations in OrderBreakdown and
    email templates #307
  • [change] Add environment variable REACT_APP_MARKETPLACE_NAME and add code-comments to built-in
    configs about hosted configs, which might overwrite them. Check that the line doesn't use
    'Biketribe' if you take an update from the upstream!
    #305
  • [change] Updated a small patch of outdated libraries: express, body-parser, moment,
    moment-timezone, helmet, nodemon, decimal.js, concurrently, classnames, jose, passport
    #304
  • [add] CSP: add new rules: *.analytics.google.com and *.giphy.com
    #303
  • [change] Fetch customer commission from assets and add handling. This update introduces changes to
    the transaction process email templates, so the transaction process needs to be updated in
    Sharetribe backend. #293
  • [change] ext/ directory: update email translation defaults for no-delivery-method scenario.
    #292
  • [change] Code-split FieldDateInput, FieldDateRangeInput, FieldDateRangeController. The consequence
    is that react-dates library is code-splitted too.
    #290
  • [change] Move IconCard under SaveCardDetails (might be code-splitted later).
    #283
  • [change] Code-split Topbar component and move it under TopbarContainer.
    #282
  • [fix] AuthenticationPage/lodash: do not import the whole library.
    #288
  • [change] PageBuilder/YoutubeEmbed: add rel=0 search param (show related videos only from the same channel).
    This also adds width and height to iframe element.
    #286
  • [fix] FieldRadioButton: disabled style was missing.
    #284
  • [fix] Add missing imports to an email template file
    #279