Skip to main content

Changelog

Traide Changelog

We regularly update our product and API while providing detailed notes on each release. We first release to staging, then to production about a week later. Learn more about our release process.

: Staging

: Production

✨ New

Seller mgmt

Seller deletion API​

Added new mutations for deleting sellers individually or in bulk:

  • sellerDelete — Delete a single seller with automatic data handling
  • sellerBulkDelete — Delete multiple sellers at once
  • Seller.deletionPlan — Preview what will happen before deleting a seller, including which data will be transferred or removed

These mutations provide marketplace operators with more control over seller lifecycle management.

Webhooks

SELLER_DELETED webhook event​

Added a new SELLER_DELETED webhook event that fires whenever a seller is removed from the marketplace, allowing integrations to stay synchronized with seller changes.

: Staging

: Production

💎 Changed

Performance

Performance improvements​

Made several performance improvements across the platform:

  • Bulk product creation is now significantly faster when working with custom fields, processing entire batches at once instead of one at a time.
  • Repeated product import operations now intelligently skip unchanged data, reducing processing time.

✨ New

Orders

Voucher code tracking on orders​

Marketplace orders now record the specific voucher code that was redeemed, making it easier to track promotional code usage and reconcile discount applications.

🪲 Fixed

Attributes

Fixed an issue where filtering products by plain-text attributes would not match all products containing the specified text.

Attributes

Improved error messages when custom field operations fail, providing clearer information about which product or variant caused the issue and why.

Orders

Fixed an issue where voucher codes were not being properly recorded when creating draft orders through the API.

: Staging

: Production

💎 Changed

Performance

Performance improvements​

Made several performance improvements to bulk product creation:

  • Re-importing unchanged product rows now skips unnecessary attribute writes, significantly reducing processing time.
  • Bulk product creation now reads custom fields and collections once per batch instead of once per row, improving efficiency for large imports.

: Staging

: Production

✨ New

Tenants

Removed public signup routes​

Removed the public signup routes and SSO signup endpoints (/sso and /tenant/sso/create), simplifying the authentication flow for marketplace operators.

Tenants

Removed countries endpoint​

Removed the /auth/countries route, which was previously used only during the signup process.

💎 Changed

Performance

Performance improvements​

Made several performance improvements across the platform:

  • Seller queries are now faster when retrieving held seller ownership information.
  • Bulk product creation is significantly more efficient, reading product types and categories once per batch.
  • Bulk product creation now uses an indexed lookup for external product keys, improving speed.
  • Bulk product creation pre-loads existing products when re-sending a batch, reducing database queries.
  • Bulk product creation processes read-ahead data in smaller chunks for better memory efficiency.
  • Discount queries are more efficient, loading sale and voucher relations once instead of repeatedly.

🪲 Fixed

Products

Fixed issues with product ID validation to ensure only valid numeric identifiers are accepted.

Tenants

Fixed an issue where the Webflow signup timestamp could fail validation when processing certain numeric values.

Tenants

Fixed an issue where manual provisioning would incorrectly start a trial period without being explicitly requested.

API

Fixed several issues with ID validation across GraphQL queries and mutations to ensure all identifiers are properly validated before processing.

API

Fixed an issue where catalogue write operations could succeed partially instead of being atomic (all or none).

Discounts

Fixed permission enforcement for voucher codes and relations to ensure MANAGE_DISCOUNTS permission is properly required.

API

Fixed an issue where soft-deleted many-to-many relations were not properly tracked in certain validation scenarios.

: Staging

: Production

✨ New

Customer mgmt

Session management with refresh token rotation​

Implemented refresh token rotation for the tokenRefresh mutation. Active user sessions now automatically extend their validity when used, providing a smoother and more secure authentication experience.

Products

Metadata support for bulk product operations​

Added the ability to set metadata and privateMetadata when using productBulkCreate and productVariantBulkCreate, giving you more flexibility to store custom data during bulk operations.

Products

Enhanced warning reporting for bulk uploads​

Product warnings are now reported with their corresponding row index in productBulkCreate, making it easier to identify and fix issues in large imports.

API

Request queue monitoring​

Added logging for each worker's request queue, improving visibility into server performance and helping identify potential bottlenecks.

💎 Changed

Performance

Performance improvements​

