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

💎 Changed

API

This release contains internal improvements and maintenance updates.

: Staging

: Production

✨ New

Orders

Purchase order numbers on invoices

Purchase order (PO) numbers added to orders are now automatically included on generated invoices, making it easier to track and reconcile orders.

Orders

Filter and sort orders by PO number

Added the ability to filter and sort marketplace orders by purchase order number, improving order search and management capabilities.

🪲 Fixed

Tax

Fixed an issue where declining a fulfillment could result in incorrect tax calculations when using Avalara integration.

Orders

Fixed an issue where warehouse information could fail to serialize correctly when the associated address was deleted.

Products

Fixed an issue where top-performing product reports could incorrectly include deleted product variants.

Webhooks

Fixed an issue where refund webhook events were not being logged correctly.

Shopify

Fixed an issue where newly added price sync options were not displayed for existing Shopify seller configurations.

Orders

Fixed an issue with inventory deallocation for draft orders that could cause incorrect stock levels.

: Staging

: Production

💎 Changed

This release contains internal improvements and maintenance updates.

: Staging

: Production

✨ New

Orders

Backorders API

Added the ability to enable backorders with customizable settings, allowing you to set backorder thresholds and selectively activate this feature for specific product variants.

To activate the backorders feature, a new marketplace configuration enableBackorders field has been introduced. Once enabled, you can control which items are eligible for backordering through the allowBackorders boolean field on each product variant. By default, both fields are set to false (off) to maintain your current settings.

When adding or adjusting stock, StockInput now accepts the outOfStockThreshold field, which defaults to 0. This field allows you to set a negative value for how far stock levels can go below zero. When backorders and thresholds are set up, the quantityAvailable field can take on a negative value, but it cannot go past the limits defined by the outOfStockThreshold.

Learn more ->

Integrations

Webhook queue manager plugins

Refactored webhooks to enhance security and functionality in conjunction with queue manager plugins. If any of the following plugins are enabled, webhooks will now be directed to their respective queues:

  • Amazon Simple Queue Service
  • Google Cloud Pub/Sub
  • Microsoft Azure Service Bus
note

When you enable one of the above plugins, the queue is automatically subscribed to all webhook events. There is no filtering on the Nautical side as to which events are sent to the queue.

Orders

Store PO number on Checkout and NauticalOrder

Added the capability to store Purchase Order (PO) numbers in both the Checkout and NauticalOrder models. This includes the ability to search for purchase order numbers using the search filter.

During the checkout process, you can use the checkoutAddPoNumbers mutation to input one or more PO numbers, allowing buyers to easily reference these during transactions. You can also use the checkoutRemovePoNumber mutation to remove a PO number.

Once the checkout is completed, these PO numbers are saved to the resulting NauticalOrder. This ensures that each marketplace order can have one or more associated PO numbers for record-keeping and future reference. After checkout, you can manage PO numbers by updating the NauticalOrder directly.

🪲 Fixed

Catalog

Fixed an issue where bulk creation of variants resulted in a GraphQL error ID cannot represent value: None.

Orders

Fixed an issue that prevented searching for seller orders by the customer's company name. The search filter now includes the customer's company name if the token running the GraphQL query has the manage_users permission.

Webhooks

Fixed an issue where the orderCancel or orderBulkCancel mutations were not triggering stock deallocated webhooks upon cancelling orders.

Orders

Fixed an issue where changing the customer in a draft marketplace order did not update the customer address. Now, when you select a different customer, the address fields will automatically update to reflect the new customer's information.

: Staging

: Production

API v1.12.1

✨ New

Orders

Surface PO number on invoice

Invoices now display PO numbers if they are available on the corresponding marketplace order (NauticalOrder). Invoices must be regenerated for this change to take effect.

🪲 Fixed

Orders

Fixed an issue where declining the full quantity of an order line from a marketplace order did not update the nauticalOrder.total.tax.amount value to reflect the adjusted tax amount. This inconsistency also affected invoice information, making invoices different from what was displayed on the Order Details page in the dashboard.

Orders

Fixed an issue related to the caching of invoice shipping prices and order line tax amounts.

Insights

Fixed an issue where the query for top-performing products incorrectly included deleted variants.

: Staging

: Production

API v1.12.2

✨ New

Orders

Sort orders by PO number

Added the ability to sort marketplace orders (nauticalOrder) by PO numbers.

🪲 Fixed

Inventory

Fixed an issue where, when enableStockAllocationForDrafts=true, stock was not being deallocated after deleting draft orders.

Integrations

Fixed an issue where the Shopify price sync toggle was not appearing for sellers with existing integrations.

: Staging

: Production

API v1.12.3

🪲 Fixed

Integrations

Fixed an issue that prevented the order_creation email to send in certain circumstances with an TypeError: Object of type X is not JSON serializable error.

: 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.

Was this page helpful?