summaryrefslogtreecommitdiff
path: root/src-migrate/services
diff options
context:
space:
mode:
Diffstat (limited to 'src-migrate/services')
-rw-r--r--src-migrate/services/product.ts37
1 files changed, 34 insertions, 3 deletions
diff --git a/src-migrate/services/product.ts b/src-migrate/services/product.ts
index fe415d11..51667eb9 100644
--- a/src-migrate/services/product.ts
+++ b/src-migrate/services/product.ts
@@ -2,6 +2,7 @@ import { IProduct, IProductDetail } from '~/types/product';
import snakeCase from 'snakecase-keys';
import odooApi from '~/libs/odooApi';
import { ICategoryBreadcrumb } from '~/types/category';
+import productSearchApi from '../../src/lib/product/api/productSearchApi'
const SELF_HOST = process.env.NEXT_PUBLIC_SELF_HOST;
@@ -40,6 +41,27 @@ export const getProductSimilar = async ({
except,
limit = 30,
}: GetProductSimilarProps): Promise<GetProductSimilarRes> => {
+ let dataflashSale = null
+ const flashSale = await odooApi('GET', '/api/v1/flashsale/header')
+ if (flashSale && flashSale.length > 0) {
+ const dataFlash = await productSearchApi({
+ query: `fq=flashsale_id_i:${flashSale[0].pricelist_id}&fq=flashsale_price_f:[1 TO *]&limit=4`,
+ operation: 'AND'
+ })
+
+ dataflashSale = dataFlash.response.products.map((product: {
+ qtySold: any;
+ stockTotal: any;
+ flashSale: any; lowestPrice: any;
+}) => ({
+ ...product,
+ lowest_price: product.lowestPrice,
+ flash_sale: product.flashSale,
+ stock_total: product.stockTotal,
+ qty_sold: product.qtySold,
+ lowestPrice: undefined
+ }));
+ }
const query = [
`q=${name}`,
'page=1',
@@ -47,16 +69,25 @@ export const getProductSimilar = async ({
'operation=OR',
'priceFrom=1',
];
-
if (except?.productId) query.push(`fq=-product_id_i:${except.productId}`);
if (except?.manufactureId)
query.push(`fq=-manufacture_id_i:${except.manufactureId}`);
-
const url = `${SELF_HOST}/api/shop/search?${query.join('&')}`;
- return await fetch(url)
+ const fetchedData = await fetch(url)
.then((res) => res.json())
.then((res) => snakeCase(res.response));
+
+ if (dataflashSale) {
+ fetchedData.products = [
+ ...dataflashSale,
+ ...fetchedData.products
+ ]
+ } else {
+ fetchedData.products = [...fetchedData.products]
+ }
+
+ return fetchedData;
};
export const getProductCategoryBreadcrumb = async (