GetProductDetails
Implements GetProductDetails Unified Method.
Source
import "./extended";
import { getNormalizers } from "@alokai/connect/integration-kit";
import { defineApi } from "@vsf-enterprise/unified-api-sapcc";
import type { CategoryWithParentCode } from "@vsf-enterprise/unified-api-sapcc";
export const getProductDetails = defineApi.getProductDetails(async (context, args) => {
const { api } = await context.getApiClient();
const { id, sku } = args;
const code = sku || id;
const { data: product } = await api.getProduct({
productCode: decodeURI(code.replace(/\s/g, "+")),
});
const { normalizeCategory, normalizeProduct } = getNormalizers(context);
const categoryHierarchy: CategoryWithParentCode[] =
product.categories?.map((category, index, categories) => ({
...category,
parentCategoryCode: categories[index - 1]?.code,
})) ?? [];
return {
categoryHierarchy: categoryHierarchy.map((category) => normalizeCategory(category)) ?? [],
product: normalizeProduct(product),
};
});