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

Refunds

Order line refunds API

Refund lines can now be scoped to an OrderLine, allowing you to target refunds to specific individual order lines. To achieve this, use the refundLinesAdd mutation and set the refundScope to the id of the desired order line. Additionally, specify the quantity of the order line that should be included in the refund.

Learn more ->

Orders

Draft order lines CSV upload API fields

Added the following mutations for uploading a CSV file to create draft order lines:

  • nauticalOrderLinesCsvUpload
  • orderLinesCsvUpload

The CSV file must have at least three columns: id_type, id, and quantity. See the following sample format:

Example CSV
id_type, id, quantity
NSN, 5669abb7-8c4f-477f-8662-4540af3bcdac, 5
ID, UHJvZHVjdFZhcmlhbnQ6MjEx, 5
SKU, 998323573, 5
ID, UHJvZHVjdFZhcmlhbnQ6MjEz, 5
Taxes

Test taxes plugin

Added a "Nautical Test Taxes" plugin, which can be used for development and testing with taxes.

Within the plugin settings, you can input a single tax percentage, which should fall within the range of 0 to 100%. This plugin respects tax settings such as "Charge taxes on shipping rates" and "All products prices are entered with tax included."

caution

This plugin is intended solely for development and testing and is not for use in production environments.

💎 Changed

Refunds

Tax changes on manual fixed-amount refunds

When processing a manual refund for a fixed amount, taxes are no longer added separately. The fixed amount entered is the after-tax amount.

Fixed amount refunds do not automatically adjust records in the tax engine, such as Avalara. If you need to modify the amount of tax to remit, you must manually create a tax adjustment within Avalara.

: Staging

: Production

✨ New

Orders

CSV upload for order lines

Added the ability to upload order lines via CSV, making it easier to bulk import order data into the platform.

API

Dashboard embedding tokens

Introduced a new DashboardEmbeddingToken mutation that enables secure embedding of analytics dashboards, with support for seller-specific data filtering.

Integrations

PayPal payout gateway

Added initial support for PayPal as a payout gateway, providing more options for marketplace operators to distribute seller payouts.

💎 Changed

Tax

Simplified fixed amount refunds

Fixed amount refunds no longer include tax calculations, streamlining the refund process for operators.

Integrations

WorkOS authentication improvements

Enhanced WorkOS integration with strongly typed plugin configuration and support for specifying authentication providers in authorization URLs.

🪲 Fixed

Orders

Fixed an issue where the default refund type was not properly set to order line refunds.

Orders

Fixed a bug preventing storefront order shipping cost refunds from processing correctly.

Orders

Fixed an issue where order line refunds were incorrectly allowed after manual refunds had been processed.

Orders

Fixed a bug where shipping prices were not properly set to zero when orders were cancelled after being declined.

Orders

Fixed validation issues in refund calculations to ensure accurate refund amounts based on order line quantities and amounts.

Orders

Fixed an issue where previously refunded order line quantities were not correctly accounted for in subsequent refund requests.

Tax

Fixed an issue with Avalara tax integration where zero-tax return invoices were not being posted correctly due to missing entity use codes.

Payments

Resolved several issues with Stripe card payment processing affecting initial card transactions.

: Staging

: Production

💎 Changed

Webhooks

Updated webhook payloads

Updated webhook payloads for the following events to be more structured and robust. The structure and contents of the following webhook payloads have been changed:

  • order_created
  • order_updated
  • order_cancelled
  • order_fully_paid
  • order_fulfilled
  • payment_created

As a result of these changes, existing logic that utilizes the above webhooks should be updated to align with this new webhook format.

Learn more ->

Performance

Performance improvements

Made several API performance improvements around handling orders and refunds, including:

  • Updating shipping on an order
  • Deleting a draft order and deleting draft order lines
  • Processing a refund, including managing refund lines, updating refunds, deleting refunds, and processing refund payments

🪲 Fixed

Checkout

Fixed an issue where the userOverride argument on the checkoutComplete mutation did not override the user assigned to the checkout. Marketplace operators can now override the user during checkout completion using this argument.

Checkout

Fixed an issue where buyers were unable to add digital products to the checkout, particularly when it was the first item being added to the checkout.

