mirror of
https://github.com/vercel/commerce.git
synced 2025-07-23 04:36:49 +00:00
add server logic for core return metafields update
This commit is contained in:
@@ -71,6 +71,16 @@ export const WARRANTY_FIELDS = [
|
||||
'warranty_activation_mileage'
|
||||
];
|
||||
|
||||
export const CORE_RETURN_FIELDS = [
|
||||
'core_return_name',
|
||||
'core_return_email',
|
||||
'core_return_phone',
|
||||
'core_return_address',
|
||||
'core_return_city',
|
||||
'core_return_zip',
|
||||
'core_return_state'
|
||||
];
|
||||
|
||||
export const URL_PREFIXES = [
|
||||
'/transmissions',
|
||||
'/engines',
|
||||
|
@@ -11,7 +11,6 @@ import {
|
||||
SHOPIFY_GRAPHQL_CUSTOMER_API_ENDPOINT,
|
||||
TAGS,
|
||||
VARIANT_METAFIELD_PREFIX,
|
||||
WARRANTY_FIELDS,
|
||||
YEAR_FILTER_ID
|
||||
} from 'lib/constants';
|
||||
import { isShopifyError } from 'lib/type-guards';
|
||||
@@ -1191,25 +1190,13 @@ export const updateOrderMetafields = async ({
|
||||
const validMetafields = metafields.filter((field) => Boolean(field.value)) as Array<Metafield>;
|
||||
|
||||
if (validMetafields.length === 0) return null;
|
||||
|
||||
const shouldSetWarrantyStatusToActivated = WARRANTY_FIELDS.every((field) =>
|
||||
validMetafields.find(({ key }) => (Array.isArray(field) ? field.includes(key) : key === field))
|
||||
);
|
||||
console.log('Updating order metafields', { orderId, metafields: validMetafields });
|
||||
|
||||
const response = await shopifyAdminFetch<ShopifyUpdateOrderMetafieldsOperation>({
|
||||
query: updateOrderMetafieldsMutation,
|
||||
variables: {
|
||||
input: {
|
||||
metafields: shouldSetWarrantyStatusToActivated
|
||||
? validMetafields.concat([
|
||||
{
|
||||
key: 'warranty_status',
|
||||
value: WarrantyStatus.Activated,
|
||||
namespace: 'custom',
|
||||
type: 'single_line_text_field'
|
||||
}
|
||||
])
|
||||
: validMetafields,
|
||||
metafields: validMetafields,
|
||||
id: orderId
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user