Made several performance improvements across the platform:

  • Bulk product uploads are significantly faster by eliminating redundant attribute value lookups.
  • Re-uploading existing products no longer reads seller, type, and rate data for every row.
  • Product warning checks now read a row's attributes only once during bulk operations.
  • Attribute saves are more efficient by reading assignments in a single optimized query.
  • Bulk product deletions now announce changes in batches, reducing overhead.
  • Collection events are serialized in batches, including owner data.
  • Plugin payloads for bulk mutations are now serialized in a single batch operation.

🪲 Fixed

Emails

Email and invoice logos now correctly use the tenant's theme settings instead of falling back to defaults.

Customer mgmt

Fixed several issues with app principal authentication:

  • The staffCreate mutation now correctly recognizes when an app is making the request.
  • Account mutations now properly identify app principals across all operations.
  • Customer events now correctly record when a staff change was made by an app.
Attributes

Fixed multiple issues with attribute handling:

  • Attribute value ownership is now determined per attribute and slug, preventing conflicts.
  • Numeric attributes with no usable value no longer store 0.00 as a default.
  • Product attribute rows are now properly deleted when the product is removed.
  • Legacy numeric values without decimal points are automatically corrected.
Products

Fixed numerous issues with product mutations:

  • The productVariantBulkCreate mutation now correctly applies attributes and dimensions during upsert operations.
  • Variant mutations now properly apply SEO, publication, and currency inputs that were previously ignored.
  • The productBulkCreate mutation now respects the locked type when updating existing products.
  • Product upserts via productBulkCreate now apply all the same fields as productUpdate.
  • Product slug generation now includes retry logic when a slug is taken, and uses prefix-based lookups.
  • Failed productCreate or productUpdate operations now correctly roll back all changes.
  • The productUpdate mutation now properly applies SEO settings.
  • Product creation and bulk operations now correctly execute under the app's identity.
  • Image URLs that cannot be fetched are now properly reported as caller errors.
  • The productBulkCreate mutation now ensures one row per product to prevent duplicates.
  • Images fetched from URLs are now processed in the background for better performance.
  • Untyped fetched images are now automatically typed based on their content.
  • Long image URLs now attach successfully and clear any previous warnings.
  • Video URLs that cannot be fetched are properly reported as errors.
  • The productVideoBulkCreate mutation now reports row-level errors.
  • Media keys now correctly match on the product level.
  • Video uploads now follow the same seller rules as images.
  • Bad ports in image URLs now record warnings correctly.
  • CSV imports now properly handle fetched images.
  • Re-uploading the same image key no longer triggers unnecessary fetches.
  • CSV rows now correctly link to their variants.
  • Media write operations now verify the caller belongs to the product's seller.
  • Malformed reorder IDs are now properly rejected.
  • Media reordering now prevents using IDs from different media types or duplicate IDs.
API

Fixed several infrastructure issues:

  • The queue monitor now starts reliably and cannot fail application boot.
  • Failing queue samples now log errors only once to prevent log spam.
  • Tracing setup errors no longer prevent application startup.
  • Log handlers that raise exceptions cannot crash the queue monitor.
  • Guard blocks now properly contain all exceptions.
  • The saturation monitor now survives bad sampling attempts.
API

Fixed three migrations that depend on django_celery_beat, ensuring clean database initialization when migrating from an empty database.

API

Fixed an issue where soft-delete bulk creation operations now correctly insert all items from generators.

: Staging

: Production

✨ New

Seller mgmt

Agreement awaiting decision​

Sellers can now view agreements that are awaiting their decision directly through the API, making it easier to track and manage pending marketplace agreements.

🪲 Fixed

Payouts

Fixed an issue where sellers linked to Trolley or PayPal payout accounts would incorrectly see their payout status as "Not active" after reconnecting their accounts.

Payouts

Improved how payout status is determined for Trolley and PayPal accounts to ensure more accurate status reporting across the platform.

Customer mgmt

Fixed an issue where upgrading staff members or sending staff invitations could unintentionally create seller accounts.

Customer mgmt

The staffCreate mutation now properly validates that the requestor has access to the specified seller before creating the staff account.

API

Fixed an issue where draft payout summary requests were not being routed to the correct data loader, which could cause incorrect or missing data.

: Staging

: Production

✨ New

Products

Automatic image optimization​