Webhooks

Fixed an issue where the order_number, created, and total_gross_amounts fields were missing from the recently updated NauticalOrder webhooks.

Orders

Fixed an issue that could prevent marketplace operators from finalizing draft orders in multi-currency environments, with a 'NoneType' object has no attribute 'unit_price_net' error message.

: Staging

: Production

✨ New

Orders

Admin checkout user override

Administrators can now override the user associated with a checkout, providing more flexibility in managing orders on behalf of customers.

Orders

Refund type classification

Added a type field to refunds, allowing you to better track and categorize different types of refunds in your marketplace.

Orders

Order filtering on "me" query

Added an ids filter to the me query, enabling users to retrieve specific orders more efficiently.

✨ New

Integrations

WorkOS single sign-on support

Added support for WorkOS, enabling enterprise single sign-on (SSO) for your marketplace users.

💎 Changed

Performance

Performance improvements

Made several performance improvements across the platform:

  • Completing draft orders is now significantly faster.
  • Refreshing order taxes is more efficient.
  • Checkout completion is faster, particularly for large orders.
  • Cancelling marketplace orders is more performant.
  • Order payment operations are optimized.
  • Updating shipping details on orders is faster.
  • Draft order deletion operations are more efficient.

🪲 Fixed

Orders

Fixed an issue where declining fulfillment on an order line could cause errors in certain edge cases.

Products

Improved product category handling to prevent performance issues when querying large product catalogs.

Orders

Fixed multiple issues with refund calculations to ensure accurate quantities are used when processing refunds:

  • Refunds now correctly use shippable quantities in all calculations.
  • Refund totals are calculated based on the correct order line quantities.
Orders

Fixed permission checks for order fields to ensure proper data access control.

Orders

Fixed an issue where voucher discounts were not properly applied when finalizing draft orders.

Orders

Fixed an issue that prevented finalizing draft orders with multiple currencies in certain scenarios.

🪲 Fixed

Tax

Fixed issues with Avalara tax calculations:

  • Fully declined order lines are now handled correctly.
  • Tax calculations are skipped for refunds with zero amounts.
  • Added validation to ensure sufficient address data exists before calculating taxes.
  • Improved address fallback handling for checkout tax calculations.

🪲 Fixed

Shipping

Fixed issues with shipping method assignments to better support various shipping provider integrations.

: Staging

: Production

✨ New

Orders

Metadata on checkout and order lines

Added support for storing metadata on the CheckoutLine, OrderLine, and NauticalOrderLine objects, providing more flexibility in adding custom line-level data within an order.

💎 Changed

Orders

Improved order filtering with the me query

Enhanced the ability for users to filter orders retrieved from the me query. The CustomerOrderFilterInput, which previously only supported filtering by status, now supports many different filter fields.

One such is the ids filter field, which allows users to find a specific order by id.

Learn more ->
Emails

Customer name in order email payloads

Updated the order-related customer SendGrid email payloads to include the recipient_first_name and recipient_last_name fields. If the order is for a guest, these fields will be empty.

Learn more ->

Webhooks

Webhook improvements

Made the following improvements to webhooks:

  • Added the checkout token to checkout webhook payloads.
  • Improved performance for webhooks containing product image URLs.

Learn more ->

Performance

Performance improvements

Made several performance improvements around order management, including:

  • Creating, updating and finalizing draft orders.
  • Completing a checkout.
  • Refreshing taxes on an order.
  • Cancelling a marketplace order, seller order, or quote order.
  • Capturing or voiding a payment on an order.
Payments

Enhanced payment source storage

Improved the ability to store payment sources for Stripe payments:

  • Credit card brand, expMonth, and expYear can now be stored.
  • ACH payment methods can now be saved as a paymentMethodType.

🪲 Fixed

Orders

Fixed an issue where event notifications were not being sent during the NauticalDraftOrderLinesBulkDelete mutation.

Refunds

Fixed an issue preventing full refunds of orders with declined fulfillments.

: Staging

: Production

✨ New

Orders

Metadata on checkout and order lines

