Fluent Commerce Logo
Docs
Sign In

GraphQL and User Experience Improvements: Upgrades and Fixes

Release

Author:

Fluent Commerce

Changed on:

20 Feb 2025

Target release date:2025-02-19
Release status:Development

Description

In this update, we've enhanced the Fluent GraphQL API and UI Components to improve the overall experience. Key fixes address issues with query ordering, duplicate data, and bulk actions in the list component. We've also added support for updating key fields (primary email, delivery type, and client secret) with null or empty values and introduced a configurable setting for handling null and empty fields in GraphQL mutations. Additionally, a new helper function has been added to preserve your content's original formatting. For full details, refer to the changelog below.

Changelog

  • Fixed Query Ordering Issue:
    Resolved an issue where an error would occur if order items were requested after fulfilment items within the same query. The query now functions correctly regardless of the order in which order items and fulfilment items are specified (refer to screenshots below).
  • New Update Capability:
    The following mutations now accept
    `null`
    and empty string values.
    • Customer: Can now update the primary email (
      `updateCustomer`
      ).
    • Fulfilment Choice: Delivery type can now be updated (
      `updateFulfilmentChoice`
      ).
    • Payment Service Provider: Client secret can now be updated (
      `updatePaymentServiceProvider`
      ).
  • Fixed Duplicate Articles Bug:
    Eliminated duplicate articles previously returned when using the
    `createArticle`
    mutation with multiple fulfilment IDs. Related queries (
    `fulfilmentById`
    ,
    `articleById`
    , and
    `articlesByLocation`
    ) now return unique articles.
  • New Configuration Setting for Null & Empty Field Validation:
    Introduced a configurable setting (
    `fc.graphql.compatibility.nullEmptyValidation`
    ) at the account level to control handling of
    `null`
    and empty string inputs in GraphQL mutations.The default behaviour of the setting if not present is  
    `validate-empty-fields`
    .

    Options:
    • `validate-null-as-string`
      : Converts
      `null`
      to string
      `"null"`
      and preserves empty strings as provided. This reflects the previous behavior.
    • `validate-empty-fields`
      (Default):
      • Optional fields:
        • `null`
          saved as
          `null`
        • `""`
          and
          `" "`
          saved as-is
      • Required fields:
        • `null`
          ,
          `""`
          , or whitespace-only strings trigger validation errors.
      • Note:
        For the purpose of validating required fields, literal nulls and strings containing only whitespace are now correctly considered invalid.
  • Fixed Bulk User Actions Bug in List Component:
    Resolved a bug in the List Component where bulk user actions would fail when the list contained entities from multiple retailers. Previously, the action assumed all items were associated with the retailer of the first selected entry, causing exceptions for entities linked to different retailers.
  • Fixed Duplicate Fulfilments on the Create Wave Page:
    Resolved an issue on the Fluent Store Create Wave page where fulfilments occasionally appeared duplicated in the table.
  • Added
    `preserveWhitespace`
    Helper Function:

    Added a helper function,
    `preserveWhitespace`
    , to the template registry. This function preserves the original white space in content rather than collapsing it into a single space, as HTML typically does. Additional details about this helper function can be found in the Common Concepts section.
1{
2    "errors": [
3        {
4            "message": "Exception while fetching data (/updateOrder) : 'status' argument value cannot be null or empty",
5            "locations": [
6                {
7                    "line": 2,
8                    "column": 5
9                }
10            ],
11            "path": [
12                "updateOrder"
13            ],
14            "extensions": {
15                "classification": "DataFetchingException"
16            }
17        }
18    ],
19    "data": {
20        "updateOrder": null
21    }
22}

Language: plain_text

Name: Example of a required field error

Description:

[Warning: empty required content area]

Screenshots

No alt text provided
No alt text provided
Released capability depth:Fix
Release bundle / Capability type:Platform
Fluent Commerce

Fluent Commerce

Copyright © 2025 Fluent Retail Pty Ltd (trading as Fluent Commerce). All rights reserved. No materials on this docs.fluentcommerce.com site may be used in any way and/or for any purpose without prior written authorisation from Fluent Commerce. Current customers and partners shall use these materials strictly in accordance with the terms and conditions of their written agreements with Fluent Commerce or its affiliates.

Fluent Logo