Alokai
ReferenceMagentoMethods

GetCustomer

Implements GetCustomer Unified Method.

Source

import { getNormalizers } from "@alokai/connect/integration-kit";

import { clearStaleCustomerToken, defineApi, isCustomerAuthorizationError, query } from "@vsf-enterprise/unified-api-magento";
import type { Customer } from "@vsf-enterprise/unified-api-magento/ecommerceTypes";

export const getCustomer = defineApi.getCustomer(async (context) => {
  const { api } = await context.getApiClient();
  const { normalizeCustomer } = getNormalizers(context);

  try {
    const customerData = await query(api.customer());
    return {
      customer: normalizeCustomer(customerData.customer as Customer),
    };
  } catch (error) {
    if (context.config.state.getCustomerToken() && isCustomerAuthorizationError(error)) {
      // The stale token is what's failing; clear it so it stops wedging
      // subsequent loginCustomer / getCart calls.
      clearStaleCustomerToken(context);
    }
    return { customer: null };
  }
});

On this page