@agilo/medusa-analytics-plugin 1.2.0-0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -9,9 +9,11 @@ const dateFns = require("date-fns");
|
|
|
9
9
|
const reactAriaComponents = require("react-aria-components");
|
|
10
10
|
const reactRouterDom = require("react-router-dom");
|
|
11
11
|
const recharts = require("recharts");
|
|
12
|
+
const Medusa = require("@medusajs/js-sdk");
|
|
12
13
|
const clsx = require("clsx");
|
|
13
14
|
const tailwindMerge = require("tailwind-merge");
|
|
14
15
|
const reactQuery = require("@tanstack/react-query");
|
|
16
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
15
17
|
function _interopNamespace(e) {
|
|
16
18
|
if (e && e.__esModule) return e;
|
|
17
19
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
@@ -30,6 +32,7 @@ function _interopNamespace(e) {
|
|
|
30
32
|
return Object.freeze(n);
|
|
31
33
|
}
|
|
32
34
|
const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
|
35
|
+
const Medusa__default = /* @__PURE__ */ _interopDefault(Medusa);
|
|
33
36
|
function $2b4dce13dd5a17fa$export$842a2cf37af977e1(amount, numerator) {
|
|
34
37
|
return amount - numerator * Math.floor(amount / numerator);
|
|
35
38
|
}
|
|
@@ -827,6 +830,12 @@ function generateColorsForData(data, keyField, saturation = 70, lightness = 50)
|
|
|
827
830
|
(item) => generateStableColor(String(item[keyField]), saturation, lightness)
|
|
828
831
|
);
|
|
829
832
|
}
|
|
833
|
+
const sdk = new Medusa__default.default({
|
|
834
|
+
baseUrl: __BACKEND_URL__ || "/",
|
|
835
|
+
auth: {
|
|
836
|
+
type: "session"
|
|
837
|
+
}
|
|
838
|
+
});
|
|
830
839
|
const BarChart = ({
|
|
831
840
|
data,
|
|
832
841
|
xAxisDataKey,
|
|
@@ -1072,17 +1081,15 @@ const ProductsTable = ({ products }) => {
|
|
|
1072
1081
|
products.length > PAGE_SIZE$1 && /* @__PURE__ */ jsxRuntime.jsx(ui.DataTable.Pagination, {})
|
|
1073
1082
|
] });
|
|
1074
1083
|
};
|
|
1075
|
-
const BACKEND_URL$2 = __BACKEND_URL__ === "/" ? "" : __BACKEND_URL__;
|
|
1076
1084
|
async function retrieveProductAnalytics(date) {
|
|
1077
1085
|
if (!date || !date.from || !(date == null ? void 0 : date.to)) {
|
|
1078
1086
|
return void 0;
|
|
1079
1087
|
}
|
|
1080
1088
|
const dateFrom = dateFns.format(date.from, "yyyy-MM-dd");
|
|
1081
1089
|
const dateTo = dateFns.format(date.to, "yyyy-MM-dd");
|
|
1082
|
-
const
|
|
1083
|
-
|
|
1090
|
+
const productAnalytics = await sdk.client.fetch(
|
|
1091
|
+
`/admin/agilo-analytics/products?date_from=${dateFrom}&date_to=${dateTo}`
|
|
1084
1092
|
);
|
|
1085
|
-
const productAnalytics = await data.json();
|
|
1086
1093
|
return productAnalytics;
|
|
1087
1094
|
}
|
|
1088
1095
|
const useProductAnalytics = (query, options) => {
|
|
@@ -1095,21 +1102,14 @@ const useProductAnalytics = (query, options) => {
|
|
|
1095
1102
|
...options
|
|
1096
1103
|
});
|
|
1097
1104
|
};
|
|
1098
|
-
const BACKEND_URL$1 = __BACKEND_URL__ === "/" ? "" : __BACKEND_URL__;
|
|
1099
1105
|
async function retrieveOrderAnalytics(preset, date) {
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
);
|
|
1104
|
-
|
|
1105
|
-
return orderAnalytics2;
|
|
1106
|
+
let url = `/admin/agilo-analytics/orders?preset=${preset}`;
|
|
1107
|
+
if (date && date.from && date.to) {
|
|
1108
|
+
const dateFrom = dateFns.format(date.from, "yyyy-MM-dd");
|
|
1109
|
+
const dateTo = dateFns.format(date.to, "yyyy-MM-dd");
|
|
1110
|
+
url = `/admin/agilo-analytics/orders?preset=custom&date_from=${dateFrom}&date_to=${dateTo}`;
|
|
1106
1111
|
}
|
|
1107
|
-
const
|
|
1108
|
-
const dateTo = dateFns.format(date.to, "yyyy-MM-dd");
|
|
1109
|
-
const data = await fetch(
|
|
1110
|
-
`${BACKEND_URL$1}/admin/agilo-analytics/orders?date_from=${dateFrom}&date_to=${dateTo}&preset=${preset}`
|
|
1111
|
-
);
|
|
1112
|
-
const orderAnalytics = await data.json();
|
|
1112
|
+
const orderAnalytics = await sdk.client.fetch(url);
|
|
1113
1113
|
return orderAnalytics;
|
|
1114
1114
|
}
|
|
1115
1115
|
const useOrderAnalytics = (preset, query, options) => {
|
|
@@ -1212,17 +1212,15 @@ const ProductsTableSkeleton = () => {
|
|
|
1212
1212
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DataTable.Table, {})
|
|
1213
1213
|
] });
|
|
1214
1214
|
};
|
|
1215
|
-
const BACKEND_URL = __BACKEND_URL__ === "/" ? "" : __BACKEND_URL__;
|
|
1216
1215
|
async function retrieveCustomersAnalytics(date) {
|
|
1217
1216
|
if (!date || !date.from || !(date == null ? void 0 : date.to)) {
|
|
1218
1217
|
return void 0;
|
|
1219
1218
|
}
|
|
1220
1219
|
const dateFrom = dateFns.format(date.from, "yyyy-MM-dd");
|
|
1221
1220
|
const dateTo = dateFns.format(date.to, "yyyy-MM-dd");
|
|
1222
|
-
const
|
|
1223
|
-
|
|
1221
|
+
const customersAnalytics = await sdk.client.fetch(
|
|
1222
|
+
`/admin/agilo-analytics/customers?date_from=${dateFrom}&date_to=${dateTo}`
|
|
1224
1223
|
);
|
|
1225
|
-
const customersAnalytics = await data.json();
|
|
1226
1224
|
return customersAnalytics;
|
|
1227
1225
|
}
|
|
1228
1226
|
const useCustomerAnalytics = (query, options) => {
|
|
@@ -1312,42 +1310,42 @@ const StackedBarChart = ({
|
|
|
1312
1310
|
};
|
|
1313
1311
|
const dummyData = [
|
|
1314
1312
|
{
|
|
1315
|
-
a: "
|
|
1313
|
+
a: "a1",
|
|
1316
1314
|
b: "b",
|
|
1317
1315
|
c: 0,
|
|
1318
1316
|
d: 0,
|
|
1319
1317
|
e: /* @__PURE__ */ new Date()
|
|
1320
1318
|
},
|
|
1321
1319
|
{
|
|
1322
|
-
a: "
|
|
1320
|
+
a: "a2",
|
|
1323
1321
|
b: "b",
|
|
1324
1322
|
c: 0,
|
|
1325
1323
|
d: 0,
|
|
1326
1324
|
e: /* @__PURE__ */ new Date()
|
|
1327
1325
|
},
|
|
1328
1326
|
{
|
|
1329
|
-
a: "
|
|
1327
|
+
a: "a3",
|
|
1330
1328
|
b: "b",
|
|
1331
1329
|
c: 0,
|
|
1332
1330
|
d: 0,
|
|
1333
1331
|
e: /* @__PURE__ */ new Date()
|
|
1334
1332
|
},
|
|
1335
1333
|
{
|
|
1336
|
-
a: "
|
|
1334
|
+
a: "a4",
|
|
1337
1335
|
b: "b",
|
|
1338
1336
|
c: 0,
|
|
1339
1337
|
d: 0,
|
|
1340
1338
|
e: /* @__PURE__ */ new Date()
|
|
1341
1339
|
},
|
|
1342
1340
|
{
|
|
1343
|
-
a: "
|
|
1341
|
+
a: "a5",
|
|
1344
1342
|
b: "b",
|
|
1345
1343
|
c: 0,
|
|
1346
1344
|
d: 0,
|
|
1347
1345
|
e: /* @__PURE__ */ new Date()
|
|
1348
1346
|
},
|
|
1349
1347
|
{
|
|
1350
|
-
a: "
|
|
1348
|
+
a: "a6",
|
|
1351
1349
|
b: "b",
|
|
1352
1350
|
c: 0,
|
|
1353
1351
|
d: 0,
|
|
@@ -1417,12 +1415,11 @@ const CustomersTable = ({
|
|
|
1417
1415
|
filtered = filtered.slice().sort((a, b) => {
|
|
1418
1416
|
const aVal = a[sorting.id];
|
|
1419
1417
|
const bVal = b[sorting.id];
|
|
1420
|
-
if (aVal
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
if (aVal
|
|
1424
|
-
|
|
1425
|
-
}
|
|
1418
|
+
if (!aVal && !bVal) return 0;
|
|
1419
|
+
if (!aVal) return sorting.desc ? 1 : -1;
|
|
1420
|
+
if (!bVal) return sorting.desc ? -1 : 1;
|
|
1421
|
+
if (aVal < bVal) return sorting.desc ? 1 : -1;
|
|
1422
|
+
if (aVal > bVal) return sorting.desc ? -1 : 1;
|
|
1426
1423
|
return 0;
|
|
1427
1424
|
});
|
|
1428
1425
|
}
|
|
@@ -1570,7 +1567,7 @@ function presetToDateRange(preset) {
|
|
|
1570
1567
|
}
|
|
1571
1568
|
const DATE_RANGE_REGEX = /^(\d{4}-\d{2}-\d{2})-(\d{4}-\d{2}-\d{2})$/;
|
|
1572
1569
|
const AnalyticsPage = () => {
|
|
1573
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
1570
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
1574
1571
|
const [searchParams, setSearchParams] = reactRouterDom.useSearchParams();
|
|
1575
1572
|
const rangeParam = searchParams.get("range") || "this-month";
|
|
1576
1573
|
const date = React__namespace.useMemo(() => {
|
|
@@ -1598,6 +1595,9 @@ const AnalyticsPage = () => {
|
|
|
1598
1595
|
(item) => item.sales > 0
|
|
1599
1596
|
);
|
|
1600
1597
|
const someTopSellingProductsGreaterThanZero = (_c = products == null ? void 0 : products.variantQuantitySold) == null ? void 0 : _c.some((item) => item.quantity > 0);
|
|
1598
|
+
const someCustomerCountsGreaterThanZero = (_d = customers == null ? void 0 : customers.customer_count) == null ? void 0 : _d.some(
|
|
1599
|
+
(item) => (item.new_customers || 0) > 0 || (item.returning_customers || 0) > 0
|
|
1600
|
+
);
|
|
1601
1601
|
const updateDatePreset = React__namespace.useCallback(
|
|
1602
1602
|
(preset) => {
|
|
1603
1603
|
const params = new URLSearchParams(searchParams.toString());
|
|
@@ -1814,7 +1814,7 @@ const AnalyticsPage = () => {
|
|
|
1814
1814
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "min-h-[9.375rem]", children: [
|
|
1815
1815
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "xlarge", weight: "plus", children: "Orders Over Time" }),
|
|
1816
1816
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "small", className: "mb-8 text-ui-fg-muted", children: "Total number of orders in the selected period" }),
|
|
1817
|
-
isLoadingOrders ? /* @__PURE__ */ jsxRuntime.jsx(LineChartSkeleton, {}) : (orders == null ? void 0 : orders.order_count) && ((
|
|
1817
|
+
isLoadingOrders ? /* @__PURE__ */ jsxRuntime.jsx(LineChartSkeleton, {}) : (orders == null ? void 0 : orders.order_count) && ((_e = orders == null ? void 0 : orders.order_count) == null ? void 0 : _e.length) > 0 && someOrderCountsGreaterThanZero ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1818
1818
|
LineChart,
|
|
1819
1819
|
{
|
|
1820
1820
|
data: orders == null ? void 0 : orders.order_count,
|
|
@@ -1854,7 +1854,7 @@ const AnalyticsPage = () => {
|
|
|
1854
1854
|
orders == null ? void 0 : orders.currency_code,
|
|
1855
1855
|
")"
|
|
1856
1856
|
] }),
|
|
1857
|
-
isLoadingOrders ? /* @__PURE__ */ jsxRuntime.jsx(LineChartSkeleton, {}) : (orders == null ? void 0 : orders.order_sales) && ((
|
|
1857
|
+
isLoadingOrders ? /* @__PURE__ */ jsxRuntime.jsx(LineChartSkeleton, {}) : (orders == null ? void 0 : orders.order_sales) && ((_f = orders == null ? void 0 : orders.order_sales) == null ? void 0 : _f.length) > 0 && someOrderSalesGreaterThanZero ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1858
1858
|
LineChart,
|
|
1859
1859
|
{
|
|
1860
1860
|
data: orders.order_sales,
|
|
@@ -1881,7 +1881,7 @@ const AnalyticsPage = () => {
|
|
|
1881
1881
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "min-h-[9.375rem]", children: [
|
|
1882
1882
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "xlarge", weight: "plus", children: "Top Regions by Sales" }),
|
|
1883
1883
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "small", className: "mb-8 text-ui-fg-muted", children: "Sales breakdown by region in the selected period" }),
|
|
1884
|
-
isLoadingOrders ? /* @__PURE__ */ jsxRuntime.jsx(BarChartSkeleton, {}) : (orders == null ? void 0 : orders.regions) && ((
|
|
1884
|
+
isLoadingOrders ? /* @__PURE__ */ jsxRuntime.jsx(BarChartSkeleton, {}) : (orders == null ? void 0 : orders.regions) && ((_g = orders == null ? void 0 : orders.regions) == null ? void 0 : _g.length) > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1885
1885
|
BarChart,
|
|
1886
1886
|
{
|
|
1887
1887
|
data: orders.regions,
|
|
@@ -1907,7 +1907,7 @@ const AnalyticsPage = () => {
|
|
|
1907
1907
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "min-h-[9.375rem]", children: [
|
|
1908
1908
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "xlarge", weight: "plus", children: "Order Status Breakdown" }),
|
|
1909
1909
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "small", className: "mb-8 text-ui-fg-muted", children: "Distribution of orders by status in the selected period" }),
|
|
1910
|
-
isLoadingOrders ? /* @__PURE__ */ jsxRuntime.jsx(PieChartSkeleton, {}) : (orders == null ? void 0 : orders.statuses) && ((
|
|
1910
|
+
isLoadingOrders ? /* @__PURE__ */ jsxRuntime.jsx(PieChartSkeleton, {}) : (orders == null ? void 0 : orders.statuses) && ((_h = orders == null ? void 0 : orders.statuses) == null ? void 0 : _h.length) > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsxRuntime.jsx(PieChart, { data: orders == null ? void 0 : orders.statuses, dataKey: "count" }) }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1911
1911
|
ui.Text,
|
|
1912
1912
|
{
|
|
1913
1913
|
size: "small",
|
|
@@ -1941,7 +1941,7 @@ const AnalyticsPage = () => {
|
|
|
1941
1941
|
isLoadingProducts ? /* @__PURE__ */ jsxRuntime.jsx(ProductsTableSkeleton, {}) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1942
1942
|
ProductsTable,
|
|
1943
1943
|
{
|
|
1944
|
-
products: ((
|
|
1944
|
+
products: ((_i = products == null ? void 0 : products.lowStockVariants) == null ? void 0 : _i.filter(
|
|
1945
1945
|
(product) => product.inventoryQuantity === 0
|
|
1946
1946
|
)) || []
|
|
1947
1947
|
}
|
|
@@ -1953,7 +1953,7 @@ const AnalyticsPage = () => {
|
|
|
1953
1953
|
isLoadingProducts ? /* @__PURE__ */ jsxRuntime.jsx(ProductsTableSkeleton, {}) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1954
1954
|
ProductsTable,
|
|
1955
1955
|
{
|
|
1956
|
-
products: ((
|
|
1956
|
+
products: ((_j = products == null ? void 0 : products.lowStockVariants) == null ? void 0 : _j.filter(
|
|
1957
1957
|
(product) => product.inventoryQuantity > 0
|
|
1958
1958
|
)) || []
|
|
1959
1959
|
}
|
|
@@ -1988,7 +1988,7 @@ const AnalyticsPage = () => {
|
|
|
1988
1988
|
currency: (customers == null ? void 0 : customers.currency_code) || "EUR",
|
|
1989
1989
|
style: "currency"
|
|
1990
1990
|
}).format(
|
|
1991
|
-
(
|
|
1991
|
+
(customers == null ? void 0 : customers.total_customers) && customers.total_customers > 0 ? ((orders == null ? void 0 : orders.total_sales) || 0) / customers.total_customers : 0
|
|
1992
1992
|
) }) })
|
|
1993
1993
|
] })
|
|
1994
1994
|
] })
|
|
@@ -1997,7 +1997,7 @@ const AnalyticsPage = () => {
|
|
|
1997
1997
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Container, { className: "min-h-[9.375rem]", children: [
|
|
1998
1998
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "xlarge", weight: "plus", children: "New vs. Returning Customers" }),
|
|
1999
1999
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Text, { size: "small", className: "mb-8 text-ui-fg-muted", children: "Distribution of new and returning customers in the selected period" }),
|
|
2000
|
-
isLoadingCustomers ? /* @__PURE__ */ jsxRuntime.jsx(BarChartSkeleton, {}) : (customers == null ? void 0 : customers.customer_count) && customers.customer_count.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2000
|
+
isLoadingCustomers ? /* @__PURE__ */ jsxRuntime.jsx(BarChartSkeleton, {}) : (customers == null ? void 0 : customers.customer_count) && customers.customer_count.length > 0 && someCustomerCountsGreaterThanZero ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2001
2001
|
StackedBarChart,
|
|
2002
2002
|
{
|
|
2003
2003
|
data: customers.customer_count,
|
|
@@ -9,6 +9,7 @@ import { format, parse, startOfMonth, endOfMonth, subMonths } from "date-fns";
|
|
|
9
9
|
import { DateRangePicker, Group, DateInput, DateSegment, Button, Popover, Dialog, RangeCalendar, Heading as Heading$1, CalendarGrid, CalendarCell } from "react-aria-components";
|
|
10
10
|
import { useNavigate, useSearchParams } from "react-router-dom";
|
|
11
11
|
import { ResponsiveContainer, BarChart as BarChart$1, CartesianGrid, XAxis, YAxis, Tooltip, Bar, LineChart as LineChart$1, Line, Cell, PieChart as PieChart$1, Pie } from "recharts";
|
|
12
|
+
import Medusa from "@medusajs/js-sdk";
|
|
12
13
|
import { clsx } from "clsx";
|
|
13
14
|
import { twMerge } from "tailwind-merge";
|
|
14
15
|
import { useQuery } from "@tanstack/react-query";
|
|
@@ -809,6 +810,12 @@ function generateColorsForData(data, keyField, saturation = 70, lightness = 50)
|
|
|
809
810
|
(item) => generateStableColor(String(item[keyField]), saturation, lightness)
|
|
810
811
|
);
|
|
811
812
|
}
|
|
813
|
+
const sdk = new Medusa({
|
|
814
|
+
baseUrl: __BACKEND_URL__ || "/",
|
|
815
|
+
auth: {
|
|
816
|
+
type: "session"
|
|
817
|
+
}
|
|
818
|
+
});
|
|
812
819
|
const BarChart = ({
|
|
813
820
|
data,
|
|
814
821
|
xAxisDataKey,
|
|
@@ -1054,17 +1061,15 @@ const ProductsTable = ({ products }) => {
|
|
|
1054
1061
|
products.length > PAGE_SIZE$1 && /* @__PURE__ */ jsx(DataTable.Pagination, {})
|
|
1055
1062
|
] });
|
|
1056
1063
|
};
|
|
1057
|
-
const BACKEND_URL$2 = __BACKEND_URL__ === "/" ? "" : __BACKEND_URL__;
|
|
1058
1064
|
async function retrieveProductAnalytics(date) {
|
|
1059
1065
|
if (!date || !date.from || !(date == null ? void 0 : date.to)) {
|
|
1060
1066
|
return void 0;
|
|
1061
1067
|
}
|
|
1062
1068
|
const dateFrom = format(date.from, "yyyy-MM-dd");
|
|
1063
1069
|
const dateTo = format(date.to, "yyyy-MM-dd");
|
|
1064
|
-
const
|
|
1065
|
-
|
|
1070
|
+
const productAnalytics = await sdk.client.fetch(
|
|
1071
|
+
`/admin/agilo-analytics/products?date_from=${dateFrom}&date_to=${dateTo}`
|
|
1066
1072
|
);
|
|
1067
|
-
const productAnalytics = await data.json();
|
|
1068
1073
|
return productAnalytics;
|
|
1069
1074
|
}
|
|
1070
1075
|
const useProductAnalytics = (query, options) => {
|
|
@@ -1077,21 +1082,14 @@ const useProductAnalytics = (query, options) => {
|
|
|
1077
1082
|
...options
|
|
1078
1083
|
});
|
|
1079
1084
|
};
|
|
1080
|
-
const BACKEND_URL$1 = __BACKEND_URL__ === "/" ? "" : __BACKEND_URL__;
|
|
1081
1085
|
async function retrieveOrderAnalytics(preset, date) {
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
);
|
|
1086
|
-
|
|
1087
|
-
return orderAnalytics2;
|
|
1086
|
+
let url = `/admin/agilo-analytics/orders?preset=${preset}`;
|
|
1087
|
+
if (date && date.from && date.to) {
|
|
1088
|
+
const dateFrom = format(date.from, "yyyy-MM-dd");
|
|
1089
|
+
const dateTo = format(date.to, "yyyy-MM-dd");
|
|
1090
|
+
url = `/admin/agilo-analytics/orders?preset=custom&date_from=${dateFrom}&date_to=${dateTo}`;
|
|
1088
1091
|
}
|
|
1089
|
-
const
|
|
1090
|
-
const dateTo = format(date.to, "yyyy-MM-dd");
|
|
1091
|
-
const data = await fetch(
|
|
1092
|
-
`${BACKEND_URL$1}/admin/agilo-analytics/orders?date_from=${dateFrom}&date_to=${dateTo}&preset=${preset}`
|
|
1093
|
-
);
|
|
1094
|
-
const orderAnalytics = await data.json();
|
|
1092
|
+
const orderAnalytics = await sdk.client.fetch(url);
|
|
1095
1093
|
return orderAnalytics;
|
|
1096
1094
|
}
|
|
1097
1095
|
const useOrderAnalytics = (preset, query, options) => {
|
|
@@ -1194,17 +1192,15 @@ const ProductsTableSkeleton = () => {
|
|
|
1194
1192
|
/* @__PURE__ */ jsx(DataTable.Table, {})
|
|
1195
1193
|
] });
|
|
1196
1194
|
};
|
|
1197
|
-
const BACKEND_URL = __BACKEND_URL__ === "/" ? "" : __BACKEND_URL__;
|
|
1198
1195
|
async function retrieveCustomersAnalytics(date) {
|
|
1199
1196
|
if (!date || !date.from || !(date == null ? void 0 : date.to)) {
|
|
1200
1197
|
return void 0;
|
|
1201
1198
|
}
|
|
1202
1199
|
const dateFrom = format(date.from, "yyyy-MM-dd");
|
|
1203
1200
|
const dateTo = format(date.to, "yyyy-MM-dd");
|
|
1204
|
-
const
|
|
1205
|
-
|
|
1201
|
+
const customersAnalytics = await sdk.client.fetch(
|
|
1202
|
+
`/admin/agilo-analytics/customers?date_from=${dateFrom}&date_to=${dateTo}`
|
|
1206
1203
|
);
|
|
1207
|
-
const customersAnalytics = await data.json();
|
|
1208
1204
|
return customersAnalytics;
|
|
1209
1205
|
}
|
|
1210
1206
|
const useCustomerAnalytics = (query, options) => {
|
|
@@ -1294,42 +1290,42 @@ const StackedBarChart = ({
|
|
|
1294
1290
|
};
|
|
1295
1291
|
const dummyData = [
|
|
1296
1292
|
{
|
|
1297
|
-
a: "
|
|
1293
|
+
a: "a1",
|
|
1298
1294
|
b: "b",
|
|
1299
1295
|
c: 0,
|
|
1300
1296
|
d: 0,
|
|
1301
1297
|
e: /* @__PURE__ */ new Date()
|
|
1302
1298
|
},
|
|
1303
1299
|
{
|
|
1304
|
-
a: "
|
|
1300
|
+
a: "a2",
|
|
1305
1301
|
b: "b",
|
|
1306
1302
|
c: 0,
|
|
1307
1303
|
d: 0,
|
|
1308
1304
|
e: /* @__PURE__ */ new Date()
|
|
1309
1305
|
},
|
|
1310
1306
|
{
|
|
1311
|
-
a: "
|
|
1307
|
+
a: "a3",
|
|
1312
1308
|
b: "b",
|
|
1313
1309
|
c: 0,
|
|
1314
1310
|
d: 0,
|
|
1315
1311
|
e: /* @__PURE__ */ new Date()
|
|
1316
1312
|
},
|
|
1317
1313
|
{
|
|
1318
|
-
a: "
|
|
1314
|
+
a: "a4",
|
|
1319
1315
|
b: "b",
|
|
1320
1316
|
c: 0,
|
|
1321
1317
|
d: 0,
|
|
1322
1318
|
e: /* @__PURE__ */ new Date()
|
|
1323
1319
|
},
|
|
1324
1320
|
{
|
|
1325
|
-
a: "
|
|
1321
|
+
a: "a5",
|
|
1326
1322
|
b: "b",
|
|
1327
1323
|
c: 0,
|
|
1328
1324
|
d: 0,
|
|
1329
1325
|
e: /* @__PURE__ */ new Date()
|
|
1330
1326
|
},
|
|
1331
1327
|
{
|
|
1332
|
-
a: "
|
|
1328
|
+
a: "a6",
|
|
1333
1329
|
b: "b",
|
|
1334
1330
|
c: 0,
|
|
1335
1331
|
d: 0,
|
|
@@ -1399,12 +1395,11 @@ const CustomersTable = ({
|
|
|
1399
1395
|
filtered = filtered.slice().sort((a, b) => {
|
|
1400
1396
|
const aVal = a[sorting.id];
|
|
1401
1397
|
const bVal = b[sorting.id];
|
|
1402
|
-
if (aVal
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
if (aVal
|
|
1406
|
-
|
|
1407
|
-
}
|
|
1398
|
+
if (!aVal && !bVal) return 0;
|
|
1399
|
+
if (!aVal) return sorting.desc ? 1 : -1;
|
|
1400
|
+
if (!bVal) return sorting.desc ? -1 : 1;
|
|
1401
|
+
if (aVal < bVal) return sorting.desc ? 1 : -1;
|
|
1402
|
+
if (aVal > bVal) return sorting.desc ? -1 : 1;
|
|
1408
1403
|
return 0;
|
|
1409
1404
|
});
|
|
1410
1405
|
}
|
|
@@ -1552,7 +1547,7 @@ function presetToDateRange(preset) {
|
|
|
1552
1547
|
}
|
|
1553
1548
|
const DATE_RANGE_REGEX = /^(\d{4}-\d{2}-\d{2})-(\d{4}-\d{2}-\d{2})$/;
|
|
1554
1549
|
const AnalyticsPage = () => {
|
|
1555
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
1550
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
1556
1551
|
const [searchParams, setSearchParams] = useSearchParams();
|
|
1557
1552
|
const rangeParam = searchParams.get("range") || "this-month";
|
|
1558
1553
|
const date = React.useMemo(() => {
|
|
@@ -1580,6 +1575,9 @@ const AnalyticsPage = () => {
|
|
|
1580
1575
|
(item) => item.sales > 0
|
|
1581
1576
|
);
|
|
1582
1577
|
const someTopSellingProductsGreaterThanZero = (_c = products == null ? void 0 : products.variantQuantitySold) == null ? void 0 : _c.some((item) => item.quantity > 0);
|
|
1578
|
+
const someCustomerCountsGreaterThanZero = (_d = customers == null ? void 0 : customers.customer_count) == null ? void 0 : _d.some(
|
|
1579
|
+
(item) => (item.new_customers || 0) > 0 || (item.returning_customers || 0) > 0
|
|
1580
|
+
);
|
|
1583
1581
|
const updateDatePreset = React.useCallback(
|
|
1584
1582
|
(preset) => {
|
|
1585
1583
|
const params = new URLSearchParams(searchParams.toString());
|
|
@@ -1796,7 +1794,7 @@ const AnalyticsPage = () => {
|
|
|
1796
1794
|
/* @__PURE__ */ jsxs(Container, { className: "min-h-[9.375rem]", children: [
|
|
1797
1795
|
/* @__PURE__ */ jsx(Text, { size: "xlarge", weight: "plus", children: "Orders Over Time" }),
|
|
1798
1796
|
/* @__PURE__ */ jsx(Text, { size: "small", className: "mb-8 text-ui-fg-muted", children: "Total number of orders in the selected period" }),
|
|
1799
|
-
isLoadingOrders ? /* @__PURE__ */ jsx(LineChartSkeleton, {}) : (orders == null ? void 0 : orders.order_count) && ((
|
|
1797
|
+
isLoadingOrders ? /* @__PURE__ */ jsx(LineChartSkeleton, {}) : (orders == null ? void 0 : orders.order_count) && ((_e = orders == null ? void 0 : orders.order_count) == null ? void 0 : _e.length) > 0 && someOrderCountsGreaterThanZero ? /* @__PURE__ */ jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsx(
|
|
1800
1798
|
LineChart,
|
|
1801
1799
|
{
|
|
1802
1800
|
data: orders == null ? void 0 : orders.order_count,
|
|
@@ -1836,7 +1834,7 @@ const AnalyticsPage = () => {
|
|
|
1836
1834
|
orders == null ? void 0 : orders.currency_code,
|
|
1837
1835
|
")"
|
|
1838
1836
|
] }),
|
|
1839
|
-
isLoadingOrders ? /* @__PURE__ */ jsx(LineChartSkeleton, {}) : (orders == null ? void 0 : orders.order_sales) && ((
|
|
1837
|
+
isLoadingOrders ? /* @__PURE__ */ jsx(LineChartSkeleton, {}) : (orders == null ? void 0 : orders.order_sales) && ((_f = orders == null ? void 0 : orders.order_sales) == null ? void 0 : _f.length) > 0 && someOrderSalesGreaterThanZero ? /* @__PURE__ */ jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsx(
|
|
1840
1838
|
LineChart,
|
|
1841
1839
|
{
|
|
1842
1840
|
data: orders.order_sales,
|
|
@@ -1863,7 +1861,7 @@ const AnalyticsPage = () => {
|
|
|
1863
1861
|
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxs(Container, { className: "min-h-[9.375rem]", children: [
|
|
1864
1862
|
/* @__PURE__ */ jsx(Text, { size: "xlarge", weight: "plus", children: "Top Regions by Sales" }),
|
|
1865
1863
|
/* @__PURE__ */ jsx(Text, { size: "small", className: "mb-8 text-ui-fg-muted", children: "Sales breakdown by region in the selected period" }),
|
|
1866
|
-
isLoadingOrders ? /* @__PURE__ */ jsx(BarChartSkeleton, {}) : (orders == null ? void 0 : orders.regions) && ((
|
|
1864
|
+
isLoadingOrders ? /* @__PURE__ */ jsx(BarChartSkeleton, {}) : (orders == null ? void 0 : orders.regions) && ((_g = orders == null ? void 0 : orders.regions) == null ? void 0 : _g.length) > 0 ? /* @__PURE__ */ jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsx(
|
|
1867
1865
|
BarChart,
|
|
1868
1866
|
{
|
|
1869
1867
|
data: orders.regions,
|
|
@@ -1889,7 +1887,7 @@ const AnalyticsPage = () => {
|
|
|
1889
1887
|
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxs(Container, { className: "min-h-[9.375rem]", children: [
|
|
1890
1888
|
/* @__PURE__ */ jsx(Text, { size: "xlarge", weight: "plus", children: "Order Status Breakdown" }),
|
|
1891
1889
|
/* @__PURE__ */ jsx(Text, { size: "small", className: "mb-8 text-ui-fg-muted", children: "Distribution of orders by status in the selected period" }),
|
|
1892
|
-
isLoadingOrders ? /* @__PURE__ */ jsx(PieChartSkeleton, {}) : (orders == null ? void 0 : orders.statuses) && ((
|
|
1890
|
+
isLoadingOrders ? /* @__PURE__ */ jsx(PieChartSkeleton, {}) : (orders == null ? void 0 : orders.statuses) && ((_h = orders == null ? void 0 : orders.statuses) == null ? void 0 : _h.length) > 0 ? /* @__PURE__ */ jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsx(PieChart, { data: orders == null ? void 0 : orders.statuses, dataKey: "count" }) }) : /* @__PURE__ */ jsx(
|
|
1893
1891
|
Text,
|
|
1894
1892
|
{
|
|
1895
1893
|
size: "small",
|
|
@@ -1923,7 +1921,7 @@ const AnalyticsPage = () => {
|
|
|
1923
1921
|
isLoadingProducts ? /* @__PURE__ */ jsx(ProductsTableSkeleton, {}) : /* @__PURE__ */ jsx(
|
|
1924
1922
|
ProductsTable,
|
|
1925
1923
|
{
|
|
1926
|
-
products: ((
|
|
1924
|
+
products: ((_i = products == null ? void 0 : products.lowStockVariants) == null ? void 0 : _i.filter(
|
|
1927
1925
|
(product) => product.inventoryQuantity === 0
|
|
1928
1926
|
)) || []
|
|
1929
1927
|
}
|
|
@@ -1935,7 +1933,7 @@ const AnalyticsPage = () => {
|
|
|
1935
1933
|
isLoadingProducts ? /* @__PURE__ */ jsx(ProductsTableSkeleton, {}) : /* @__PURE__ */ jsx(
|
|
1936
1934
|
ProductsTable,
|
|
1937
1935
|
{
|
|
1938
|
-
products: ((
|
|
1936
|
+
products: ((_j = products == null ? void 0 : products.lowStockVariants) == null ? void 0 : _j.filter(
|
|
1939
1937
|
(product) => product.inventoryQuantity > 0
|
|
1940
1938
|
)) || []
|
|
1941
1939
|
}
|
|
@@ -1970,7 +1968,7 @@ const AnalyticsPage = () => {
|
|
|
1970
1968
|
currency: (customers == null ? void 0 : customers.currency_code) || "EUR",
|
|
1971
1969
|
style: "currency"
|
|
1972
1970
|
}).format(
|
|
1973
|
-
(
|
|
1971
|
+
(customers == null ? void 0 : customers.total_customers) && customers.total_customers > 0 ? ((orders == null ? void 0 : orders.total_sales) || 0) / customers.total_customers : 0
|
|
1974
1972
|
) }) })
|
|
1975
1973
|
] })
|
|
1976
1974
|
] })
|
|
@@ -1979,7 +1977,7 @@ const AnalyticsPage = () => {
|
|
|
1979
1977
|
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxs(Container, { className: "min-h-[9.375rem]", children: [
|
|
1980
1978
|
/* @__PURE__ */ jsx(Text, { size: "xlarge", weight: "plus", children: "New vs. Returning Customers" }),
|
|
1981
1979
|
/* @__PURE__ */ jsx(Text, { size: "small", className: "mb-8 text-ui-fg-muted", children: "Distribution of new and returning customers in the selected period" }),
|
|
1982
|
-
isLoadingCustomers ? /* @__PURE__ */ jsx(BarChartSkeleton, {}) : (customers == null ? void 0 : customers.customer_count) && customers.customer_count.length > 0 ? /* @__PURE__ */ jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsx(
|
|
1980
|
+
isLoadingCustomers ? /* @__PURE__ */ jsx(BarChartSkeleton, {}) : (customers == null ? void 0 : customers.customer_count) && customers.customer_count.length > 0 && someCustomerCountsGreaterThanZero ? /* @__PURE__ */ jsx("div", { className: "w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ jsx(
|
|
1983
1981
|
StackedBarChart,
|
|
1984
1982
|
{
|
|
1985
1983
|
data: customers.customer_count,
|
|
@@ -63,10 +63,12 @@ async function GET(req, res) {
|
|
|
63
63
|
}
|
|
64
64
|
return acc;
|
|
65
65
|
}, {}));
|
|
66
|
-
const newCustomers = customers.filter((customer) =>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
const newCustomers = customers.filter((customer) => customer &&
|
|
67
|
+
typeof customer === 'object' &&
|
|
68
|
+
'orders' in customer &&
|
|
69
|
+
Array.isArray(customer.orders) &&
|
|
70
|
+
customer?.orders?.every((order) => new Date(order.created_at) >=
|
|
71
|
+
new Date(result.data.date_from + 'T00:00:00Z')));
|
|
70
72
|
const calculateDateRange = orders_1.calculateDateRangeMethod['custom'];
|
|
71
73
|
if (!calculateDateRange) {
|
|
72
74
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Invalid preset value');
|
|
@@ -100,12 +102,12 @@ async function GET(req, res) {
|
|
|
100
102
|
newCustomers: new Set(),
|
|
101
103
|
};
|
|
102
104
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
if (order.customer &&
|
|
106
|
+
order.customer.id &&
|
|
107
|
+
newCustomers.some((c) => c && typeof c === 'object' && 'id' in c && c.id === order.customer.id)) {
|
|
108
|
+
groupedByKey[key].newCustomers.add(order.customer.id);
|
|
107
109
|
}
|
|
108
|
-
else if (order.customer
|
|
110
|
+
else if (order.customer && order.customer.id) {
|
|
109
111
|
groupedByKey[key].returningCustomers.add(order.customer.id);
|
|
110
112
|
}
|
|
111
113
|
if (order.customer?.groups?.length) {
|
|
@@ -173,4 +175,4 @@ async function GET(req, res) {
|
|
|
173
175
|
};
|
|
174
176
|
res.json(customerData);
|
|
175
177
|
}
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FnaWxvLWFuYWx5dGljcy9jdXN0b21lcnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0JBLGtCQTJPQztBQWxRRCxxREFLbUM7QUFDbkMsdUNBQWtDO0FBQ2xDLDZCQUF3QjtBQUV4QixxREFJa0M7QUFDbEMsaUNBQWlDO0FBRXBCLFFBQUEsaUNBQWlDLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN4RCxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNyQixPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNwQixDQUFDLENBQUM7QUFFSCxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQztBQUV4QixLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxNQUFNLEdBQUcseUNBQWlDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RSxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxNQUFNLE1BQU0sR0FBRyxNQUFNLGtCQUFrQixDQUFDLFVBQVUsQ0FDaEQsRUFBRSxFQUNGLEVBQUUsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUN4QyxDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agilo/medusa-analytics-plugin",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "A simple analytics plugin for Medusa",
|
|
5
5
|
"author": "Ante Primorac <ante@agilo.com>",
|
|
6
6
|
"publishConfig": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"keywords": [
|
|
27
27
|
"medusa",
|
|
28
28
|
"plugin",
|
|
29
|
-
"medusa-plugin-
|
|
29
|
+
"medusa-plugin-integration",
|
|
30
30
|
"medusa-plugin",
|
|
31
31
|
"medusa-v2"
|
|
32
32
|
],
|