Skip to main content

463 posts tagged with "API"

View All Tags

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

: Staging

: Production

✨ New

Payments

Base amount money field for better accuracy

Added a baseAmount field to all money-related objects (Money, MoneyRange, TaxedMoney). This field represents the monetary value in the smallest unit of the currency, offering greater accuracy over the existing amount floating point field.

For example, in currencies with two decimal places like USD, $12.45 will be represented as baseAmount=1245.

The amount field is now deprecated and will be removed in 6 months.

Orders

Allow buyer to query suborders

A buyer can now query me.NauticalOrder.subOrders for the seller order information. Payout-related fields on the seller order will not be visible to the buyer.

Orders

Seller ID on multi seller shipping method

Added the sellerId field to the MultiSellerShippingMethodtype.

Webhooks

Improved webhook logging

Added webhook logging for request time outs and connection errors.

🪲 Fixed

Payments

Fixed an issue where duplicate transaction records could be created against the same Stripe payment intent. This did not affect the actual payment captured by Stripe.

🚫 Deprecated

Payments

Deprecated money fields

The amount and localized fields on the money type have been deprecated and will be removed after a deprecation period.

Payments

Removed dummy_credit_card payment gateway

Removed the dummy_credit_card payment gateway. All test payments should be done through the dummy gateway going forward.

Payments

Removed RazorPay payment gateway

Removed the RazorPay payment gateway.

Payments

Removed gift card model

Removed the GiftCard model, including all related queries and mutations.

: Staging

: Production

✨ New

Orders

Buyer access to sub-orders

Buyers can now view sub-orders within their marketplace orders, providing better visibility into how their purchases are fulfilled across multiple sellers.

Orders

Order search by product variant SKU

Added support for searching orders by grouped product variant SKU, making it easier to find orders containing specific product variants.

✨ New

Shipping

Seller identification in shipping methods

The MultiSellerShippingMethod GraphQL type now exposes the seller's GraphQL ID, providing clearer seller attribution for shipping options.

✨ New

API

Currency display improvements

Added base_amount currency values to queries, providing more consistent currency formatting and display across the platform.

💎 Changed

Payments

Payment gateway updates

  • Renamed the "Dummy Gateway" to "Test Payments" for clarity.
  • Removed the legacy dummy_credit_card gateway.
  • Removed the non-functional Razorpay gateway integration.

🪲 Fixed

Checkout

Fixed an issue where shipping voucher discounts were not being applied correctly during checkout.

Orders

Separated the NauticalDraftOrderCreate and NauticalOrderUpdate mutations to prevent conflicts and ensure draft orders are created correctly.

Payments

Fixed a race condition in Stripe webhook processing by properly locking checkout and nautical order records during payment updates.

Payments

Improved transaction handling in checkoutPaymentCreate to ensure payment records are created atomically.

🪲 Fixed

Webhooks

Improved error logging for webhook deliveries, now capturing timeout and connection errors for better debugging.

🪲 Fixed

Shopify

Fixed an issue where fulfillment webhooks were failing in the Shopify plugin integration.

🪲 Fixed

API

Added a proper deprecation notice for the Money.amount field to guide developers toward the correct currency handling approach.

🚫 Deprecated

Checkout

Gift card support removed

Removed gift card functionality from checkouts, orders, and user accounts. This includes:

  • Gift card queries and mutations
  • Gift card payment methods
  • Gift card refund options

: Staging

: Production

✨ New

Orders

Order line item notes

Added the ability to add a note per order line item. The following mutations have been added to add line-level notes:

  • checkoutLineAddNote: Adds a note to a CheckoutLine.
    note

    When the checkout is converted to an order, any CheckoutLines are converted to NauticalOrder and Order lines.

  • nauticalOrderLineAddNote: Adds a note to a NauticalOrderLine.
  • orderLineAddNote: Adds a note to an OrderLine.

Learn more ->

Locations

New locations queries

Added the locationSearch and locationGeocode queries, to replace the deprecated mutations.

Integrations

Email payloads with order line item thumbnails

Added the original.url field to images on order line items for SendGrid email payloads. This new field provides the URL of the unprocessed, original image, facilitating the integration of image thumbnails in dynamic email templates.

