diff --git a/packages/app/src/cli/models/app/loader.test.ts b/packages/app/src/cli/models/app/loader.test.ts index d537b43e93..9a0e4ef87f 100644 --- a/packages/app/src/cli/models/app/loader.test.ts +++ b/packages/app/src/cli/models/app/loader.test.ts @@ -1736,6 +1736,9 @@ redirect_urls = [ "https://example.com/api/auth" ] namespace = "my-namespace" key = "my-key" + [[cart_line_properties]] + key = "_use_vip_token" + # extra fields not included in the schema should be ignored [[invalid_field]] namespace = "my-namespace" @@ -1766,6 +1769,11 @@ redirect_urls = [ "https://example.com/api/auth" ] key: 'my-key', }, ], + cart_line_properties: [ + { + key: '_use_vip_token', + }, + ], input: { metafield_identifiers: { namespace: 'taxy-tax', diff --git a/packages/app/src/cli/models/extensions/specifications/tax_calculation.ts b/packages/app/src/cli/models/extensions/specifications/tax_calculation.ts index 3653cf6b3d..1e97e577bb 100644 --- a/packages/app/src/cli/models/extensions/specifications/tax_calculation.ts +++ b/packages/app/src/cli/models/extensions/specifications/tax_calculation.ts @@ -2,6 +2,10 @@ import {createExtensionSpecification} from '../specification.js' import {BaseSchema, MetafieldSchema} from '../schemas.js' import {zod} from '@shopify/cli-kit/node/schema' +const CartLinePropertySchema = zod.object({ + key: zod.string(), +}) + const TaxCalculationsSchema = BaseSchema.extend({ production_api_base_url: zod.string(), benchmark_api_base_url: zod.string().optional(), @@ -17,6 +21,7 @@ const TaxCalculationsSchema = BaseSchema.extend({ }) .optional(), metafields: zod.array(MetafieldSchema).optional(), + cart_line_properties: zod.array(CartLinePropertySchema).optional(), }) const spec = createExtensionSpecification({ @@ -30,6 +35,7 @@ const spec = createExtensionSpecification({ benchmark_api_base_url: config.benchmark_api_base_url, calculate_taxes_api_endpoint: config.calculate_taxes_api_endpoint, metafields: config.metafields, + cart_line_properties: config.cart_line_properties, api_version: config.api_version, metafield_identifiers: config.input?.metafield_identifiers, }