Added support for storing metadata on the CheckoutLine, OrderLine, and NauticalOrderLine objects, providing more flexibility in adding custom line-level data within an order.

Checkout

Checkout token in notifications

The checkout notification payload now includes the checkout token, making it easier to reference the checkout in notification handlers.

Orders

Order line refunds

Added support for refunding individual order lines and shipping lines, with detailed tracking codes for each refund. This provides more granular control over partial refunds and better visibility into refund history.

Customer mgmt

Customer name in order confirmations

Customer first and last names are now included in the order confirmation payload, making it easier to personalize order confirmation emails and notifications.

Payments

ACH payment method tracking

ACH payment method types are now stored and tracked, providing better visibility into payment methods used for orders.

💎 Changed

Performance

Performance improvements

Made several performance improvements across the platform:

  • Draft order operations (create, update, delete lines) are now significantly faster.
  • Invoice generation for orders with many products is more efficient.
  • Order shipping method lookups are optimized.
  • Voucher application on marketplace orders is faster.
  • Order shipping updates complete more quickly.

💎 Changed

Orders

Simplified order recalculation

Introduced a streamlined method to recalculate all pricing and tax information for marketplace orders, making order updates more reliable and consistent.

🪲 Fixed

Orders

Fixed an issue where invoice generation could fail or be very slow when creating orders with a large number of products.

Tax

Fixed an issue where taxes could be computed before order lines were fully created, leading to incorrect tax calculations in some cases.

API

Fixed an issue where seller GraphQL responses used an incorrect date format, causing potential parsing errors.

Orders

Fixed an issue where accepting a bid would not properly connect the NauticalOrderLine to the OrderLine.

Shipping

Fixed an issue where shipping calculations used incorrect subtotals when determining shipping costs.

: Staging

: Production

✨ New

Customer mgmt

Filter customers by active status

Added the isActive boolean filter to the customers query.

Seller mgmt

New seller information fields

Added the following fields to the Seller model:

  • approvedDate
  • firstOrderPlacedDate
  • firstProductCreatedDate

💎 Changed

Webhooks

Updated webhook payloads

Updated webhook payloads for the following events to be more structured and robust. The structure and contents of the following webhook payloads have been changed:

  • nautical_order_created
  • nautical_order_updated
  • nautical_order_fully_paid
  • nautical_order_cancelled

As a result of these changes, existing logic that utilizes the above webhooks should be updated to align with this new webhook format.

Learn more ->

🪲 Fixed

Payouts

Fixed an issue where volume discounts were being incorrectly deducted from seller order payouts.

Integrations

Fixed an issue with the Yotpo Ratings and Reviews app not properly utilizing ProductSchema fields.

Webhooks

Fixed an issue where the variant_created webhook was not triggered upon bulk creation of product variants.

: Staging

: Production

✨ New

Webhooks

Variant creation webhooks for bulk operations

Webhook events are now triggered when product variants are created in bulk, ensuring all variant creation operations are properly tracked.

Seller mgmt

Seller activity tracking

Added calculated fields to track seller activity, including approval status, first product created date, and first order created date.

✨ New

Customer mgmt

Active customer filtering

Added an isActive filter to the customers query, making it easier to filter between active and inactive customer accounts.

✨ New

Orders

Order sorting for customers

Customers can now sort their order history when querying their own orders through the me.orders endpoint.

💎 Changed

Performance

Performance improvements

Made several performance improvements across the platform:

  • Checkout queries now use optimized data loading, reducing database queries.
  • Sale data is now prefetched during request processing, improving response times.
  • Collection product loading is now more efficient, preventing unnecessary reloads.
  • Checkout operations use improved data structures for faster calculations.

🪲 Fixed

Payouts

Fixed an issue where discounts and volume discounts were not correctly set to zero in payout calculations.

API

Fixed database migration issues and improved model import handling.

: Staging

: Production

✨ New

Orders

Recurring billing (Alpha)

Introducing the ability to set up recurring orders, allowing you to create subscription-based offerings with customizable frequencies and durations. For example, you can offer subscriptions on a monthly, weekly, or daily basis.

