add server logic for core return metafields update

This commit is contained in:
tedraykov
2024-07-09 23:51:32 +03:00
parent 4738600b4d
commit d679b46520
6 changed files with 122 additions and 29 deletions

View File

@@ -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',

View File

@@ -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
}
}