Product images are now automatically normalized and optimized during upload, ensuring consistent quality and faster load times across the marketplace.

💎 Changed

Performance

Performance improvements​

Made several performance improvements across the platform:

  • Product listings load significantly faster when checking availability, dimensions, and variant options across multiple products.

🪲 Fixed

Seller mgmt

Fixed an issue where re-assigning an already signed agreement to a seller would create unnecessary duplicate records.

Seller mgmt

Fixed an issue that prevented sellers from signing a new agreement version in advance while their current agreement was still active.

: Staging

: Production

🪲 Fixed

Attributes

Fixed an issue where attribute visibility checks and queries could return incorrect results for app-based authentication.

Attributes

Improved the performance of attribute-related queries by routing them through optimized data loading paths.

API

Fixed an issue where page-related queries could fail or return incorrect results when accessed via app authentication.

Products

Fixed an issue where collection product queries could return incorrect results for app-based authentication.

Seller mgmt

Fixed several issues related to seller ownership and permissions:

  • Seller-scoped data queries now correctly return results for all sellers a user has access to, not just the default seller.
  • Ticket scanning now correctly works across all sellers a scanner belongs to.
  • Seller staff can now create event pools under any seller they belong to.
  • Entitlement-related queries now properly respect app authentication contexts.
  • Scan operations now require explicit scope specification for improved security.
Products

Fixed an issue where missing product thumbnails could cause display errors. The system now falls back to a placeholder image when a thumbnail is unavailable.

Products

Fixed an issue where creating a product variant with an external key that's already in use by another product would incorrectly succeed. The system now properly prevents duplicate external keys across products.

Products

Fixed an issue where product images in AVIF format could not generate thumbnail renditions. AVIF images are now fully supported for image processing.

: Staging

: Production

✨ New

Customer mgmt

Re-send account confirmation emails​

Added the accountRequestConfirmation mutation to allow users to request a new confirmation email if the original was lost or expired, improving the account activation experience.

Products

Product reviews foundation​

Introduced a provider-agnostic reviews system with support for Bazaarvoice integration. Products now expose a reviewSummary field in the GraphQL API, providing access to aggregated review data and ratings.

💎 Changed

Integrations

App-level seller associations​

Apps can now be associated with specific sellers, providing parity with user-level seller relationships and enabling more granular access control for integrations.

🪲 Fixed

Seller mgmt

Fixed several permission and data scoping issues affecting seller management:

  • Seller write permissions now correctly apply across all sellers a user belongs to, not just their default seller.
  • Attribute value visibility is now properly scoped by seller membership.
  • Document and product write permissions are correctly enforced for multi-seller users.
  • Product images are now correctly attributed to their parent objects.
  • Seller staff can now view events for their own seller.
  • Users with access to multiple sellers no longer encounter permission errors in edge cases.
  • Policy visibility now respects seller membership instead of defaulting to a single seller.
  • Attribute queries now properly scope results by seller membership.
Orders
  • Fixed an issue where bulk deletion of draft orders could fail to clean up related data.
  • Improved the efficiency of content type lookups when processing orders.
Products

Fixed an issue where rejected product image uploads would fail silently instead of returning an error message.

API
  • Fixed the --tenant-id command-line argument to correctly accept UUID values.
  • CDN URLs are now properly derived from the MEDIA_CDN_URL configuration instead of using hardcoded values.

💎 Changed

Performance

Performance improvements​

Made several performance improvements to the testing infrastructure, resulting in faster test execution and more efficient use of system resources.

: Staging

: Production

✨ New

Orders

Filter orders by seller​

Added the ability to filter marketplace orders by seller, making it easier to view and manage orders associated with specific sellers.

Products

Multi-seller product access​

Users who belong to multiple sellers can now view and manage products across all their associated seller accounts, streamlining workflows for marketplace operators managing multiple storefronts.

Analytics

Multi-seller analytics and insights​

Analytics and insights data is now accessible across all sellers associated with your account, providing a comprehensive view of performance across multiple storefronts.

Payouts

Multi-seller payout visibility​

Users can now view payout information for all sellers they manage, simplifying financial tracking and reconciliation across multiple seller accounts.

🪲 Fixed

Orders

Fixed validation issues when filtering orders by seller that could result in incorrect product scoping in certain scenarios.

Was this page helpful?