Skip to main content

Changelog

Developer Changelog

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

note

This release also includes changes from the 1.2.20 hotfix.

⛵ Added

  • Added validation by seller for DraftOrder mutations.
  • Added validation for overrideAmount in draftOrderLinePriceOverride and nauticalDraftOrderLinePriceOverride mutations to ensure the input is not negative or zero.
  • Added database table for logging webhook events.

🌊 Changed

  • Extended SendGrid order payloads to include information on grouped products.

🪲 Fixed

  • Fixed the line_price_overridden error that occurred during order events after using draftOrderLinePriceOverride or nauticalDraftOrderLinePriceOverride mutations to override item price in draft orders.
  • Fixed issue with incorrect order payout status for orders with products having volume discounts under 'Automated by fulfillment' payout mode.
  • Fixed issue where shipping address updates were not being synchronized between Nautical and WooCommerce orders.
  • Fixed an issue where the SendGrid payload for orders created with a voucher were missing the discount value.
note

This release was patched to a designated environment. Other customers will receive these changes with the 1.2.21 release.

🪲 Fixed

  • Fixed an issue where filtering attributes by product could return duplicate results.
  • Fixed an issue where, if a seller had enabled Shopify sync, updating the inventory in Shopify would overwrite Nautical product prices.

🌊 Changed

  • Updated the wishlistAddProduct and wishlistAddProduct mutations to support specifying the target user with user_id

🪲 Fixed

  • Fixed an issue where SendGrid order confirmation emails were not being sent to the customer or seller after a quote order was created
  • Fixed an issue that prevented creating a Typeform seller onboarding (SELLER_CREATION) form

⛵ Added

  • Added the wishlistCreateForBuyer mutation to allow the creation of a wishlist for a specific buyer, for integration data ingestion.
  • Added the sellerCreateWithOwner mutation to allow the creation of both a seller and the associated seller-owner use, for integration data ingestion. Note that the user will automatically be added to the Seller Admin permission group.

🌊 Changed

  • Updated the filtering logic for querying products and productVariants based on features to check for both products and variants that match the specified feature.

🪲 Fixed

  • Fixed an issue with the volumeDiscount resolver in the nauticalOrder query.
  • Fixed an issue where duplicate SendGrid order confirmation emails could be sent when a customer requested a quote order from the storefront.

⛵ Added

  • Added the ability to send customer details, including first name, last name, and email, to the Shopify order_created plugin

🌊 Changed

  • Extended the webhook payload for products to include information about related grouped products, where applicable

🪲 Fixed

  • Fixed an issue where the seller shipping method was incorrectly required on seller orders with only digital products
  • Fixed an issue with quote orders for dynamically-priced variants, where any update to the quote order after checkout would reset the line unit price to the original variant price
  • Fixed an issue where simple products were moved into the In Review state upon creation, despite the marketplace configuration not requiring product approval
  • Fixed an issue where duplicate events were being triggered for the variant_updated webhook

⛵ Added

  • Added the ability to define dynamic pricing of variants for order lines and checkout lines. Overrides can be accomplished with the following mutations:
    • checkoutLinePriceOverride
    • draftOrderLinePriceOverride
    • nauticalDraftOrderLinePriceOverride
  • Added the checkoutDelete mutation for those with Manage Marketplace permission to be able to remove all checkoutLines, and remove an un-captured and unprocessed payment associated with the checkout
  • Added logic to limit the number of active app integrations of the same category or subcategory to prevent issues with conflicting integrations

🌊 Changed

  • Refactored SendGrid error message handling

🪲 Fixed

  • Fixed an issue where filtering the products query by features could return duplicate features
  • Fixed logic related to filtering by the buyer role
  • Fixed filtering the plugin list by isFeature
  • Fixed an issue where partial payments were being shown as fully paid in Nautical
  • Fixed an issue where shipping was being calculated twice at checkout in certain environments, which caused transactions to fail
  • Fixed an issue where order payout_status was not being updated to "Not Ready" after the fulfillment was canceled
  • Fixed an issue with the insights_top_performing_products query which could cause incorrect reporting

⛵ Added

  • Added the ability to use one account to view products as both a storefront customer and a marketplace seller:
    • Added the optional requestor-role API header, with supported values of staff or buyer, which determines whether to query products and related entities as a buyer or seller staff member
  • Added the following to support quickstart onboarding checklists:
    • Added triggers to mark quickstart onboarding checklist items completed: payout_account_created, first_warehouse_created, and first_product_created
    • Added a checklist resolver for the Seller query, which returns all checklist objects for a given seller
    • Added SellerOnboardingChecklist model to track complete and incomplete checklist items
    • Added MarketplaceConfiguration.default_seller_checklist field to support the default checklist for a marketplace
  • Added new GraphQL mutations in the format objectAction to replace mutations in the format actionObject, which will be deprecated on Dec 16, 2023. See the GraphQL API docs and schema for more information and deprecation dates.
  • Added the status and sub_status fields to the PRODUCT_CREATED and PRODUCT_UPDATED webhook payloads
  • Added the SellerOwnerDelete mutation, which disassociates a user account from a seller

🪲 Fixed

  • Fixed an issue with stock migration when a product has no default variant and added better error logging
  • Fixed a logging issue where non-error-related information was being logged as errors

🪲 Fixed

Orders

Fixed an issue with bulk importing VIN CSV files where vehicle descriptions defaulted to None when unavailable instead of an empty string, leading to invalid JSON formatting.

⛵ Added

  • Added metadata and privateMetadata to the payment model, updates of which trigger a webhook event
  • Added variants resolver to collections type to enable querying for Variants on Collections
  • Added filtering by metadata and privateMetadata for products
  • Added updatedAt and createdAt columns to the ProductVariant model
  • Added updatedAt and createdAt fields to ProductVariant query and filters
  • Added event handlers that provide description and metadata in Stripe intent:
    • Added product_created method for the Stripe Gateway plugin
    • Added payment_transferred_from_checkout_to_nautical_order method for payment plugins

🌊 Changed

  • Updated logic for the isAvailable field on product to ignore unapproved variants
  • Updated field mappings for the VIN bulk upload .csv template

🪲 Fixed

  • Fixed an issue where stockAvailability for grouped products was not being updated based on the stock of the child products
  • Fixed an issue with commissions on order migrations
  • Fixed an issue with using the str() method on ProductVariant
  • Fixed an issue where foreign exchange rates were not refreshing
  • Fixed an issue where digitalContent.urls for uploaded files were being returned with malformed URLs
  • Fixed an issue where the ORDER_CREATED webhook could be triggered twice for the same order
  • Fixed an issue with WooCommerce integration logic for weight and incorrect argument for _set_track_inventory_for_product_variant calls

Was this page helpful?