@progtechbr/n8n-nodes-rdsme
Version:
Send events through API to RD Station Marketing para Ecommerce
45 lines (38 loc) • 1.39 kB
text/typescript
import { isEmpty } from 'validator';
export const buildLineItems = (lineItems: any) => {
const productItems = lineItems.productItems;
const countProductItems = productItems?.length || 0;
const items = [];
let categories;
for(let i = 0; i < countProductItems; i++) {
categories = productItems[i].categories.toString().split(',').filter((category: string) => !isEmpty(category.trim()));
let productId = productItems[i].productId.toString().trim();
let productTitle = productItems[i].productTitle.toString().trim();
let productUrl = productItems[i].productUrl.toString().trim();
let variantId = productItems[i].variantId.toString().trim();
let variantTitle = productItems[i].variantTitle.toString().trim();
let sku = productItems[i].sku.toString().trim();
let price = productItems[i].price;
let quantity = productItems[i].quantity;
let imageUrl = productItems[i].imageUrl.toString().trim();
if(isEmpty(variantId)) {
variantId = productId;
}
if(isEmpty(variantTitle)) {
variantTitle = productTitle;
}
items.push({
product_id: productId,
product_title: productTitle,
variant_id: variantId,
variant_title: variantTitle,
price,
quantity,
...(!isEmpty(productUrl) && { product_url: productUrl }),
...(!isEmpty(sku) && { sku }),
...(!isEmpty(imageUrl) && { image_url: imageUrl }),
categories,
});
}
return items;
}