This update provides a way around the SendGrid limitation with accessing the sized thumbnail URLs, which were previously available but incompatible with SendGrid handlebars.

💎 Changed

Payments

Validation error when payment token already used

Added a validation error for instances where a token has already been used for a payment.

Catalog

Sort products or variants by brand or manufacturer

Added the ability to sort products or variants by the brand and manufacturer fields.

🚫 Deprecated

Locations

Deprecated location mutations

The locationSearch and locationGeocode mutations have been deprecated. Instead, use the new locations queries.

Shipping

Deprecated secondary address

Deprecated the ShippingMethod.requiresSecondaryAddress and secondaryAddress fields, which were non-functional.

Shipping

Deprecated shipping fields

The checkout.shippingMethod and nauticalOrder.shippingMethodName fields have been marked deprecated. These fields were not functional as shipping is stored on the seller order (order).

Fulfillments

Removed NauticalFulfillment model

The following models have bee removed, as fulfillments are tracked at the seller order level.

  • NauticalFulfillment
  • NauticalFulfillmentLine

This change has been made backwards-compatible. To keep backwards compatibility for NauticalOrder.fulfillments, the type of that field is changed to Fulfillment but the resolver is changed to an empty list.

Payments

Removed connection between seller order and payments

Removed the connection between seller orders (order) and payment objects. This connection had already logically been empty since the deprecation in version 1.9.

As a result, any existing logic querying orders must not explicitly include payments.

Checkout

Removed taxRate field from order lines

The taxRate field has been removed from the NauticalOrderLine and OrderLine objects.

Orders

Removed nauticalSuborders query

The nauticalSuborders query has been removed.

: Staging

: Production

✨ New

Orders

Notes on order lines

Added the ability to include custom notes on individual order lines, providing more flexibility for capturing line-level details and instructions.

Emails

Original image URLs in email payloads

Email notifications now include the original image URLs for products, making it easier to display high-quality product images in custom email templates.

Products

Sort products by brand and manufacturer

Added support for sorting products and variants by brand and manufacturer, making it easier to organize and browse large product catalogs.

💎 Changed

Shipping

Improved shipping method handling

Simplified how shipping methods are managed for marketplace orders, improving reliability and making it easier to update shipping information after an order is placed.

API

Internal data structure improvements

Updated several internal data structures to improve consistency and maintainability across the platform. These changes are transparent to API consumers.

🪲 Fixed

Payments

Fixed an issue where payment webhook race conditions could cause inconsistent order states when multiple payment events occurred simultaneously.

API

Improved error messages when attempting to create duplicate authentication tokens, making it clearer what action needs to be taken.

Orders

Fixed an issue where the seller order status could be incorrect when checking if a seller is the only seller on a marketplace order.

Webhooks

Fixed an issue where webhook payloads could serialize date fields incorrectly, ensuring consistent date formatting across all webhook events.

: Staging

: Production

✨ New

Integrations

Enhanced Stripe integration with webhook listeners

Added webhook listeners for Stripe integrations, ensuring automatic updates to order payment statuses in Nautical. This is particularly useful for Stripe transactions where payment completion is delayed, like ACH payments.

Nautical will now reflect the following Stripe events:

  • payment_intent.amount_capturable_updated
  • payment_intent.canceled
  • payment_intent.payment_failed
  • payment_intent.processing
  • payment_intent.succeeded
note

To activate Nautical's Stripe webhook listening, you need to re-save your Stripe plugin configuration. This will automatically update the "Webhook endpoint" and "Webhook secret key" fields in the plugin.

Orders

Decline all order lines

You can now decline all order lines in a seller order. If all lines are cancelled, the seller order status updates to Cancelled. Additionally, the shipping cost for that order resets to $0, and its total cost is deducted from the marketplace order total.

Orders

Filter orders by invoice number

Added the ability to use the search filter to find orders and nauticalOrders by invoice number.

Invoices

Invoice refresh mutation

Added the invoiceRefresh mutation, which regenerates an order document using the same invoice number as originally generated.

Learn more ->

Invoices

Removed items section on invoices

Invoice documents for orders with declined fulfillments now include a "Removed Items" section, listing each line item that was removed from the order.

