Change Log
Learn about Violet’s latest integrations and features.
🆕 Features
API Updates
- The Cart endpoints in the Violet API Reference have been updated to include multiple request and response samples. These can be used to understand and account for potential non-happy-case scenarios.
- Violet will no longer create new Offers for external products that are initially in an archived state the first time they are synced. If an Offer was previously created in Violet before being externally archived the Offer will continue to be updated and will reflect a status of
ARCHIVED
before eventually moving to aFOR_DELETION
state.
✨Introducing enhanced support for CUSTOM
Transfers
You can now use the Custom Transfers APIs to manage pending distributions more flexibly during checkout. New capabilities include:
- Transferring pending distributions for a single order
- Transferring pending distributions for a single bag
- Transferring pending distributions for multiple orders
- Transferring pending distributions for multiple bags
Optimized Merchant Transfers for Bulk Distributions:
When multiple distributions are associated with the same merchant, Violet now consolidates them into a single transfer, ensuring a streamlined and efficient bulk payment process.
Learn more about CUSTOM
Transfers, here.
🔧 Fixes
Integration Updates
- When the external commerce platform provides a carrier status that indicates an item has been successfully delivered, the Bag
fulfillment_status
will now have a value ofDELIVERED
. This will occur even when the external commerce platform does not have a native order fulfillment status that reflects delivery.
API Updates
- Resolved an issue where partial refunds for orders created via the Create Order API were miscalculating payment provider fees. Refund distributions now accurately reflect the correct amounts.
- Fixed a bug where the Create Order API did not correctly process line items with SKU quantities greater than one.
🆕 Features
API Updates
✨Introducing Flexible Payment and Transfer Strategies
Violet currently offers two payment processing models:
- Orchestrated Payments — In this model, Violet orchestrates charges to the shopper and transfers payments to merchants.
- Bypassed Payments — Here, Violet takes no action on payments or transfers. Instead, the Channel charges the shopper, and any transfers to merchants are managed by the channel.
We’re introducing greater flexibility in how you interact with Prism Pay, Violet’s orchestrated payments integration. You now have the ability to configure capture and transfer settings at both the app and merchant levels, giving you more control over the payment flow. You will see capture_method
, transfer_method
on the PaymentTransaction model that is returned as a part of the Cart. Each of these will have their own dedicated statuses, which you can learn more about in PaymentTransactions.
- Capture Method — This defines how the shopper’s payment method is charged. Available options are
AUTOMATIC
,EXTERNAL
andCUSTOM
.- Automatic — Violet generates a pending charge on the shopper’s payment method and automatically captures it once the order is successfully submitted.
- External — The channel manages all aspects of fund capture from the shopper. Violet does not take any action with Stripe to charge the shopper in this scenario and assumes payment has been captured directly by you.
- Custom — Violet creates a pending charge on the shopper’s payment method but will only capture funds when triggered separately by the channel. This setup is ideal if you want the shopper to be charged once specific conditions have been met. For example, capture funds only after the merchant fulfills the order. (Support for
CUSTOM
capture will be released in a future iteration of this feature. Timing TBD.)
- Transfer Method — This determines how Merchants receive funds for each order placed through Violet. Available options are
AUTOMATIC
,EXTERNAL
andCUSTOM
.- Automatic — Violet generates and processes the transfer of funds to Merchants automatically as part of each order submission, ensuring merchants are paid in an automated fashion.
- External — The Channel fully manages Merchant transfers and payouts for orders placed through Violet. Violet does not generate any transfer, distribution or payout records for bags and orders associated with these Merchants.
- Custom — Violet creates Distribution records for Merchants but only transfers funds when prompted by the channel. While merchants can view their pending Distributions in the Merchant Dashboard, they will not receive funds until the channel initiates the transfer of funds. (APIs for
CUSTOM
transfer initiation will be launched on Nov 18.)
App-level and merchant-level payment bypassing will now be known as EXTERNAL
capture and EXTERNAL
transfer. Reach out to our support team to learn more about how to configure these payment options.
🆕 Features
Integration Updates
- Safety stock rules can now be applied to a merchant’s Violet configuration to enable custom out of stock levels. Upon request, safety stock rules can be applied based on collection, category, tag, or vendor. As an example, if a merchants custom out of stock level is 2, then relevant Sku’s will be marked as out of stock when their available quantity reaches 2 or less.
🔧 Fixes
Dashboard Updates
- Fixes an issue with the dashboard not being able to migrate a Stripe standard account to a Stripe express account.
- Fixes an issue with refund distributions not being generated for transactions that occurred through a Stripe platform account.
🆕 Features
Violet Connect Updates
- Support for adding an optional Shopify Storefront API Access Token as part of the the Shopify API credential onboarding step.
🆕 Features
Dashboard Updates
- When a new Channel account is created on the Violet Dashboard, a pre-configured Payout Account for Demo mode is now automatically enabled, allowing for immediate order processing.
API Updates
- The Create Order API now supports orders in multiple currencies, enabling shoppers to be charged in the specified currency on the Cart when the Order is placed.
- ⚠️ Notice of Future Breaking Change
- On November 11th, 2024, the following changes will be made to the
Cart
object:bag.transactions
will be removed.intent_based_checkout
will be removed.payment_transaction.status
will be replaced bypayment_transaction.capture_status
.
- On November 11th, 2024, the following changes will be made to the
payment_transactions
field on the Cart
object to view Order payment details. You can learn more about Payment Transactions here.Integration Updates
- Shopify merchants can now limit the sourcing of their Sku inventory levels to an explicit list of one or more locations.
- Support of the Shopify Storefront API has been fully implemented. This API is rate-limit-free and will be used for all checkout steps prior to order submission for any merchants who provide the necessary scopes.
🆕 Features
Integration Updates
- Optimized RESTful endpoint has been added to the Magento 2 extension that enables for order creation using a single API call.
- We recommend that Magento 2 (Adobe Commerce) merchants upgrade to version
1.3.0
when convenient to do so.
- We recommend that Magento 2 (Adobe Commerce) merchants upgrade to version
- We now request two additional scopes from Shopify merchants during Shopify merchant onboarding:
write_merchant_managed_fulfillment_orders
- allows for a fulfillment hold to be applied to an order when fraud is suspected. This ensures that a merchant does not fulfill an order before an investigation has been completed.unauthenticated_write_checkouts
- allows for Shopify carts to be created using the GraphQL Storefront API. This API allows for all cart creation steps before order submission to be performed without consuming rate limits.
🆕 Features
API Updates
- Stripe Payment Intents are now supported when performing Direct Order Submission.
- Cart creation now surfaces improved error messaging when external failures occur. See Handling Cart Creation Errors.
🆕 Features
API Updates
- The ID of the parent Offer is now included in the Sku data for all new carts in the
offer_id
property. - Added the
external_id
property to the Offer Shipping Data. - Added a default limit of
5
concurrent channel initiated catalog re-syncs. Please reach out to your Violet account manager of you require a higher limit.
Integration Updates
- Added a parser that extracts Magento 2 product descriptions from Magezon Page Builder templating tags.
🔧 Fixes
- Fixed issue where the
taxes_included
property on a Bag could default back to a value offalse
if the order was later processed by an order reconciliation event. This had no impact or totals or the amount the shopper was charged.
🆕 Features
API Updates
- Improved surfacing of errors cause by Sku unavailability during order submission. Additionally, when a platform rejects an order due to Sku unavailability Violet will imediately mark that Sku as no longer available in the Violet system. See Handling Cart Submission Errors for more details.
🔧 Fixes
- Fixed issue where the failure of a single bag during order submission could result in all bags being cancelled/voided. The root cause of this was a failure within Stripe when performing the developer account payout transfer after the capture amount had been reduced.
🧼 Clean Up
- Began effort to significantly improve property descriptions and example responses in the Violet API Reference. The initial improvements will focus on Catalog and Cart/Order endpoints, and will expand from there.
🆕 Features
API Updates
- Direct Order Submission no longer requires approval and is open to all channels.
Integration Updates
- Adds support for extracting free shipping constraints for WooCommerce merchants using the Flexible Shipping plugin.
- Magento 2 extension version
1.2.0
has been released to the Magento Marketplace. This version adds several new custom endpoints to the Magento REST API that improves the speed and performance when performing Quick Checkout and Cart Estimations.
🧼 Clean Up
- Improved exceptions thrown when Checkout is performed on a Merchant that does not have a payout account.
🆕 Features
Dashboard Updates
- The Bag ID column in the bags table is changed to use Order ID instead.
- The Order ID is included in the bag detail pane.
API Updates
- Shipping data on the Offer object can now be enabled on a per-merchant basis. It is currently limited to the
SHOPIFY
integration. You can learn more about how to enable and use Offer shipping data here.
🔧 Fixes
- Fixed issue where the Merchant synced offers count was showing a different offers synced count on the channel dashboard when compared to the merchant dashboard.
🆕 Features
Dashboard Updates
- Adds Offer status filtering on the Merchant and Channel dashboards.
- Adds Brand search on the Merchant and Channel offers pages.
API Updates
- Shipping data on the Offer object is now being beta-tested with several merchants. This feature will achieve stable release in an upcoming deployment.
Integration Updates
- Added an explicit inventory availability check during Shopify order submission. This is in response to recent observations of Shopify allowing for out of stock items to be purchased.
🆕 Features
Dashboard Updates
- Search by orderId functionality added to the merchant dashboard Bags page.
🆕 Features
API Updates
- When a cart is submitted the order
status
will now immediately change toPROCESSING
and all additional calls to submit the cart will result in an exception until the initial request has completed. This is an expansion of our existing efforts to prevent double-submissions and the subsequent race condition errors that they can cause.
The following error message will be returned when subsequent order submission requests occur before the initial request has completed:
🆕 Features
Dashboard Updates
- Updates the offers page on the merchant dashboard for improved publishing controls.
- Updates the live and test mode toggle design on the channel dashboard.
API Updates
- Alternate text will now be present on media when the merchant has populated this value within their commerce platform.
- Added a fallback solution for the rare Shopify “Unable to reserve inventory” error during draft order submission. When Shopify returns this error Violet will now perform an additional query to Shopify to determine if this is a valid or invalid error. If the error is invalid Violet will bypass the error and re-submit the order.
🔧 Fixes
- Fixed issue where the default switch value displayed on the notification settings in the Channel dashboard was incorrectly showing the setting as switched off when it should be on.
- Fixed issue where a Shopify refund may not immediately be processed when the webhook was received and was instead processed during the next reconciliation event.
🆕 Features
- Channel users will receive emails when a connected merchant store is disabled or re-enabled.
- Channel users will receive notifications on the notifications page when a connected merchant store is disabled or re-enabled.
- Channel users can control their email notification settings related to merchant status changes from the notification settings page.
🔧 Fixes
- Fixed Stripe dashboard link issue in Violet Connect when clicking “Go to Stripe” after successful payout account setup.
🆕 Features
Dashboard Updates
- Channel users are now able to change the commission rate and commission locked values for each merchant in the merchants tab.
API Updates
- The syncing of “sale prices” can now be disabled on a per-merchant basis. When disabled, Violet will only sync the “retail price” which will be reflected on the Offer and will be used when creating carts and submitting orders.
🔧 Fixes
- Fixed issue where missing properties in the Shopify product webhook data could lead to a failed webhook. As Shopify continues to remove properties from the webhook body we will continue to expand our usage of the Shopify GraphQL API to obtain extended data as real-time product events are processed.
- Added fallback handling for merchants who have removed the store name in their external commerce platform. While very rare and not possible in most platforms, this could lead to a failed onboarding.
🆕 Features
API Updates
- Support for ongoing order reconciliation has been added to the BigCommerce integration. This process will regularly check the status of external BigCommerce orders to ensure that no order fulfillment, refund, or cancellation webhooks were unsent or missed.
🆕 Features
API Updates
- Order cancellations is now in beta and available for use by all channels. See Cancel Order.
- Commission rate change logs are now available on the API and available for use by all channels.
🆕 Features
API Updates
- Channels are now able to configure default commission rates and lock commission rates by default through the app configuration. New merchants connected to an app through Violet Connect will automatically have the app’s default commission rate and locked values applied on connection.
- Channels can pre-configure custom commission rates and commission locked values with a
channel_merchant_id
which will be applied when a merchant is sent through Violet Connect with a matchingchannel_merchant_id
query parameter. These custom values take priority over the app configuration’s default commission rate values.
🔧 Fixes
- Fixed issue where Violet was processing payout information for Stripe Standard accounts without accounting for payments not related to Violet. Payouts dashboards will no longer show data not related to Violet.
🆕 Features
API Updates
- An Address Block List has been implemented that will prevent historically fraudulent addresses from being applied to a new Violet cart. These are addresses that have been used as the shipping address with proven stolen card numbers in past Violet orders. This block list can be enabled or disabled on a per-app basis.
🔧 Fixes
- Fixed issue where automatic discounts from a
BIGCOMMERCE
merchants store were not being reflected on the Violet cart. - Fixed issue where Variants and Variant Values for
WOOCOMMERCE
sourced Offers did not always have a populateddisplay_order
property.
🆕 Features
API Updates
- (Coming Soon) Order Cancellation via Violet APIs is now in alpha testing. Reach out to learn more about this feature.
Integration Updates
- Store pickup type shipping options will now be filtered out of the available shipping methods.
🔧 Fixes
- Fixed issue where incorrect Distributions would get updated on Stripe payout events
🆕 Features
API Updates
-
✨Introducing Payment Transactions
- Carts that use Violet for payment orchestration will now expose Payment Transaction information, such as underlying payment provider and current payment state. Learn more about payment transactions here.
-
✨Introducing Direct Order Submission
- Direct order submission enables channels who calculate their own tax and shipping rates to submit fully composed orders in a single request. Learn more about direct order submission here.
Integration Updates
- Added a workaround for the new Shopify “Market has Changed” bug where Shopify would prevent international shipping addresses from being applied to any orders sourced by US merchants enrolled in the new Managed Markets program. These orders will now succeed unless the items being purchased are restricted in the shoppers country.
Dashboard Updates
- Merchants can now view, export, and see a breakdown of their payouts in the Violet Dashboard.
🔧 Fixes
- Fixed issue where new message threads on the Channel and Merchant dashboard would be stuck in an unread state.
- Fixed issue where automatic discounts in an external BigCommerce cart were not factored into the Violet cart totals when a promo code was also being applied.
- Fixed issue where modifying the quantity of an existing item in a Violet cart could fail with an exception stating that the merchants credentials were not found.
- Fixed issue where the inventory may have appeared as out of stock when a BigCommerce merchant used the parent product for tracking inventory instead of the individual variants.
🆕 Features
- Shopify free shipping discounts can now be applied to a cart before a shipping method is selected.
- Order reconciliation is now available for WooCommerce merchants. With order reconciliation, Violet will regularly check the status of the external order to ensure that no order lifecycle webhooks were unsent or not received. This feature is also currently available for Shopify and Wix merchants.
🔧 Fixes
- Fixed issue where Offer-level currencies for non-USD Wix merchants would default to USD while the Sku-level currencies correctly reflected the store currency. Now both the Offer and Sku will reflect the store currency.
- Fixed issue where WooCommerce discount amounts were not spread evenly across all line items in a WooCommerce order.
- Fixed issue where WooCommerce Relay Shipping Zone lookup could fail if the merchant used a 3rd party plugin to inject custom prices that were rule-based strings instead of numeric prices. Violet will now parse the string to find the price and will fallback gracefully if the string is too complex or contains no numeric values.
🆕 Features
- Clicking into a specific payout in the payout dashboard will open up a new view that houses important information around payout summary and a list of relevant distributions. You can also export a single report.
- Adds support for price overrides in Magento 2. Merchants must have installed the latest version of the extension,
1.2.0
or higher, to unlock this feature. - Adds notification emails when a user has not read new messages in the Channel and Merchant dashboard.
- Users can update messaging notification preferences from the Channel and Merchant dashboard settings.
- Expands the detection of the Shopify “Totals Have Changed” Draft Orders API bug. Now anytime Draft Order submission fails with an error message that contains the partial string
totals have changed
ortry again
we delete the Draft Order and instead write the Order using the Shopify Orders API. This guarantees delivery of the Order.
🔧 Fixes
- Fixed date formatting issues for payout_date_created and payout_date_settled in exported Payouts and Distributions reports.
- Fixed issue where non-US based Stripe Connect accounts migrating between Standard and Express accounts did not correctly assign service agreement type.
🆕 Features
- Added support for “New Customers Only” type Shopify discount codes. See Customer Restricted Discounts.
- Added explicit opt-out for Shopify SMS marketing.
- SFCC collection syncs will now default to the OCAPI Shop API. Upon request this can be switched to the OCAPI Data API on a per-merchant basis.
- Create Thread modal will let the user know if they are an active participant in a thread.
- Selected thread on the dashboard will persist as the user navigates around the dashboard.
- Added Offer status to the Offer sidebar in the Offers page.
🔧 Fixes
- Fixed issue where SFCC collection syncs could fail due to missing data in some RefArch products.
🆕 Features
Integration Updates
- Re-implements the usage of the Bag
SUBMITTED
status for non-cart platforms (WooCommerce, Ecwid) to prevent duplicated order submission when the Violet order submission endpoint is called multiple times in quick succession. See Duplicate Submissions.
Plugin Updates
- Magento/Adobe Commerce extension version 1.1.3 released to add remote webhook controls. This allows for Violet to remotely enable or disable the webhooks for a Magento merchant.
🆕 Features
Dashboard Updates
- Channels now have the option to include distributions in their payout reports.
- When choosing what to include as part of the payout report, channels can opt to include ALL distributions columns, a CUSTOM set of distributions columns, or NONE.
- If any distributions columns are chosen, the final report will be a downloadable ZIP containing two CSV files. One for payouts and one for distributions.
- If NONE is selected, the final report will be a downloadable CSV that is just the payout report.
🔧 Fixes
- Fixed issue where Distributions exports were missing the following columns
- Payment provider fee reversals
- Bag totals information (shipping total, tax total, discount total, etc.)
- External Order information
🆕 Features
Dashboard Updates
-
✨Introducing Messaging
-
Channels and Merchants connected through Violet Connect are now able to message each other on the Dashboard
- Support for Emojis and Rich text
- Users typing indicator
- Mark a thread as unread and come back to it later
- [Channels] Navigate to merchant connection health, bags, and offers from the messaging details pane
- [Merchants] Navigate to bags and distributions from the messaging details pane
⚠️ Restrictions
- Channel org collaborators are unable to start conversations with merchants but can be added to conversations by Channel admins
-
Integration Updates
- Can now filter Ecwid merchant catalogs by category ID upon merchant request.
🔧 Fixes
- Fixed issue where a WooCommerce Sku that was deleted after a cart was created could still be purchased at checkout.
- Fixed issue where Credential errors when onboarding a Wix merchant were showing as generic “Something went wrong” errors.
- Fixed issue with broken payout docs link on the export payouts modal
🧼 Clean Up
- Improved search behavior across pages
🆕 Features
Dashboard Updates
- Added export functionality to payouts dashboard.
- Get a complete report of your payouts in CSV format in a given date range.
- Functions the same way as distributions but with fixed columns for payouts (i.e. no column customization).
API Updates
- Added the
parent_id
property to the Collection model. This property will be populated when a child collection is synced from a SFCC merchant. For collections on any other platform, or for top level parent collections on SFCC, this property will benull
.
Integration Updates
- Added support for preferring Short Description over Long Description for WooCommerce merchants who have added their data to that field. Please contact support if you would like this enabled for one of your merchants.
🔧 Fixes
- Fixed issue where removeSkuFromCart could fail in some cases.
- Fixed issue where SKU
type
could not be updated when it changed on a merchant’s platform. - Fixed issue where Shopify and WooCommerce webhooks could sometimes get deactivated, especially by other parties in the merchant’s ecommerce platform, for example a different app or plugin. Webhooks are now re-subscribed on a schedule if they are detected to be inactive.
- Fixed issue where Shopify errors when trying to apply a shipping method were not being properly parsed and returned on the cart object.
🆕 Features
Dashboard Updates
- ✨Introducing Payouts View
- Search and View payouts, funds transfers from the PSP to your bank account.
- Available in its own tab in the left nav of the dashboard. Distributions are still accessible via a subtab within the payouts page.
Integration Updates
- Added support for using discount codes with ECWID. Discounts will automatically work for Ecwid merchants who onboarded after 04/30. Ecwid merchants who onboarded before 04/30 will need to perform the Ecwid OAuth process again to obtain the required scopes.
- Added support for Salesforce Commerce Cloud collection syncing.
🔧 Fixes
- Fixed issue where distributions exports had an incorrect date format.
- Fixed versioning issue that prevented some PrestaShop merchants from onboarding.
- Fixed issue where collection-constrained Shopify discounts with a type of
across
were not being evenly spread across entitled products.
🆕 Features
Integration Updates
- ✨Introducing Order Consolidation
- This feature will routinely examine bags in an
ACCEPTED
state and recheck their status in the external store to ensure that no order change events were missed. - This feature is initially supported for the
Wix
platform, due to their lack of webhook support. - Violet expects to add support for other platforms in the future.
- This feature will routinely examine bags in an
🔧 Fixes
- Fixed issue where collection-limited Shopify discounts could be applied in full to all entitled items instead of across all entitled items.
- Fixed issue where non-USD Wix merchants were not correctly setting the currency on the Violet Sku.
- Fixed issue where the Get Offer by ID endpoint didn’t include a value for the
default_image_url
. This resolves the issue in the Offers View on the Dashboard where clicking on an offer would make the image thumbnail disappear.
🆕 Features
API Updates
- ✨Introducing Webhook Events for Collections
- See docs for more details.
Integration Updates
- Integrated with the developer preview of the new Wix Order Payments API endpoint. This remediates the long running Wix bug that has prevented merchants from performing granular refunds on orders placed through the Wix API. Wix merchants will no longer need to fully cancel an order to initiate a refund.
- We are now able to discover WooCommerce refunds that are nested in metadata even when the order itself is not marked as being refunded by the merchant.
Distributions Updates
- When you export distributions now from both the Channel and Merchant dashboards, all amounts shown are in the main currency unit, not fractional currency unit. For example, if your currency is USD, all amounts shown are now in dollars instead of cents.
🔧 Fixes
- Fixed issue where a WooCommerce products with a single downloadable Sku was incorrectly being marked as
PHYSICAL
instead ofDIGITAL
. - Fixed issue where new merchants had a status of
Application_In_Progress
instead ofActive
.
🆕 Features
Dashboard Updates
- Distributions exports now include payout settlement dates! When exporting Distributions, you can choose to include this column to easily go between the date a Payout hits your bank account and the associated Distributions in Violet.
Integration Updates
- Integrated with the Shopify GraphQL API for product syncs. This will allow Violet to add to support for new properties that Shopify is adding to their GraphQL models but not REST models. Violet will now begin switching Shopify merchants over to using the GraphQL sync in batches as we monitor how it scales.
- Added the ability for channels to request custom scopes during merchant onboarding. These can be in addition to the default scopes, a reduced version of the default scopes, or a completely custom set of scopes, depending on each channels requirements.
🔧 Fixes
- Fixed issue where users with the finance readonly permission could begin a payout account migration.
- Fixed issue where App Name on Distributions on the Merchant dashboard were missing.
🆕 Features
Dashboard Updates
- Distributions in the Channel Dashboard can now be filtered by Date and Merchant.
- Distributions in the Merchant Dashboard can now be filtered by Date and Channel.
🧼 Clean Up
- Improvements to payout migrations in dashboard.
- Added external ids to all payout cards.
- Updated styles on payout cards and loaders.
- Dashboard links removed for past express accounts that never completed onboarding.
- Added a learn more section for our payouts docs in the payouts page.
- Better handling of finance readonly permissions for payout migrations in dashboard.
🆕 Features
Dashboard Updates
- Merchants will now receive notifications when a channel changes their commission rate.
Integration Updates
- Added support for Wix discount codes.
🔧 Fixes
- Fixed issue where Wix sample products were synced into Violet if the merchant did not remove them before connecting to Violet.
- See FAQ for more info.
- Fixed issue where some Squarespace variants were not syncing correctly.
- Fixed issue where description HTML was being filtered out for Ecwid offers.
🧼 Clean Up
- Added UI element to inform merchants that their commission rate has been locked by the channel is able to be edited.
🆕 Features
Dashboard Updates
- Users on the Merchant Dashboard can now exclude Channel distributions from exports.
- Users on the Channel Dashboard can now exclude Merchant distributions from exports.
API Updates
- Added the automatic detection and disablement of Bundled Shopify Products. This is in response to the growing adoption of the Shopify Bundles app and Shopify’s decision to block the sale of bundled products through their Order API’s at this time. For any bundled product synced into Violet, the Offer and any nested Sku’s will have a
status
value ofUNAVAILABLE
. - ⚠️ Notice of Future Breaking Change - On April 15th 2024 we will release an update that adds the
BUNDLED
enum to thetype
property on the Offer model. If your application uses enums for this property we recommend adding coverage of this enum before April 15th. Once added, the possible values will bePHYSICAL, DIGITAL, VIRTUAL, BUNDLED
. Once implemented, any Offers sourced from a Bundled Shopify Product will have atype
value ofBUNDLED
.
If you are unable to implement coverage of the BUNDLED
enum by April 15th please notify your primary contact at Violet.
🆕 Features
Dashboard Updates
- Added a toggle to the Dashboard distributions page to allow users to exclude Merchant or Channel distributions from the distributions table.
API Updates
- ✨Introducing Merchant Configuration management by Channels via API
- Enable/disable the syncing of Offer Collections.
- Enable/disable the syncing of Offer Metadata.
- Managed on a per-merchant basis.
- See API Reference.
🔧 Fixes
- Fixed issue where clicking out of the date picker in the distributions export modal did not close the date picker.
- Fixed issue where non-json webhook responses were not being displayed on the webhooks page.
- Fixed issue where a single product failing to sync would cause the entire catalog sync to fail.
- Individual product sync failures will now only impact that particular product.
- Fixed issue where webhook
remote_endpoint
+status
combinations could be duplicated for a channel. - Fixed issue where cart creation and checkout endpoints periodically failed due to a database query failure.
- Failed queries will be retried for up to 15 seconds.
- We will be monitoring this for further tuning. Please contact support if you see further
Internal Database Error
messages.
- Improved merchant health caching when a new merchant connects. Merchants who successfully completed all steps in the process show now show
COMPLETE
after they set their commission rate.- While this should cover most cases, there are still some moments when a Channel will need to click on the merchant and use the refresh button on the appropriate tab.
- See docs for more details.
🧼 Clean Up
- Added a tooltip to view long external order IDs in the Merchant Dashboard distributions.
- Added tooltips in the Dashboard distributions export modal to link to the Distributions docs.
🔜 Coming Soon
- In an upcoming release, Violet will begin auto-disabling webhooks that regularly fail.
- Please take the time to use the Channel Dashboard to help diagnose any issues you have with failing webhooks.
- See Documentation.
🆕 Features
Dashboard Updates
- ✨Introducing Stripe Account Migration for existing Merchants and Channels
- Existing Merchants and Channels can migrate away from their existing Stripe Express Account to their own Stripe Standard Account which they already use to do business elsewhere.
- See Documentation.
API Updates
- ✨Introducing Shipping Zones via Relay API
- Retrieve a Merchant’s Shipping Zones.
- Retrieve a Merchant’s Shipping Regions.
- Retrieve a Merchant’s Shipping Methods.
- See Documentation.
- See API Reference.
- ✨Introducing Price Overrides in Checkout
- This much requested feature allows you to override line item and shipping method prices during checkout.
- See Documentation.
🔧 Fixes
- Fixed issue where Refund Distributions were not being tied to the correct Payout. These should now be linked to the Payout which Stripe debits the refund from.
🆕 Features
Dashboard Updates
- ✨Introducing Real Time Merchant Notifications
- New Notifications page in Merchant Dashboard to view real time notifications.
- Get notified when a Export is complete (see below).
- More notifications to come in the future.
- ✨Introducing Merchant Distributions with Exports
- New Distributions page in Merchant Dashboard to view detailed Merchant Payout information.
- Export distributions data for a selected time frame.
- ✨Introducing Stripe Account Linking for New Channels
- New Channels can connect an existing Stripe Account to Violet to be used for payouts through the Channel Dashboard.
- See Documentation.
API Updates
- ✨Introducing Commission Rate management by Channels via API
- Set commission rate for your merchant.
- Lock commission rate preventing changes by the merchant.
- See Documentation.
- See API Reference.
🔧 Fixes
- Fixed issue where the “Store Disconnected” notification did not render the merchant name and merchant logo.
- Fixed issue where Sync Status was incorrectly showing as failed for some merchants.
🆕 Features
Dashboard Updates
- Merchant distributions are now included in the distributions export.
🔧 Fixes
- Fixed issue where some merchant’s product syncs would get locked and never update even when they were scheduled to update periodically.
- Fixed issue where distributions exports were not including the end date data in the report. Ex. Feb 16-19 will now correctly include data for the 19th.
🧼 Clean Up
- Added missing icons for Merchants Tab.
- Updated language in the Scopes Tab of the Merchant Detail View in the Merchant Tab to clarify what is wrong and what needs fixing when a scope is missing.
- Updated Stripe brand assets across the dashboard.
🆕 Features
Dashboard Updates
- ✨Introducing Real Time Notifications
- New Notifications page in Channel Dashboard to view real time notifications.
- Get notified when a Merchant connects or disconnects from your channel.
- Get notified when a Merchant updates their commission rate.
- Get notified when a Export is complete (see below).
- ✨Introducing Channel Distributions with Exports
- New Distributions page in Channel Dashboard to view detailed Channel Payout information.
- Export distributions data for a selected time frame.
- See Documentation
- ✨Introducing Stripe Account Linking for New Merchants
- Merchants can connect an existing Stripe Account to Violet to be used for payouts through both Violet Connect and the Merchant Dashboard.
- See Documentation.
API Updates
- ✨Introducing Collections support
- Support for syncing merchant product collections.
- See Documentation.
- See API Reference.
Integrations Updates
- Added support for Wix images that surpass the max size, they will be automatically scaled down to the maximum allowed.
🔧 Fixes
- Fixed issue where wallet based carts created without any SKUs would not have a
payment_intent_secret
value once a SKU was added and the cart was priced.- For all wallet based carts, as soon as a cart with a total that is greater than 0 is priced, the
payment_intent_secret
value will be returned on the response. A cart is priced either by passing?price_cart=true
, calling the Price Cart endpoint or via endpoints that auto price carts like Set Shipping Methods. - For a wallet based carts that never have a total greater than 0, i.e. promotions or gifts, a
payment_intent_secret
will never be generated.
- For all wallet based carts, as soon as a cart with a total that is greater than 0 is priced, the
🧼 Clean Up
- Updated Navbar UI in Channel and Merchant Dashboard.
🆕 Features
Order Updates
- Include Carts in Order Search Responses.
- Carts are not included by default, add
exclude_in_progress=false
to include them. - Filter for only Carts by adding
{"bag_status": "IN_PROGRESS"}
to the query. - See API Reference.
- Carts are not included by default, add
- The Set Shipping Methods endpoint will now always return a fully priced cart in the response, regardless of the merchant’s platform.
Integrations Updates
- Migrated from Shopify API version
2023-04
to the latest stable version2024-01
. This will address warning emails sent out by Shopify indicating that Violet is using deprecated APIs.
🔧 Fixes
- Fixed issue where Merchant Dashboard did not update commission rate when changed from 0%.
🧼 Clean Up
- Cache redundant network requests in Channel Dashboard.
🆕 Features
Integrations Updates
- Introduced Merchant Configuration to better allow for the enablement of unique merchant requirements.
- The syncing of product metafields can now be enabled for Shopify merchant’s who require it.
- The use of custom shipping rates can now be disabled for Shopify merchants who are no longer impacted by Shopify’s $0 shipping bug and/or local pickup bug.
- The products that Violet syncs can now optionally be limited to only those in a collection defined by a Shopify merchant.
🔧 Fixes
- Fixed issue where Shopify promo codes that were applied before shipping methods were selected did not influence shipping methods that had price constraints. ex. A coupon that brings a total below $50 will now disqualify the order from the free shipping option for > $50 orders.
- Fixed issue where shipping methods were not being converted correctly back to a merchant’s currency in multi-currency bags.
- Fixed issue where non-USD currencies were not being converted correctly when displayed on the offer side panel in the channel dashboard and the matching view of the merchant dashboard.
- Fixed issue where the
remorsePeriodEnds
property on the bag did not reflect 30 days from the date the checkout was actually submitted.
🆕 Features
- Added webhook event cancel endpoint. See API Reference.
🔧 Fixes
- Fixed issue where the pagable property was null in certain endpoints.
- Fixed issue where wallet based orders were not being charged for apps with payment bypassing enabled.
🆕 Features
- Beta release of the new Estimate Cart endpoint. See API Reference.
🔧 Fixes
- Fixed issue where bags were not being deleted off of a cart when the last sku was deleted for certain ecom platforms.
- Fixed issue where creating a cart with a foreign currency and an unavailable sku would result in an error.
🔧 Fixes
- Fixed issue where
page_number
property was 0 based instead of 1 based for paged endpoints. - Fixed issue where Channel Dashboard would crash when adding a new app in the
/overview
or/merchants
page.
🧼 Clean Up
- Added missing demo tags to channel orders table.
- Updated examples for checkout APIs for easier use.
🆕 Features
Dashboard Updates
- Added sorting to orders pages in the dashboard.
- Added display merchant email button in channel connection page.
- Email will be obfuscated a***r@gmail.com for PII.
- Added support for custom ports in Violet Connect store url form.
API Updates
- Added documentation for endpoint allowing Channels to disconnect a Merchant from their App.
- Added support for Shopify discount codes with country entitlements.
- Added support for Webhook Event search by entity ids.
- Added endpoints for resending Webhook Events.
🔧 Fixes
- Fixed issue where Wix image display orders were not being correctly calculated.
- Fixed issue where addresses were not being applied to all bags in multi-merchant checkouts under certain conditions.
- Fixed issue where double submitting an order would end up canceling it in certain conditions.
- Fixed issue where Wix refunds were not being processed due to bug introduced by Wix. This fix will be temporary until the bug is fixed in Wix’s code.
- Fixed issue where Shopify bundles were breaking checkout. Currently Shopify Bundles are not supported by the Shopify checkout API and so those products are disabled in Violet.
- Fixed issue where some non-USD transactions were not correctly persisting exchange rates, impacting payouts and analytics. Analytics will begin correctly tabulating from today onward.
- Fixed issue where Bag OrderSkus statuses were not correctly updated on partial refunds.
- Fixed issue where order totals were not visible from an overlap with the DevRev widget.
🧼 Clean Up
- Updated sorting styling across pages with sortable data.
- Channel login page now includes a link to the signup page.
- Channel Dashboard users without a valid authentication token are now redirected to the sign-up page.
- Relocated the link to the Channel login page for enhanced visibility in the signup page.
🆕 Features
Channel Dashboard Updates
- ✨Introducing Analytics Overview Page
- Users can check out GOV, commissions, and merchant data across various timelines.
🔧 Fixes
- Fixed issue where
PARTIALLY_REFUNDED
bags were not updated toREFUNDED
when subsequent refunds matched total amount. - Fixed issue where some “Default Title” Shopify variants were not being properly ignored.
- Fixed issue where long order error messages were not being persisted.
- Fixed issue where BigCommerce webhooks were being incorrectly created.
- Fixed issue where Shopify email validation errors weren’t translating to order errors in some situations.
🧼 Clean Up
- Users can now open and close the bag detail view without losing their scroll position on the orders table.
🆕 Features
Merchant Dashboard Updates
- Added ability to filter by Channel and Date in the Orders View.
- Added ability to search by External Id in Orders View.
- Added ability to review selected products using Review mode in Products View.
- Select the products you wish to review.
- Click on “x Selected” and click “Review”.
✨Introducing Violet Support Widget
- Contact support straight from your dashboard.
- View status of your tickets.
🔧 Fixes
- Fixed issue where some Wix Orders were not able to be completed due to a serialization issue.
- Fixed issue where BigCommerce merchants were failing to register webhooks during onboarding.
🧼 Clean Up
- Removed search by Violet Id from Merchant Dashboard.
🆕 Features
Connection Health Updates
- Added support for
Merchant_Complete
webhook. This webhook will fire when a previously unhealthy merchant becomes healthy.- Merchant health is evaluated at minimum once every 24 hours.
- Both
Merchant_Complete
and the existingMerchant_Needs_Attention
will now correctly only fire once when a merchant’s overall health state changes. - Both webhooks will now correctly take into account their overall health state as it relates specifically to each app they are connected to and will only fire for the appropriate apps.
- Added support to Simulate Webhook for both
Merchant_Complete
andMerchant_Needs_Attention
Integrations Updates
- Adds post order failure reconciliation to the Shopify integration. When Shopify returns a failure response during order submission we will now query recent orders and attempt to discover if the order was successfully submitted before Shopify returned a failure response.
Dashboard Updates
- Removed the automated lock placed on merchants who onboard, delete their account quickly, then attempt to onboard again.
- ✨Introducing Webhook Management on Channel dashboard
- View all your latest webhook events right on the Channel dashboard.
- Use filters or search by event ID to narrow down your search for the right webhook event.
- View all webhook endpoints subscribed by the Channel app along with their event count and error rates.
- Added the ability to filter orders by Merchant as well as Date in Channel Dashboard.
- Added the ability to filter products by Publishing Status as well as Availability in Merchant Dashboard.
- Added the ability to search, filter, and sort to the Merchants page in Channel Dashboard.
- Enabled beta offers search for offers page at
/offers
for Channel Dashboard and/products
for Merchant Dashboard.- This will greatly enhance the responsiveness of these pages.
- As a result, sort functionality on these pages has been disabled temporarily until sorting is better supported in the beta search.
Order Updates
- Added
external_id
,before_date_created
&after_date_created
filters to Bag Search endpoint.
🔧 Fixes
- Fixed issue where Channel commission payout calculation was not taking discounts into consideration.
- Fixed issue where re-syncing a single Shopify product that has been deleted in Shopify would return a not found error. It now marks the offer as archived, as intended.
- Fixed issue where Channel specific commission rates were not displayed on the app cards on the merchant dashboard overview page.
- Fixed issue where Channel specific commission rates were not displayed on the merchant connection panel in the channel dashboard page.
- Fixed issue where the merchant filter menu in the channel orders table was missing some merchants.
- Fixed issue where the channel orders table was incorrectly sorted and missing some entries.
- Fixed issue where re-syncing a single product didn’t properly update for some ecom platforms.
- Fixed issue where creating a cart where the only sku for a merchant was out of stock lead to orphaned bags and made the cart unable to complete checkout.
- Fixed issue where the Channel orders page would fire off duplicate network requests.
- Fixed issue where changing the commission rate on a merchant dashboard app card would cause other app cards to display the default commission rate instead of their overridden values.
🧼 Clean Up
- Updates to Merchant Dashboard Products table: reorganized columns, add Brand and Image columns, and removed Product ID column.
- Updates to Channel Dashboard Orders table: reorganized columns, add Merchant name and Date columns, and removed Order ID and Merchant ID columns.
- Added Date field to Bag Detail pane in Channel Dashboard Orders page.
- Re-enabled ability to filter offers by Inventory in Channel Dashboard.
🆕 Features
Connection Health Updates
- New Search Connection Health endpoint. See API Reference.
- Channels that do not use Violet Commissions (skipping the commissions screen in Violet Connect) will now always show their commission status as green in the Merchants tab on the Violet Channel Dashboard.
- Added scopes monitoring for ECWID merchants.
2023.10.23
🆕 Features
Channel Dashboard Updates
- When loading the dashboard, the live/test toggle will automatically switch to the appropriate environment based on a Channel’s live/not-live status.
🔧 Fixes
- Fixed issue where Shopify free shipping discounts were improperly being deducted from the subtotal. They are now deducted from the shipping total as intended.
2023.10.17
🆕 Features
Webhook Updates
- New Webhook Event Search endpoint!
- Added ability to retrieve the headers sent in a webhook event. See API Reference
Shopify Integration
- Expanded Shopify post-order reconciliation
- A completed Shopify order is now more closely analyzed after submission to determine if any information is missing.
- If it is determined that data is missing we will attempt to automatically update the order to reconcile the missing data.
🔧 Fixes
- Fixed issue where Get Merchant by ID and Search Merchant endpoints were not loading
commission_rate
data correctly. - Fixed issue where creating a
wallet_based
order withUNAVAILABLE
SKUs did not surface correct error responses. - Fixed issue where offers filter would crash when attempting to filter by merchant.
🆕 Features
Channel Offer View Updates
- Order search endpoint improved to allow search by
bag_id
,merchant_id
,bag_status
,before_date
andafter_date
. See API Reference. - Added option to filter by subscription status on offers page.
- Added subscription status to offers table.
- Added ability to select multiple offers for un/subscription on offers page.
- Added demo tags to demo offers and merchant connections in test mode.
🔧 Fixes
- Fixed issue where digital-only bags would crash the order page bag view in channel dashboard.
- Fixed issue where Shopify discounts could not be applied when other discounts were in an
ERROR
/EXPIRED
/INVALID
state.
🧼 Clean Up
- In the Merchant Dashboard, “Offers” and “Merchants” pages now redirect to the “Overview” page.
- Adjusted overflow on Order panel and Bag details dropdown.
🆕 Features
New Integration: CommerceTools
- Adds support for merchants on the CommerceTools platform.
New Integration: Wix
- Adds support for merchants on the Wix platform.
Improved connection health monitoring
- Added BigCommerce plan monitoring.
- Added WooCommerce scopes monitoring.
- Added Magento scopes monitoring.
🔧 Fixes
- Fixed issue where shopify discounts were not correctly surfaced for Sandbox merchants.
- Fixed issue where empty offer descriptions would cause a crash in the channel dashboard offer panel.
- Fixed issue where a user who already had an org could still navigate to
/create-org
on the channel dashboard. - Fixed issue for woocommerce stores whose IDs are larger than int.max.
- Fix issue where Product Tags from WooCommerce stores weren’t flowing through to Violet Offers.
- Fixed issue where new channel account creation could fail in some cases.
🆕 Features
- Added support for Product Collection type Shopify Discounts.
- Added ability to filter offers by availability in tandem with filtering by merchant in channel dashboard.
- Added a total offer count in channel dashboard offers view.
🔧 Fixes
- Fixed issue where the snack bar message incorrectly displayed “published” when unpublishing from offers in the Merchant Dashboard.
- Fixed issue where
channel.violet.io
did not redirect to the home page correctly.
🧼 Clean Up
- The Channel Dashboard signup form now includes Company Function and Referral Channel fields, while the Country field has been removed.
- The Email Address and Organization Slug fields have been disabled in the Channel Dashboard Org Info form.
- Improved styling of Dashboard onboarding pages when the window width is reduced.
🔧 Fixes
- Fixed issue where new users were directed to create an org instead of accepting an invite to an existing org.
- Fixed issue where double clicking accept on an org invitation caused a duplicate user entry.
- Fixed routing behavior on account signup when using the browser back button.
🧼 Clean Up
- Improved communication for merchant scopes status in Dashboard.
- Improved styling in the Dashboard Merchant connection panel when window width is reduced.
- Deleted Company Name field from the Org Info form in Dashboard.
- Add rate limiting to Dashboard Channel login attempts which can be reset by going through the forgot password flow.
- Fixed scrolling to view the entire form when window height is shortened in Dashboard onboarding pages.
- Cleaned up alignment issues on tables when content is scrollable.
🆕 Features
Active Monitoring for Shopify Store App Scopes
- Violet now actively monitors Shopify store app scope changes that could cause a checkout to fail.
- When store app scopes are missing a
MERCHANT_NEEDS_ATTENTION
webhook event is now triggered.
🔧 Fixes
- Fixed issue that was leaving offers disabled during catalog resync.
- Fixed issue that allowed for expired or not started discounts to be used with Shopify carts.
- Fixed issue where previous offer image would be cropped by the loader when loading subsequent media.
- Fixed issue where Commission Rate was showing Needs Attention even though it had been correctly set.
- Fixed issue where adding different credentials for a store in Violet Connect didn’t immediately take effect, causing orders to fail for a number of minutes afterward.
- Fixed issue for mismatched values for order ID and merchant ID columns on channel orders page.
🧼 Clean Up
- Granular calls to Connection Health will now update the parent cache for that merchantId.
🔧 Fixes
- Fixed issue where duplicate orders were placed when e-commerce platforms return certain 500 series response codes.
- Fixed issue where some Shopify merchants did not finish syncing their catalogs.
- Fixed issue where a Shopify’s merchant’s catalog was marked
disabled_available
shortly after initially going through Violet Connect. - Fixed issue where the sub navigation menu remained open when clicking outside of it.
🧼 Clean Up
- Updated External Payments information in settings/payments page and External Payments modal on Channel Dashboard.
- Fixed typos on country request list in Violet Connect.
🆕 Features
Actively Monitoring for Shopify Store Plans
- Violet now actively monitors Shopify plan changes that can affect the ability to complete a purchase.
- When a Shopify store moves to an inactive plan (eg. dormant or frozen), the corresponding merchant and its offers on Violet are automatically disabled. Similarly, when the store changes to an active plan (eg. basic), the corresponding merchant on Violet is automatically enabled and it’s offers are resynced.
- This feature ensures accurate synchronization between Shopify and Violet, maintaining data integrity for the operation of your application.
Merchant Filter
- You can now filter your offers more intuitively with the new merchant filter on the channel dashboard offers page.
✨ Shared Access to your Violet Dashboard [BETA]
- Add team members to your Organization in the Violet Channel dashboard.
- Invite collaborators to your org to share management of apps and payments.
- Different features are gated based on the permissions assigned to collaborators.
- This was a large feature and may have a few things to iron out. Please let us know if you find something that could use a bit more polish.
🔧 Fixes
- Fixed issue when wallet based cart was submitted with guest customer causing Shopify to fail.
- Improves parsing and handling of Shopify API error messages when a merchants store has been shut down or disabled by Shopify.
- Fixed issue where pricing a cart while applying an invalid discount code resulted in an API error.
- Fixed issue preventing carts with only digital items from checking out when no shipping address was provided.
🧼 Clean Up
- Removed distracting UI from Login and Account Settings.
- Removed “Company Name” field from the Edit App Info Dialog.
- Improved UX for inputs and dropdowns across the dashboard.
🆕 Features
Webhook Simulation Enhancements
MERCHANT_ENABLED
andMERCHANT_DISABLED
webhooks now supported.- Further details can be found in our Webhook Documentation and Simulating Webhooks Documentation.
✨ Relay [Alpha] has been released with support for Shopify, BigCommerce, and WooCommerce.
- If you’re wanting to send and receive data in a more streamlined fashion, Relay might be perfect for you. Reach out to support@violet.io to get access.
- You can read more about how to try out the Relay API here.
Sign up page update
- The Channel dashboard signup page now has additional information for channels and merchants.
Let’s Chat button
- “Let’s Chat” button added to Channel dashboard nav bar for channels to get in contact with our marketing/sales team.
🔧 Fixes
- Fixed issue when invalid discounts are added to cart causing a concurrency error.
- Fixed issue where merchant explore panel last items were cut off in dashboard.
- Update docs to call out that offer search with beta flag has incompatible search criteria.
sort_by
andsort_direction
are not supported.
🧼 Clean Up
- Improved scrolling behavior across offers, orders, and merchants tables in dashboard.
🔧 Fixes
- Fixed issue where non live-enabled apps could not see connected sandbox merchants or explore merchant data.
🔧 Fixes
- Fixed bug in Merchant Explore view when an is app not live enabled.
- Fixed issue where the code verification flow was not consistent.
🆕 Features
Merchant Search Endpoint Enhancements
- New functionality added to the merchant search endpoint, allowing sorting by
sort_by
andsort_direction
parameters in the request body. - This feature provides greater flexibility and precision in locating the desired merchant information.
- For detailed information, please consult our API Documentation.
Webhook Monitoring for Shopify App Uninstallation
- Violet now actively monitors Shopify app uninstallation events.
- When a Shopify app is uninstalled, the corresponding merchant on Violet is automatically disabled.
- This feature ensures accurate synchronization between Shopify and Violet, maintaining data integrity.
New Webhook Events: MERCHANT_ENABLED
& MERCHANT_DISABLED
- Introducing two new webhook events:
MERCHANT_ENABLED
andMERCHANT_DISABLED
. - These events notify subscribed channels when a merchant is enabled or disabled on Violet; for example: because of a Shopify app unistallation.
- Stay updated on merchant status changes by utilizing these informative webhook events.
- Further details can be found in our Webhook Documentation.
Improved Media Handling on Self-Hosted Commerce Platforms
- All media content on self-hosted commerce platforms will now be seamlessly uploaded to a Violet-managed Content Delivery Network (CDN) during product synchronization.
- This enhancement aims to enhance media loading performance on self-hosted stores and allows for dynamic media transformations.
- More information on this update can be found in our Media Transformation Documentation.
🔧 Fixes
- Fixed
publishing_status
on Offer Search when using beta mode to be correctly filtered against.
🧼 Clean Up
Enhanced Security for User Verification Flows
- Security enhancements have been implemented for the user verification processes within the dashboard.
- These improvements bolster the security of user accounts and interactions.
Streamlined Merchant Login Code Verification
- The previously used code verification iframe in the merchant login process has been replaced with a native code verification page.
- This change enhances the user experience and provides a smoother login process.
Improved Error Handling for Channel Forgot Password
- Error handling for the Channel forgot password functionality has been refined.
- Users will now receive clearer error notifications through a user-friendly snackbar interface.
Was this page helpful?