GetProducts
Implements GetProducts Unified Method.
Source
import { getNormalizers } from "@alokai/connect/integration-kit";
import { getLogger } from "@alokai/connect/middleware";
import { defineApi } from "@vsf-enterprise/unified-api-magento";
import type { ProductWithTypeName } from "@vsf-enterprise/unified-api-magento/ecommerceTypes";
export const getProducts = defineApi.getProducts(async (context, args) => {
const { api } = await context.getApiClient();
const { ids, skus = [] } = args;
const logger = getLogger(context);
if (ids?.length) {
logger.warning("getProducts(): ids argument is not supported");
}
if (skus.length === 0) {
return {
products: [],
};
}
const responseData = await api.products({ filter: { sku: { in: skus } } });
const responseProducts = responseData.data.products?.items ?? [];
const { normalizeProductCatalogItem } = getNormalizers(context);
const products = responseProducts
.filter(Boolean)
.map((product) => normalizeProductCatalogItem(product as ProductWithTypeName));
return {
products,
};
});