Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-------------------------------------Revenue ID-----------------------------------
- const sourseUrl = 'https://static.adoric.com/Soda_DataSet.json';
- const productId = 6615769055274;
- function relatedByIdRevenue (id) {
- fetch(sourseUrl)
- .then((response) => response.json())
- .then((response) => {
- let filteredTransactions = response.filter(item => item["Product SKU"] == id);
- filteredTransactions = filteredTransactions.map(item => item["Transaction ID"]);
- const allTransactions = filteredTransactions.length;
- let relatedTransactions = response.filter(item => {
- if (filteredTransactions.some(i => item["Transaction ID"] == i)){
- return item
- }
- });
- relatedTransactions = relatedTransactions.filter(item => item["Product SKU"] != id);
- const relatedProducts = [];
- for (let j = 0; j < 10; j++) {
- const related = findRevenueFrequency(relatedTransactions, allTransactions);
- if (!related.id) break;
- relatedTransactions = relatedTransactions.filter(item => item["Product SKU"] != related.id);
- relatedProducts.push(related);
- }
- console.log('relatedProducts', relatedProducts);
- })
- .catch((error) => {
- console.log(error)
- });
- }
- relatedByIdRevenue(productId);
- function findRevenueFrequency(array, allTransactions) {
- const ranks = array.reduce(function (totals, num) {
- const id = num["Product SKU"];
- if (!totals[id]) totals[id] = 0;
- totals[id] += num['Product Revenue'];
- return totals;
- }, {});
- let max = 0;
- let id = '';
- Object.entries(ranks).forEach(function (num) {
- if (num[1] > max) {
- max = num[1];
- id = num[0];
- }
- });
- const percentage = (max * 100 / allTransactions).toFixed(2);
- return {
- id: id,
- revenue: `${max.toFixed(2)}$`,
- percentage: `${percentage}%`
- };
- }
- function relatedByIdQuantity (id) {
- fetch(sourseUrl)
- .then((response) => response.json())
- .then((response) => {
- let filteredTransactions = response.filter(item => item["Product SKU"] == id);
- filteredTransactions = filteredTransactions.map(item => item["Transaction ID"]);
- const allTransactions = filteredTransactions.length;
- console.log(allTransactions);
- let relatedTransactions = response.filter(item => {
- if (filteredTransactions.some(i => item["Transaction ID"] == i)){
- return item
- }
- });
- relatedTransactions = relatedTransactions.filter(item => item["Product SKU"] != id);
- const relatedProducts = [];
- for (let j = 0; j < 10; j++) {
- const related = findFrequency(relatedTransactions, allTransactions);
- if (!related.id) break;
- relatedTransactions = relatedTransactions.filter(item => item["Product SKU"] != related.id);
- relatedProducts.push(related);
- }
- console.log('relatedProducts', relatedProducts);
- })
- .catch((error) => {
- console.log(error)
- });
- }
- relatedByIdQuantity(productId);
- function findFrequency(array, allTransactions) {
- const ranks = array.reduce(function (totals, num) {
- const id = num["Product SKU"];
- if (!totals[id]) totals[id] = 0;
- totals[id] += num['Quantity'];
- return totals;
- }, {});
- let max = 0;
- let id = '';
- Object.entries(ranks).forEach(function (num) {
- if (num[1] > max) {
- max = num[1];
- id = num[0];
- }
- });
- const percentage = (max * 100 / allTransactions).toFixed(2);
- return {
- id: id,
- frequency: max,
- percentage: `${percentage}%`
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement