chore(order): custom display id (#14024)

* chore(order): Accept a custom display generator option

* chore(order): Accept a custom display generator option

* wip

* wip

* finalize

* Create tricky-olives-battle.md

* fields

* changeset

* update integration tests

* update migrations

* fix changeset
This commit is contained in:
Adrien de Peretti authored and GitHub committed 2025-11-18 10:17:46 +01:00
1 parent 0a0c2f41d8
commit 6746fecd72
29 files changed
+479 -260

No files matched your search

@@ -1,6 +1,7 @@
export const defaultAdminListOrderFields = [
"id",
"display_id",
"custom_display_id",
"status",
"version",
"email",
@@ -16,6 +17,7 @@ export const defaultAdminListOrderFields = [
export const defaultAdminOrderFields = [
"id",
"display_id",
"custom_display_id",
"status",
"version",
"email",
@@ -1,6 +1,7 @@
export const defaultAdminOrderFields = [
"id",
"display_id",
"custom_display_id",
"status",
"version",
"summary",
@@ -22,14 +22,19 @@ export const getColumnCategory = (
semanticType?: string
): HttpTypes.AdminColumn["category"] => {
// Check semantic type first
if (semanticType === "timestamp") return "timestamp"
if (semanticType === "status") return "status"
if (semanticType === "timestamp") {
return "timestamp"
}
if (semanticType === "status") {
return "status"
}
// Check field name patterns
if (
fieldName.includes("_id") ||
fieldName === "id" ||
fieldName.includes("display_id") ||
fieldName.includes("custom_display_id") ||
fieldName === "code"
) {
return "identifier"
@@ -191,7 +196,7 @@ export const getTypeInfoFromGraphQLType = (
semantic_type: "object",
context: "metadata",
}
} else if (fieldName === "display_id") {
} else if (fieldName === "display_id" || fieldName === "custom_display_id") {
return {
data_type: "string",
semantic_type: "identifier",
@@ -264,6 +269,7 @@ const ADDITIONAL_ENTITY_TYPES: Partial<Record<Entities, string[]>> = {
export const DEFAULT_COLUMN_ORDERS: Record<Entities, Record<string, number>> = {
orders: {
display_id: 100,
custom_display_id: 101,
created_at: 200,
customer_display: 300,
"sales_channel.name": 400,
@@ -370,6 +376,10 @@ export const generateEntityColumns = (
directFields.unshift("display_id")
}
if (entity === "orders" && !directFields.includes("custom_display_id")) {
directFields.unshift("custom_display_id")
}
const additionalTypes = ADDITIONAL_ENTITY_TYPES[entity as Entities] ?? []
additionalTypes.forEach((typeName) => {
@@ -380,11 +390,7 @@ export const generateEntityColumns = (
return
}
const additionalFields = graphqlSchemaToFields(
schemaTypeMap,
typeName,
[]
)
const additionalFields = graphqlSchemaToFields(schemaTypeMap, typeName, [])
additionalFields.forEach((fieldName) => {
if (directFields.includes(fieldName)) {
@@ -460,7 +466,8 @@ export const generateEntityColumns = (
const directColumns = directFields.map((fieldName) => {
const displayName = formatFieldName(fieldName)
const fieldDef = entityFields[fieldName] || additionalFieldDefinitions.get(fieldName)
const fieldDef =
entityFields[fieldName] || additionalFieldDefinitions.get(fieldName)
const typeInfo = fieldDef
? getTypeInfoFromGraphQLType(fieldDef.type, fieldName)
: getTypeInfoFromGraphQLType(null, fieldName)
@@ -5,6 +5,7 @@ export const defaultStoreOrderFields = [
"status",
"summary",
"display_id",
"custom_display_id",
"total",
"currency_code",
"metadata",
@@ -18,6 +19,7 @@ export const defaultStoreRetrieveOrderFields = [
"summary",
"currency_code",
"display_id",
"custom_display_id",
"region_id",
"email",
"total",