Customers' payment information is securely stored in the payment gateway, such as Stripe, and used for future payments.

  • Transform a standard checkout into a recurring order using the checkoutConvertToSubscription. Learn more ->

  • Manually initiate a recurring order with the subscriptionCreate mutation. Learn more ->

  • Retrieve details of recurring orders using the subscriptions query. Learn more ->

Payments

Save cards for future payment (Alpha)

Introduced the ability to save and reuse payment methods for future transactions:

  • Within user.storedPaymentSources, you can now query the id field to retrieve a stored payment method token for a customer. Learn more ->

  • The paymentInformation.paymentMethodToken input field in the getClientSecret query enables processing payments using a payment source id obtained from user.storedPaymentSources, instead of entering full payment details. Learn more ->

Vendor mgmt

Sort sellers by creation date

Added the ability to sort sellers by the created field using the sortBy argument.

💎 Changed

Webhooks

Updated webhook payloads

Updated webhook payloads for the following events to be more structured and robust. The structure and contents of the following webhook payloads have been changed:

  • checkout_created
  • checkout_updated
  • fulfillment_created

As a result of these changes, existing logic that utilizes the above webhooks should be updated to align with this new webhook format.

Learn more ->

Catalog

Enhanced product pricing fields

All fields within the ProductPricingInfo and VariantPricingInfo types are now non-nullable.

Also, when multicurrency is disabled, the currency-related fields will now return values in the local domiciled currency.

Payments

Token required for payment gateways

All gateways now require tokens to be supplied to checkoutPaymentCreate or nauticalOrderPaymentCreate.

This should not impact any existing checkouts, as Stripe payments already required a payment token.

Integrations

Version for plugins

Added the version field to the plugins model.

🪲 Fixed

Integrations

Fixed an issue where Stripe webhooks could refund events to Nautical on cancellations in some cases.

Payments

Fixed an issue where capture_failed transactions sometimes failed to display an error message.

Checkout

Fixed an issue with converting a checkout to a quote order with a null shipping method.

🚫 Deprecated

Integrations

Removed VATLayer plugin

Removed the VATLayer plugin, which has not been supported for some time.

Payments

Removed purchase order plugin

The purchase_order payment gateway has been removed.

Payments

Removed credit limits model

Removed the CreditLimits model, which was not in use.

Webhooks

Removed invoice webhooks

Removed invoice webhooks, which were not in use.

Designer

Removed translations

Removed the translation model.

Permissions

Removed deprecated permissions

Removed the manage_gift_cards and manage_credit_limits permissions.

: Staging

: Production

✨ New

Payments

Adyen payment gateway improvements

Updated the Adyen payment integration with the latest client library version and added support for tokenized payments, improving security and checkout experience.

Integrations

App versioning

Apps now include a version field, making it easier to track and manage integration versions across your marketplace.

Seller mgmt

Seller sorting by creation date

Added the ability to sort sellers by their creation date, making it easier to find recently added sellers in your marketplace.

💎 Changed

Performance

Performance improvements

Made several performance improvements across the platform:

  • Product and variant pricing calculations are now significantly faster.
  • Checkout line total calculations are more efficient.
  • Transaction code lookups have been optimized.

🪲 Fixed

Payments

Fixed an issue where failed payment captures would not display error messages to users.

Payments

Fixed an issue where Stripe refund webhooks for cancelled payments could cause errors.

Checkout

Fixed an issue where checkouts with null shipping methods could cause errors during processing.

🚫 Deprecated

API

Removed features

The following features have been removed from the platform:

  • VATlayer plugin: Removed the VATlayer tax calculation integration.
  • Conversations: The conversations feature has been discontinued.
  • Product reviews: The Nautical product reviews feature has been removed.
  • Purchase order gateway: The purchase order payment method is no longer available.
  • Credit limits: Credit limit functionality has been removed.
  • Gift cards: All gift card functionality has been removed.
  • Translations: Removed translation support for shops, menus, agreements, shipping methods, microsites, pages, attributes, and attribute values.
  • Staff notifications: Removed unused staff notification mutations and fields.
  • Legacy queries: Removed nauticalApp, nauticalApps, and externalNotificationTrigger queries.

If you were using any of these features, please contact support for migration guidance.

Was this page helpful?