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

Products

Backorder support

Added comprehensive backorder handling throughout the platform:

  • Products now respect out-of-stock thresholds when determining availability.
  • Checkout completion accounts for backorders, allowing orders to be placed even when inventory levels are below the threshold.
  • Order line allocation properly handles backorder scenarios during order fulfillment.
Orders

Purchase order numbers

Added support for purchase order (PO) numbers on marketplace orders, making it easier to track B2B transactions and match orders to external procurement systems.

API

Subscription queries and models

Introduced initial subscription management capabilities, including new data models, queries, and filtering options for subscription-based products and services.

🪲 Fixed

Orders

Fixed an issue where searching orders by customer company name would not return correct results.

Tax

Resolved performance issues with AvaTax integration that could cause slow tax calculations during checkout.

Orders

Fixed an issue where draft marketplace orders would not properly update addresses when customer information changed.

Products

Fixed duplicate variant attributes being created during bulk operations, improving data consistency.

Orders

Fixed an issue where stock events were not being properly recorded during order cancellation.

Orders

Fixed invoice logo display to only show when explicitly configured.

🚫 Deprecated

API

Deprecated barcode-related queries. These will be removed in a future release.

: Staging

: Production

✨ New

Orders

Apply vouchers to draft and quote orders

Added the ability to apply discount vouchers to draft orders and quote orders, providing more flexibility in managing promotional offers before order completion.

Products

Out-of-stock threshold management

Added support for setting and updating out-of-stock thresholds on product variants and warehouse stocks, allowing better control over inventory availability notifications.

🪲 Fixed

Orders

Fixed an issue where searching for orders by customer name in the seller order list would not return accurate results when searching for both first and last name together.

Orders

Fixed an issue where shipping taxes were not being properly saved for seller orders, which could result in incorrect tax calculations.

🪲 Fixed

Seller mgmt

Fixed an issue preventing seller profile updates when no seller agreement was attached to the account.

🪲 Fixed

API

Fixed an issue where date search filters in GraphQL queries would not respect the marketplace's configured timezone, potentially returning incorrect results for date-based queries.

: Staging

: Production

🪲 Fixed

Orders

Fixed an issue where line totals were not recalculating correctly when updating line item quantities in checkout or orders.

: Staging

: Production

✨ New

Webhooks

New webhooks

Added the following webhook event types:

  • category_deleted
  • category_updated
  • collection_created
  • collection_deleted
  • collection_updated
  • price_book_created
  • price_book_updated
  • product_deleted
  • refund_created
  • refund_deleted
  • refund_updated
  • stock_deleted
  • variant_deleted
  • warehouse_created
  • warehouse_deleted
  • warehouse_updated

Learn more ->

Integrations

Sync prices with Shopify

Added a new setting to the Shopify app, is_product_price_sync_enabled, that updates Nautical product prices when they are updated in Shopify. Note that this is a one-way sync, with Shopify serving as the source of truth for pricing.

Settings

Marketplace timezone

Added the timezone field to the MarketplaceConfiguration model, which accepts the IANA timezone name. This field is now honored in queries for the insights APIs. We will be honoring it in other timezone fields in a future release.

💎 Changed

Order Lines

We are now storing the total price for each line item as returned from the tax-engine, eliminating several tax-related rounding errors.

Nautical Orders

The marketplace order can now be accessed as part of payment queries through a new nautical_order field on the Payment type

Draft Orders

We made several performance improvements around draft order APIs when the order contains a high number of line items.

Orders

The orders and nauticalOrders queries have a new filter to query by company name.

Orders
Breaking change in decline fulfillments API

The orderDeclineFulfillment mutation now requires the quantity to be listed with the associated warehouse via a new stocks field. This allows the declined items to be deallocated back to the correct warehouse.