💎 Changed

Payments

Payment token validation

Updated the checkoutPaymentCreate and nauticalOrderPaymentCreate mutations to include validation of the supplied token. The validation checks ensure:

  • The token has not been previously used, preventing duplicate tokens.
  • The token is valid according to the gateway, and the amount provided to the API is appropriate for the token.

For Stripe in particular, we now perform the following validation:

  • The payment intent specified by the token exists
  • The payment amount specified matches the payment intent amount in Stripe
  • The payment intent status is either processing, requires_capture, or succeeded
Payments

Transaction error enum replaced

The Transaction.error field is now a string type instead of an enum.

Webhooks

Breaking change for webhooks

Implemented strictly typed data classes for more robust and structured webhooks. This approach negates the need for custom webhook fields, as we can now generate model-like payloads with more complex nested data structures.

The structure and contents of the following webhook payloads have been changed:

  • Product webhooks: product_created, product_updated, product_deleted
  • Variant webhooks: variant_created, variant_updated, variant_deleted
  • Warehouse webhooks: warehouse_created, warehouse_updated, warehouse_deleted
  • Stock webhooks: stock_created, stock_updated, stock_deleted
  • Stock allocation webhooks: stock_allocated, stock_deallocated
  • Agreement webhooks: agreement_created, agreement_updated, agreement_deleted
  • Microsite webhooks: microsite_created, microsite_updated
  • Collection webhooks: collection_created, collection_updated, collection_deleted

As a result of these changes, existing logic that utilizes the above webhooks should be updated to align with this new, more structured webhook format. Follow the learn more link below to view the new webhooks.

Learn more ->

Integrations

Plugin allow sellers field

The plugin model now has the allowSellers boolean field, which indicates whether sellers can configure the plugin.

🪲 Fixed

Orders

Fixed an issue where the option to fulfill items remained available from the marketplace order even after a seller order was cancelled.

Stock

Fixed an issue where stock allocated to draft orders wasn't being deallocated upon bulk deletion of those orders.

Emails

Fixed an issue that could prevent order emails from being sent with the type error Object of type X is not JSON serializable.

Integrations

Fixed an issue that prevented the activation of the HERE plugin.

: Staging

: Production

✨ New

Orders

Decline all order lines in a seller order

Added the ability to decline all order lines within a seller order at once, streamlining order management workflows.

Orders

Update PO numbers on finalized orders

You can now update purchase order (PO) numbers on marketplace orders even after they've been finalized, providing more flexibility in order tracking.

Orders

Invoice number filtering

Added the ability to filter orders and marketplace orders by invoice number, making it easier to locate specific orders.

Orders

Invoice refresh mutation

Introduced a new mutation to refresh invoices, allowing you to regenerate invoice documents when needed.

✨ New

Payments

Stripe payment metadata

Payment intents created through Stripe now include custom metadata, enabling better tracking and integration with external systems.

Payments

Stripe webhook integration

The Stripe payment plugin now listens to webhooks for real-time payment status updates, including successful payments, cancellations, pending states, failures, capture events, and refunds.

Payments

Gateway token validation

Payment gateway tokens are now validated when creating payments, improving security and reducing payment errors.

✨ New

Seller mgmt

Seller configuration limits

Marketplace operators can now limit which plugins and configurations are available to individual sellers, providing more granular control over seller capabilities.

✨ New

Integrations

Refined plugin categories

Plugin categories have been reorganized to improve discoverability and organization of integrations.

✨ New

Products

Removed items on documents

Invoices, packing slips, and purchase orders now include a dedicated section for removed items when applicable.

💎 Changed

Orders

Fulfillment for cancelled orders

Orders that have been cancelled can still be fulfilled if needed, providing more flexibility in handling edge cases.

🪲 Fixed

Orders

Fixed an issue where stock wasn't properly deallocated when bulk deleting draft orders.

🪲 Fixed

API

Fixed an issue where dates and decimal values weren't consistently returned as strings in API responses.

🪲 Fixed

Payments

Fixed an issue where transaction error messages could be incorrectly formatted.

🪲 Fixed

Integrations

Fixed an issue with the HERE Maps plugin authentication check URL.

Was this page helpful?