//import { authHeader} from './auth'; import { wrapRequest } from './nav'; /* eslint-disable no-alert, no-console , no-debugger */ const vueAppMagenotApiUrl = process.env.VUE_APP_MAGENTO_API_URL; const vueAppCraneOrderUrl = process.env.VUE_APP_CRANE_ORDER_URL; const imageLibApiUrl = process.env.VUE_APP_IMAGE_LIB_URL; //const vueAppCustomCachePath = process.env.VUE_APP_CUSTOM_CACHE_PATH; export const doFetchOrderProductsList = wrapRequest((emailId) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Access-Control-Allow-Origin': '*', // ...authHeader() } }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crorders?searchCriteria[filter_groups][0][filters][0][field]=customer_email&searchCriteria[filter_groups][0][filters][0][value]=${emailId}`, requestOptions) }); export const doFetchOrderProduct = wrapRequest((orderId) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Access-Control-Allow-Origin': '*', // ...authHeader() } }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crorders/${orderId}`, requestOptions) }); export const doFetchProductInvoice = async () => { let Invoice = { "base_currency_code": "string", "base_discount_amount": 0, "base_grand_total": 0, "base_discount_tax_compensation_amount": 0, "base_shipping_amount": 0, "base_shipping_discount_tax_compensation_amnt": 0, "base_shipping_incl_tax": 0, "base_shipping_tax_amount": 0, "base_subtotal": 0, "base_subtotal_incl_tax": 0, "base_tax_amount": 0, "base_total_refunded": 0, "base_to_global_rate": 0, "base_to_order_rate": 0, "billing_address_id": 0, "can_void_flag": 0, "created_at": "string", "discount_amount": 0, "discount_description": "string", "email_sent": 0, "entity_id": 0, "global_currency_code": "string", "grand_total": 32, "discount_tax_compensation_amount": 0, "increment_id": "string", "is_used_for_refund": 0, "order_currency_code": "string", "order_id": 0, "shipping_address_id": 0, "shipping_amount": 0, "shipping_discount_tax_compensation_amount": 0, "shipping_incl_tax": 0, "shipping_tax_amount": 0, "state": 0, "store_currency_code": "string", "store_id": 0, "store_to_base_rate": 0, "store_to_order_rate": 0, "subtotal": 32, "subtotal_incl_tax": 0, "tax_amount": 0, "total_qty": 1, "transaction_id": "string", "updated_at": "string", "items": [{ "additional_data": "string", "base_cost": 0, "base_discount_amount": 0, "base_discount_tax_compensation_amount": 0, "base_price": 0, "base_price_incl_tax": 0, "base_row_total": 0, "base_row_total_incl_tax": 0, "base_tax_amount": 0, "description": "string", "discount_amount": 0, "entity_id": 0, "discount_tax_compensation_amount": 0, "name": "ENGRAVED SUN CARD", "parent_id": 0, "price": 32, "price_incl_tax": 0, "product_id": 0, "row_total": 32, "row_total_incl_tax": 0, "sku": "CC3700", "tax_amount": 0, "extension_attributes": {}, "order_item_id": 0, "qty": 1 }], "comments": [{ "is_customer_notified": 0, "parent_id": 0, "extension_attributes": {}, "comment": "string", "is_visible_on_front": 0, "created_at": "string", "entity_id": 0 }], "extension_attributes": { "base_customer_balance_amount": 0, "customer_balance_amount": 0, "base_gift_cards_amount": 0, "gift_cards_amount": 0, "gw_base_price": "string", "gw_price": "string", "gw_items_base_price": "string", "gw_items_price": "string", "gw_card_base_price": "string", "gw_card_price": "string", "gw_base_tax_amount": "string", "gw_tax_amount": "string", "gw_items_base_tax_amount": "string", "gw_items_tax_amount": "string", "gw_card_base_tax_amount": "string", "gw_card_tax_amount": "string" } } return Invoice; }; export const doFetchProductsList = wrapRequest(() => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Authorization': 'Bearer 58rcjzlop08412gs0xa42q3qna21zxo2', 'Access-Control-Allow-Origin': '*', }, }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts?searchCriteria[current_page]=1&searchCriteria[page_size]=27`, requestOptions) }); export const doFetchProductsMedia = wrapRequest((sku) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Authorization': 'Bearer 58rcjzlop08412gs0xa42q3qna21zxo2', 'Access-Control-Allow-Origin': '*', }, }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts/${sku}?fields=sku,media_gallery_entries[file]`, requestOptions) }); export const doFetchProductsAttributes = wrapRequest((sku) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Authorization': 'Bearer 58rcjzlop08412gs0xa42q3qna21zxo2', 'Access-Control-Allow-Origin': '*', }, }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts/${sku}?fields=sku,custom_attributes`, requestOptions) }); export const doFetchAttributeList = wrapRequest(() => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json' }, }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts/attributes?searchCriteria=&fields=items[attribute_id,attribute_code,options,frontend_labels]`, requestOptions) }); export const doFetchFilterOptions = async () => { let filterList = { "items": [{ "attributeCode": "category", "options": [{ "label": "Black", "value": "49" }, { "label": "Blue", "value": "50" }, { "label": "Brown", "value": "51" }, { "label": "Gray", "value": "52" } ] }, { "attributeCode": "personalized", "options": [{ "label": "Burlap", "value": "31" }, { "label": "Cocona® performance fabric", "value": "143" }, { "label": "Canvas", "value": "32" }, { "label": "Wool", "value": "144" } ] }, { "attributeCode": "brand", "options": [{ "label": "Normal", "value": "3" }, { "label": "Cocona® performance fabric", "value": "6" }, { "label": "Canvas", "value": "8" }, { "label": "Wool", "value": "8" } ] }, { "attributeCode": "paper weight", "options": [{ "label": "Normal", "value": "3" }, { "label": "Cocona", "value": "6" }, { "label": "Canvas", "value": "8" }, { "label": "Wool", "value": "8" } ] }, { "attributeCode": "product type/form", "options": [{ "label": "Burlap", "value": "31" }, { "label": "Cocona performance fabric", "value": "143" }, { "label": "Canvas", "value": "32" }, { "label": "Wool", "value": "144" } ] }, { "attributeCode": "print method", "options": [{ "label": "Burlap", "value": "31" }, { "label": "Cocona performance fabric", "value": "143" }, { "label": "Canvas", "value": "32" }, { "label": "Wool", "value": "144" } ] }, { "attributeCode": "paper color", "options": [{ "label": "Burlap", "value": "31" }, { "label": "Cocona® performance fabric", "value": "143" }, { "label": "Canvas", "value": "32" }, { "label": "Wool", "value": "144" } ] }, { "attributeCode": "design style", "options": [{ "label": "Burlap", "value": "31" }, { "label": "Cocona® performance fabric", "value": "143" }, { "label": "Canvas", "value": "32" }, { "label": "Wool", "value": "144" } ] }, { "attributeCode": "design color", "options": [{ "label": "Burlap", "value": "31" }, { "label": "Cocona performance fabric", "value": "143" }, { "label": "Canvas", "value": "32" }, { "label": "Wool", "value": "144" } ] }, { "attributeCode": "theme", "options": [{ "label": "Burlap", "value": "31" }, { "label": "Cocona performance fabric", "value": "143" }, { "label": "Canvas", "value": "32" }, { "label": "Wool", "value": "144" } ] }, { "attributeCode": "photo card", "options": [{ "label": "Burlap", "value": "31" }, { "label": "Cocona performance fabric", "value": "143" }, { "label": "Canvas", "value": "32" }, { "label": "Wool", "value": "144" } ] }, { "attributeCode": "price", "options": [{ "label": "Burlap", "value": "31" }, { "label": "Cocona performance fabric", "value": "143" }, { "label": "Canvas", "value": "32" }, { "label": "Wool", "value": "144" } ] } ] } return filterList; } export const doFetchProductDetails = wrapRequest((sku) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Access-Control-Allow-Origin': '*' }, }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/product/${sku}`, requestOptions) }); export const doFetchConfiguredProductDetails = wrapRequest((productId) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Access-Control-Allow-Origin': '*' }, }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts?searchCriteria[filter_groups][0][filters][0][field]=entity_id&searchCriteria[filter_groups][0][filters][0][value]=${productId}?searchCriteria&fields=items[price,sku,media_gallery_entries,custom_attributes]`, requestOptions) }); export const doFetchAttributeFilterProducts = wrapRequest(() => { /* const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json' , 'Authorization' : 'Bearer xi7a8g1ey22veysbp6ckan4yjqqkgjys' }, }; return fetch(`${process.env.VUE_APP_MAGENTO_API_URL}/products? searchCriteria[filter_groups][0][filters][0][field]=category_id& searchCriteria[filter_groups][0][filters][0][value]=${categorySearch}& searchCriteria[filter_groups][1][filters][0][field]=${attributeCode}& searchCriteria[filter_groups][1][filters][0][value]=${value}& searchCriteria[filter_groups][1][filters][0][condition_type]=finset`, requestOptions) */ }); export const doFetchSearchProducts = wrapRequest(() => { /*const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json' , 'Authorization' : 'Bearer xi7a8g1ey22veysbp6ckan4yjqqkgjys' }, }; return fetch(`${process.env.VUE_APP_MAGENTO_API_URL}/products/? searchCriteria[filter_groups][0][filters][0][field]=name& searchCriteria[filter_groups][0][filters][0][value]=%${search}%& searchCriteria[filter_groups][0][filters][0][condition_type]=like`, requestOptions)*/ }); export const doFetchSortProducts = wrapRequest((pageNo, pageSize, sortBy, categoryIds, productNames, sideFilter) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json' }, }; let sortFlag = 'ASC'; if (sortBy === 'relevance') { sortFlag = 'DESC'; } let extraAttribute = ""; if (pageSize != "ALL") { extraAttribute = `searchCriteria[pageSize]=${pageSize}&searchCriteria[currentPage]=${pageNo}&`; } if (categoryIds) { /* let nameSearchQuery = ""; //side filter// if (sideFilter != 'e30=') { let filtertoNormal = JSON.parse(atob(sideFilter)) Object.getOwnPropertyNames(filtertoNormal).forEach((key, index) => { nameSearchQuery += `searchCriteria[filter_groups][${index + 2}][filters][0][field]=${key}&searchCriteria[filter_groups][${index + 2}][filters][0][value]=${filtertoNormal[key]}&searchCriteria[filter_groups][${index + 2}][filters][0][condition_type]=eq&`; }) }*/ //side filter end// let query = ""; query = `?searchCriteria[filter_groups][0][filters][0][field]=entity_id&searchCriteria[filter_groups][0][filters][0][value]=${categoryIds}&searchCriteria[filter_groups][0][filters][0][condition_type]=in&searchCriteria[sortOrders][0][field]=${sortBy}&searchCriteria[sortOrders][0][direction]=${sortFlag}` console.log('product', `${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts/${query}`); return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts/${query}`, requestOptions) } else { let nameSearchQuery = ""; let filterQuery = ""; let increment = 0; let query = ""; if (productNames) { productNames.split(" ").forEach((name, index) => { nameSearchQuery += `searchCriteria[filter_groups][0][filters][${index}][field]=name&searchCriteria[filter_groups][0][filters][${index}][value]=%25${name}%25&searchCriteria[filter_groups][0][filters][${index}][condition_type]=like&`; increment++; }); } if (sideFilter != 'e30=') { let filtertoNormal = JSON.parse(atob(sideFilter)) Object.getOwnPropertyNames(filtertoNormal).forEach((key) => { filterQuery += `searchCriteria[filter_groups][${increment}][filters][0][field]=${key}&searchCriteria[filter_groups][${increment}][filters][0][value]=${filtertoNormal[key]}&`; increment++; }) } query = `?${extraAttribute}${nameSearchQuery}${filterQuery}searchCriteria[filter_groups][${increment}][filters][0][field]=status&searchCriteria[filter_groups][${increment}][filters][0][value]=1&searchCriteria[filter_groups][${increment}][filters][0][condition_type]=eq&searchCriteria[sortOrders][0][field]=${sortBy}&searchCriteria[sortOrders][0][direction]=DESC`; console.log('productNames', `${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts/${query}`); return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts/${query}`, requestOptions) } }); export const doFetchCategoryList = wrapRequest(() => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json' }, }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crcategories`, requestOptions) }); /*export const doFetchCategoryList = wrapRequest(() => { const requestOptions = { method: 'GET', }; return fetch(`${vueAppCustomCachePath}/category.json`, requestOptions) });*/ export const dofetchCategoryListIdWise = wrapRequest(() => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json' }, }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crcategories/list?searchCriteria&fields=items[id,parent_id,name,custom_attributes]`, requestOptions) }); export const doFetchCatelogProducts = wrapRequest((searchCriteria) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json' } }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/suggestion?q=${searchCriteria}`, requestOptions); }); export const doFetchRecentlyViewedList = wrapRequest((sku) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json' }, }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crproducts?searchCriteria[filter_groups][0][filters][0][field]=sku&searchCriteria[filter_groups][0][filters][0][value]=${sku}&searchCriteria[filter_groups][0][filters][0][condition_type]=in&searchCriteria[sortOrders][0][direction]=ASC`, requestOptions) }); export const doSideBarFilter = wrapRequest((pageNo, pageSize, sortBy, categoryId, sideFilter, search) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json' }, }; let extraAttribute = ""; if (pageSize != "ALL") { extraAttribute = `searchCriteria[pageSize]=${pageSize}&searchCriteria[currentPage]=${pageNo - 1}&`; } let sortFlag = 'ASC'; if (sortBy === 'relevance') { sortFlag = 'DESC'; } if (categoryId) { let nameSearchQuery = ""; if (sideFilter != 'e30=') { let filtertoNormal = JSON.parse(atob(sideFilter)) Object.getOwnPropertyNames(filtertoNormal).forEach((key, index) => { nameSearchQuery += `searchCriteria[filter_groups][${index + 2}][filters][0][field]=${key}&searchCriteria[filter_groups][${index + 2}][filters][0][value]=${filtertoNormal[key]}&`; }) } console.log('searchCat', `${vueAppMagenotApiUrl}/rest/crn_retailer/V1/search?searchCriteria[filter_groups][0][filters][0][field]=category_ids&searchCriteria[filter_groups][0][filters][0][value]=${categoryId}&searchCriteria[filter_groups][1][filters][0][field]=visibility&searchCriteria[filter_groups][1][filters][0][value]=4&${nameSearchQuery}${extraAttribute}searchCriteria[sortOrders][0][field]=${sortBy}&searchCriteria[sortOrders][0][direction]=${sortFlag}&searchCriteria[requestName]=catalog_view_container`); return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/search?searchCriteria[filter_groups][0][filters][0][field]=category_ids&searchCriteria[filter_groups][0][filters][0][value]=${categoryId}&searchCriteria[filter_groups][1][filters][0][field]=visibility&searchCriteria[filter_groups][1][filters][0][value]=4&${nameSearchQuery}${extraAttribute}searchCriteria[sortOrders][0][field]=${sortBy}&searchCriteria[sortOrders][0][direction]=${sortFlag}&searchCriteria[requestName]=catalog_view_container`, requestOptions); } else if (search) { let nameSearchQuery = ""; let filterQuery = ""; let increment = 0; /* if (search) { search.split(" ").forEach((name, index) => { nameSearchQuery += `searchCriteria[filter_groups][0][filters][${index}][field]=name&searchCriteria[filter_groups][0][filters][${index}][value]=%25${name}%25&searchCriteria[filter_groups][0][filters][${index}][condition_type]=like&`; increment++; }); }*/ if (search) { nameSearchQuery += `searchCriteria[filter_groups][0][filters][0][field]=search_term&searchCriteria[filter_groups][0][filters][0][value]=${search}&`; increment++; } if (sideFilter != 'e30=') { let filtertoNormal = JSON.parse(atob(sideFilter)) Object.getOwnPropertyNames(filtertoNormal).forEach((key) => { filterQuery += `searchCriteria[filter_groups][${increment}][filters][0][field]=${key}&searchCriteria[filter_groups][${increment}][filters][0][value]=${filtertoNormal[key]}&`; increment++; }) } console.log('search', `${vueAppMagenotApiUrl}/rest/crn_retailer/V1/search?${nameSearchQuery}${filterQuery}searchCriteria[filter_groups][${increment}][filters][0][field]=visibility&searchCriteria[filter_groups][${increment}][filters][0][value]=4&${extraAttribute}searchCriteria[sortOrders][0][field]=${sortBy}&searchCriteria[sortOrders][0][direction]=${sortFlag}&searchCriteria[requestName]=quick_search_container`); return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/search?${nameSearchQuery}${filterQuery}searchCriteria[filter_groups][${increment}][filters][0][field]=visibility&searchCriteria[filter_groups][${increment}][filters][0][value]=4&${extraAttribute}searchCriteria[sortOrders][0][field]=${sortBy}&searchCriteria[sortOrders][0][direction]=${sortFlag}&searchCriteria[requestName]=quick_search_container`, requestOptions); } }); export const doFetchPartPrice = wrapRequest((part) => { const requestOptions = { method: 'POST', headers: { 'Content-type': 'application/json', 'Access-Control-Allow-Origin': '*', }, body: JSON.stringify(part) }; return fetch(`${vueAppCraneOrderUrl}/pricer/price`, requestOptions) }); export const doPlaceCraneOrder = wrapRequest((order) => { const requestOptions = { method: 'POST', headers: { 'Content-type': 'application/json; charset=utf-8', }, body: JSON.stringify(order) }; return fetch(`${vueAppCraneOrderUrl}/Incoming/input`, requestOptions) }); export const doPatchOne = wrapRequest((cms) => { let date = new Date().toISOString(); cms.requested_at = date; const requestOptions = { method: 'PATCH', headers: { 'Content-Type': 'application/json', 'Accept': 'application/vnd.pgrst.object+json', 'Prefer': 'return=representation' }, body: JSON.stringify(cms) }; return fetch(`${imageLibApiUrl}/magento_sync?element=eq.${cms.element}`, requestOptions) }) export const doFetchProductTags = wrapRequest((sku) => { const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Accept': 'application/vnd.pgrst.object+json', }, }; return fetch(`${imageLibApiUrl}/product?sku=eq.${sku}&select=tags,sku`, requestOptions); }) export const doFetchOrderHistory = wrapRequest((obj) => { let query = ""; query = `searchCriteria[pageSize]=5000&searchCriteria[currentPage]=1&searchCriteria[sortOrders][0][field]=created_at&searchCriteria[sortOrders][0][direction]=DESC&searchCriteria[filter_groups][0][filters][0][field]=customer_id&searchCriteria[filter_groups][0][filters][0][value]=${obj.customerId}&searchCriteria[filter_groups][0][filters][0][condition_type]=eq`; if(obj.incrementId){ query = `&searchCriteria[filter_groups][1][filters][0][field]=increment_id&searchCriteria[filter_groups][1][filters][0][value]=${obj.incrementId}&searchCriteria[filter_groups][1][filters][0][condition_type]=eq` } const requestOptions = { method: 'GET', headers: { 'Content-type': 'application/json', 'Access-Control-Allow-Origin': '*', } }; return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/crorders?${query}`, requestOptions) });