Example mutation
mutation {
orderDeclineFulfillment(
order: "T3JkZXI6MTMzMDk="
input: {
notifyCustomer: true
lines: {
orderLineId: "T3JkZXJMaW5lOjMwMzIy",
stocks: [
{
quantityDeclined: 1,
warehouse: "V2FyZWhvd...mUyYWYxZQ=="
}
]
}
}
) {
fulfillments {
id
status
totalLinesQuantity
lines {
id
quantity
}
}
}
Show more ↓

🪲 Fixed

Refunds

Fixed an issue where refunds were not including taxes in the refundPayment total. A new total_gross field is introduced to process the refundPayment with taxes included.

Permissions

Fixed an issue where seller staff members could view products owned by other sellers when working with categories.

Webhooks

Fixed an issue where the stock_allocated, stock_deallocated, and stock_updated webhooks were not being triggered by order events.

Webhooks

Fixed an issue where the payout_updated and vendor_payout_updated webhooks were not being triggered by certain payout events.

Webhooks

Fixed an issue where the seller_updated webhook was not being triggered when metadata updates.

Products

Fixed an issue filtering categories when the seller is a member of a master marketplace.

Orders

Fixed an issue where the quantity field on order types should be required. Note: This field has been deprecated. We will eventually prefer the quantityOrdered field.

Orders

Fixed an issue where line quantity updates were not always triggering updates in tax calculation plugins.

Multi-Currency

Fixed an issue where multi-currency environments would crash if a discount was applied.

: Staging

: Production

API v1.11.2

✨ New

Orders

Add vouchers to quote and draft orders

Added the ability to add and remove vouchers on a draft or quote order. Vouchers can be managed on draft or quote orders through the following new mutations:

  • NauticalOrderUpdateApplyVoucherCode
  • NauticalOrderUpdateDeleteDiscount
  • OrderUpdateApplyVoucherCode
  • OrderUpdateDeleteDiscount
Example mutation
mutation {
NauticalOrderUpdateApplyVoucherCode(
id: "TmF1dGljYWxPcmRlcjo1"
voucherCode: "SEPT10OFF"
) {
nauticalOrder {
id
discount {
amount
}
voucher {
id
name
code
}
}
orderErrors {
field
message
code
}
}
}
Show more ↓
Invoices

Display marketplace tax ID on invoices

Added the display of VAT Business Identification No to invoices generated from a marketplace order. The value is pulled from the taxId field on the seller account reserved for the marketplace (seller #1).

Learn more ->

💎 Changed

Orders

Date search filters now respect the marketplace timezone.

🪲 Fixed

Orders

Fixed an issue with seller order filtering when searching by both first and last name in the search filter.

Orders

Fixed an issue where shipping taxes for seller orders were not being saved when manually creating a payment against a draft order.

Vendor mgmt

Fixed an issue where the updateSeller mutation would fail if the seller did not have an attached agreement.

: Staging

: Production

✨ New

Webhooks

Expanded webhook coverage

Added webhooks for many platform events, giving integrations more visibility into marketplace activities:

  • Warehouse creation, updates, and deletion
  • Price book creation and updates
  • Category creation, updates, and deletion
  • Product and variant deletion
  • Collection creation, updates, and deletion
  • Refund events
  • Stock deletion
  • Seller profile updates (including metadata changes)
Webhooks

Webhook permissions improvements

Webhooks now support plural permissions, making it easier to configure which apps can receive specific events.

✨ New

Products

Backorder support

Added the ability to enable backorders at both the marketplace and product variant level:

  • New marketplace-wide configuration to enable backorders
  • Per-variant backorder settings
  • Out-of-stock threshold configuration
  • Negative available quantity support for tracking backorders

✨ New

API

Marketplace timezone configuration

Added timezone support to marketplace configuration, allowing you to:

  • Set a specific timezone for your marketplace
  • View insights data automatically adjusted to your marketplace timezone
  • Filter and group analytics data by your local time

✨ New

Orders

Enhanced order line data

Order line totals are now stored directly on order line models, improving query performance and data consistency.

💎 Changed

Performance

Performance improvements

Made several performance improvements across the platform:

  • Draft order line creation is now significantly faster
  • Adding multiple lines to draft orders is more efficient
  • Order recalculation operations are optimized
  • Seller order line creation and updates are more performant
  • Nautical order finalization and validation queries are faster

💎 Changed

Shopify

Shopify price synchronization

Marketplace product prices now automatically sync with Shopify product prices, keeping pricing consistent across platforms.

🪲 Fixed

Payments

Fixed an issue where refund totals were calculated incorrectly when processing payment refunds.

Products

Fixed an issue where sellers could see products from other sellers within category views.

Products

Fixed product visibility handling for master marketplace categories.

Webhooks

Fixed an issue where stock webhooks were not firing correctly when orders were placed and fulfilled.

Tax

Fixed an issue where the Avalara tax plugin was returning incorrect values in certain scenarios.

Orders

Fixed an issue where items were not properly deallocated when fulfillments were declined.

Orders

Fixed an issue where searching orders by company name was not working correctly.

Discounts

Fixed an issue where checkout discounts were not being recalculated correctly in certain contexts.

: Staging

: Production

✨ New

Webhooks

Warehouse webhooks

Added webhook events for warehouse operations, enabling integrations to receive real-time notifications about warehouse changes.

Webhooks

Price book webhooks

Added price_book_created and price_book_updated webhook events to notify integrations when price books are created or modified.

Webhooks

Category webhooks

Added webhook events for category operations, including category_deleted and category_updated, allowing integrations to track category lifecycle changes.

Webhooks

Product and variant deletion webhooks

Added product_deleted and variant_deleted webhook events to notify integrations when products or variants are removed from the marketplace.

Webhooks

Collection webhooks

Added webhook events for collection operations, including collection_created and collection_deleted, enabling integrations to track collection changes.

✨ New

Seller mgmt

Marketplace timezone configuration

Added the ability to configure a timezone for the marketplace, improving accuracy of date and time displays across the platform.

✨ New

Shopify

Shopify price synchronization

Marketplace product prices now automatically sync with Shopify product prices, ensuring price consistency across both platforms.

🪲 Fixed

Payments

Fixed an issue where refund totals could be calculated incorrectly, now properly using the gross amount from refund lines.

🪲 Fixed

Products

Fixed an issue where sellers could see products from other sellers within a category. Sellers now only see their own products when viewing category listings.

🪲 Fixed

Webhooks

Fixed an issue where stock-related webhooks were not firing properly when orders were placed and fulfilled.

🪲 Fixed

Payouts

Fixed issues with the payout_updated and vendor_payout_updated mutations to ensure they work correctly.

: Staging

: Production

💎 Changed

General

This release contains internal improvements and maintenance updates.

: Staging

: Production

✨ New

Webhooks

Agreement webhooks

Added webhook events for agreement lifecycle management:

  • agreement_created — triggered when a new agreement is created
  • agreement_updated — triggered when an agreement is modified
  • agreement_deleted — triggered when an agreement is removed

These webhooks allow integration partners to stay synchronized with agreement changes in real-time.

Webhooks

Category creation webhook

Added the category_created webhook event, enabling integrations to respond when new product categories are added to the marketplace.

🚫 Deprecated

API

Removed deprecated metadata mutations

Removed previously deprecated metadata-related mutations. Applications should use the current metadata API methods going forward.

🪲 Fixed

Orders

Fixed an issue where refund calculations were incorrect for orders that did not have taxes applied.

: Staging

: Production

💎 Changed

Performance

Reduced database calls to improve speeds of various queries, including product and currency queries.

: Staging

: Production

✨ New

Webhooks

Added the following webhook events:

  • agreement_created
  • agreement_updated
  • agreement_deleted
  • category_created

Learn more ->

🪲 Fixed

Refunds

Fixed an issue with inaccurate tax calculations for refunds when the initial order was not subject to tax.

: Staging

: Production

🪲 Fixed

Refunds

Fixed an issue with where checkoutLinesUpdate could encounter an error applying discounts in multi-currency environments.

: Staging

: Production

✨ New

Orders
Decline fulfillments API

Added the orderDeclineFulfillment mutation and object to remove order lines that cannot be fulfilled. A new field, quantityDeclined, has been added to the OrderLine object to track declined quantities.

When this mutation is called, the order total and taxes are recalculated, omitting the unfulfillable line items. However, shipping costs remain unchanged. This mutation must be used before payment has been captured.

The existing ORDER_FULFILLED webhook is triggered by the orderDeclineFulfillment mutation. You may need to update your webhook consumption to check the fulfillment status.

The DECLINED status is added to the FulfillmentStatus enum. Both order.fulfillments and nauticalOrder.fulfillments will now include declined fulfillments. Please note that the quantity value for these declined fulfillments is a positive integer. You may need to adjust your calculations involving fulfillment quantities accordingly.

Example mutation
mutation {
orderDeclineFulfillment(
order: "T3JkZXI6MTMzMDk="
input: {
notifyCustomer: true
lines: {
orderLineId: "T3JkZXJMaW5lOjMwMzIy",
quantityDeclined: 1
}
}
) {
order {
id
status
}
fulfillments {
id
status
totalLinesQuantity
lines {
id
quantity
}
}
orderErrors {
field
code
message
orderLine
}
}
}
Show more ↓

Learn more ->

💎 Changed

Performance
Checkout performance improvements

Introduced significant optimizations to checkout API calls, with the following changes:

  • Leveraging cached shipping rates for quicker calculations
  • Utilizing cached foreign exchange rates for multi-currency support
  • Elimination of multiple N+1 queries for checkout line items, reducing database load
  • Improvements to checkoutComplete execution time.
Payments
Braintree upgrade

Upgraded Braintree integration to use Braintree version 4.21.0.

Performance
Asynchronous webhooks

The following webhooks are now asynchronous: SELLER_AGREEMENT_ACKNOWLEDGED, PAYOUT_UPDATED, VENDOR_PAYOUT_UPDATED, PRODUCT_CREATED, and PRODUCT_UPDATED.

🚫 Deprecated

Inventory

quantity

The quantity field has been deprecated on the following types, and replaced with a more explicit name quantityOrdered:

  • OrderLine
  • SecondaryOrderLine
  • NauticalOrderLine
  • NauticalSecondaryOrderLine
Inventory

quantityFulfilled

The quantityFulfilled field has been deprecated on the following types:

  • NauticalOrder
  • NauticalOrderLine

Instead, retrieve quantityFulfilled from the underlying seller orderLine. To make this easier, nauticalOrder.lines now returns sellerOrderline with the underlying seller order lines.

🪲 Fixed

Inventory

Fixed an issue where stock could be deallocated from a warehouse different from the one it was originally allocated to.

Catalog

Fixed an issue that prevented editing prices for product variants.

Was this page helpful?