Skip to main content

API v1.3.8

note

Release notes for version 1.3.7 were skipped due to a customer-specific deployment. Changes from version 1.3.7 are included in these notes.

✨ New

Documents
Central document management API

Added the ability to upload and manage documents attached to products, variants, sellers, or customers. File type and file size are validated when a document is uploaded.

Use the following mutations to manage documents throught the API:

  • documentAdd
  • documentRemove
Documents
Proforma invoice API

Made the following API changes to support generating a proforma invoice:

  • The InvoiceRequest mutation has been updated to support generating a proforma invoice, by passing documentType: 4 in the request input.
        mutation {
    invoiceRequest(
    documentType: 4,
    orderId: T3JkZXI6NTI4)
    {
    invoice {
    url
    status
    number
    }
    invoiceErrors {
    code
    field
    message
    }
    }
    }
  • Added the "Sold tax inclusive" label to the proforma invoice and invoice document types, which will now appear on generated documents when appropriate.
  • Added "Discount" and "Volume Discount" sections to the proforma invoice and invoice document types, which will now appear on generated documents when appropriate.
Orders
Delivered state for orders

Added a new DELIVERED order state to the OrderStatus enum.

Also added the orderMarkAsDelivered mutation, to move a fulfilled order to the DELIVERED state.

mutation {
orderMarkAsDelivered(id: "T3JkZXI6NTI4") {
order {
status
paymentStatus
seller {
companyName
}
}
orderErrors {
message
}
}
}
note

If a fulfillment is cancelled on an order already in the delivered state, the status will revert back to PARTIALLY_FULFILLED or UNFULFILLED, as appropriate.

💎 Changed

Performance
Query performance optimizations

Various performance improvements have been made to improve query speeds.

Inventory
Include allocations in stock quantity update

A new includeAllocations boolean field is available as part of StockInput in mutations for updating stock levels. This field determines how the quantity input provided in the mutation will be used to update the stock quantity:

  • When true, the quantity you provide in the mutation will be added to the number of units in the quantityAllocated. The new stock quantity will be the sum of these values.
  • When false (default), the quantity you provide in the mutation will simply update the quantity field. quantityAllocated will not be taken into account.
Mutation
mutation {
productVariantStocksUpdate(
variantId: "ABC=="
stocks: {
quantity: 20
includeAllocations: true
warehouse: "ABC=="
}
) {
productVariant {
name
stocks {
warehouse {
name
}
quantity
quantityAvailable
quantityAllocated
}
}
bulkStockErrors {
message
}
}
}
Show more ↓
Response
{
"data": {
"productVariantStocksUpdate": {
"productVariant": {
"name": "A-Line Dress in Red",
"stocks": [
{
"warehouse": {
"name": "Oceania"
},
"quantity": 32,
"quantityAvailable": 20,
"quantityAllocated": 12
}
]
},
"bulkStockErrors": []
}
}
}
Show more ↓
Inventory
Quantity available at warehouse

The quantityAvailable field is now available on the stock object to reflect the amount of variant stock at the warehouse that is available for purchase and is not allocated to an order.

This field is automatically calculated as the difference between the quantity and quantityAllocated.

note

quantityAvailable will be sent in all relevant webhook payloads.

Inventory
Metadata fields on warehouse

The privateMetadata and metadata fields are now available on the warehouse object.

Catalog
Product location kind API

Added the locationKind field to the location object, supporting options from the LocationKindEnum.

Catalog
Updated attributes query

The attributes query has been updated to add inProductSearch and inVariantSearch filter options.

Integrations
Marketplace order number added to seller order email payloads

The nauticalorder.id field has been added to seller order related SendGrid email payloads for a reference to the marketplace order number. For example, payloads will include the following:

"nauticalorder" :
{
"id": 626
}
Integrations
Stripe API version

You can now specify the Stripe API version in your Stripe app settings. The API version defaults to 2022-08-01, which is the latest supported version.

🪲 Fixed

  • Fixed an issue where the fulfilledByMarketplace field remains enabled after disabling it with the updateSellerSettings mutation
  • Fixed an issue with master product marketplaces where variant images could in place of the master product images. To fix this issue, a new marketplace setting is introduced for strict_product_image_handling. Contact Nautical support to request this setting.
  • Fixed an issue where certain apps could be activated in the app marketplace without valid credentials.
  • Fixed an issue where variant update webhooks triggered after changing the minimal_variant_price_amount field returned the previous price in the webhook payload instead of the updated value.
  • Fixed an issue with multiple customer accounts being created in Stripe for the same buyer when the "Store customer cards" setting was enabled .

Was this page helpful?