@fayz-ai/plugin-shop 0.19.1 → 0.20.0
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.
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +137 -5
- package/dist/index.js.map +1 -1
- package/dist/views/ProductListingTab.d.ts +20 -0
- package/dist/views/ProductListingTab.d.ts.map +1 -0
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -90,6 +90,15 @@ export declare function shopProductMarketPricesTab(options: {
|
|
|
90
90
|
settingsHref?: string;
|
|
91
91
|
label?: string;
|
|
92
92
|
}): DetailTab;
|
|
93
|
+
export { ProductListingTab } from './views/ProductListingTab';
|
|
94
|
+
/**
|
|
95
|
+
* The "Loja" tab for a catalogue product owned by another plugin: puts the
|
|
96
|
+
* product in the store (and its delivery) and picks its store category.
|
|
97
|
+
*/
|
|
98
|
+
export declare function shopProductListingTab(options: {
|
|
99
|
+
provider: () => ShopProviderForTab;
|
|
100
|
+
label?: string;
|
|
101
|
+
}): DetailTab;
|
|
93
102
|
export { buildShopAnalyticsCards } from './analytics/cards';
|
|
94
103
|
export type { Product, Order, ShopCustomer, Discount, Category, CreateProductInput, UpdateProductInput, ListProductsOptions, CreateOrderInput, UpdateOrderInput, ListOrdersOptions, } from '@fayz-ai/shop';
|
|
95
104
|
export { melhorEnvioConnectorDef, MELHOR_ENVIO_CONNECTOR_ID, MELHOR_ENVIO_LATENCY_BUDGET_MS } from './integrations/melhor-envio/connectorDef';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { createConnectionStore, connectionSettings, connectionStatus, settingsSt
|
|
|
5
5
|
import { getShopTenantId, setShopTenantResolver, buildShopMessageDefaults, registerShippingLabelProvider, getShopProvider, buildShopDomainEvents, axesFromOptions, planVariantMatrix, validateVariantAxes, hasOnlyDefaultVariant, MAX_VARIANT_AXES, leavesNothingSellable, productImageToMediaFile, formatVariantCombination, applyVariantMatrix } from '@fayz-ai/shop';
|
|
6
6
|
import { fayzConnectorOAuth, describeConnectorAccount, useOrganizationStore, registerEntityPath, registerPersonLookup, createCrudPage, registerCrudNavTabs, adminNavigateTo, DetailTabHeader, AskAIButton, PageActions, useAgentSurface, askAI, CrudFormPage, SettingsGroup, SelectRow, ToggleRow, RegistryCrudView, useConnectors, useConnectorsPanelAvailable, openConnectorsPanel, MultiSelectRow, AddConnectorButton, AddConnectorPanel, ConnectorDetail, TextRow, ConnectorRow, ConnectorMark, StateChip } from '@fayz-ai/admin';
|
|
7
7
|
import { Package, Eye, FileEdit, PackageX, Users, UsersRound, Filter, UserX, Tag, TicketCheck, Layers, CreditCard, CircleDollarSign, Plus, UploadCloud, Upload, ImageOff, Loader2, WandSparkles, ChevronLeft, ChevronRight, Download, RefreshCw, Trash2, AlertTriangle, X, ExternalLink, Box, ChevronDown, Film, FileText, Warehouse, ArrowRight, MapPin, Car, Truck, Info, Check, Sparkles, Ban, ListChecks, Search, Building2 } from 'lucide-react';
|
|
8
|
-
import { Skeleton, Badge, CurrencyInput, Button,
|
|
8
|
+
import { Skeleton, Badge, CurrencyInput, Button, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, PageTabs, PageHeaderActions, Card, Modal, ModalContent, ModalHeader, ModalTitle, ModalDescription, Input, ModalFooter, Thumbnail, PageHeader, toast, ConfirmDialog, Checkbox, Hint, ModalBody, DataTable } from '@fayz-ai/ui';
|
|
9
9
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
10
10
|
import { listStockReasonCodes, resolveStockStore, createSupabaseStockStore } from '@fayz-ai/shop/inventory';
|
|
11
11
|
import { normalizeMovementType } from '@fayz-ai/inventory/domain/movement';
|
|
@@ -8948,6 +8948,129 @@ function ProductMarketPricesTab({ item, getProvider, settingsHref = "#/settings/
|
|
|
8948
8948
|
] })
|
|
8949
8949
|
] });
|
|
8950
8950
|
}
|
|
8951
|
+
var NO_CATEGORY = "__none__";
|
|
8952
|
+
var STATUS_LABEL3 = {
|
|
8953
|
+
active: { label: "\xC0 venda na loja", variant: "success" },
|
|
8954
|
+
draft: { label: "Rascunho", variant: "secondary" },
|
|
8955
|
+
archived: { label: "Fora da loja", variant: "outline" }
|
|
8956
|
+
};
|
|
8957
|
+
function ProductListingTab({ item, getProvider }) {
|
|
8958
|
+
const catalog = item ?? {};
|
|
8959
|
+
const catalogId = catalog.id;
|
|
8960
|
+
const [listing, setListing] = useState(void 0);
|
|
8961
|
+
const [categories, setCategories] = useState([]);
|
|
8962
|
+
const [categoryId, setCategoryId] = useState(NO_CATEGORY);
|
|
8963
|
+
const [busy, setBusy] = useState(false);
|
|
8964
|
+
const [error, setError] = useState(null);
|
|
8965
|
+
useEffect(() => {
|
|
8966
|
+
if (!catalogId) {
|
|
8967
|
+
setListing(null);
|
|
8968
|
+
return;
|
|
8969
|
+
}
|
|
8970
|
+
let alive = true;
|
|
8971
|
+
setListing(void 0);
|
|
8972
|
+
const provider = getProvider();
|
|
8973
|
+
const lookup = provider.getProductByCatalogId ? provider.getProductByCatalogId(catalogId) : Promise.resolve(null);
|
|
8974
|
+
Promise.all([lookup, provider.listCategories().catch(() => [])]).then(([found, cats]) => {
|
|
8975
|
+
if (!alive) return;
|
|
8976
|
+
setListing(found);
|
|
8977
|
+
setCategories(cats);
|
|
8978
|
+
setCategoryId(found?.categoryId ?? NO_CATEGORY);
|
|
8979
|
+
}).catch((err) => {
|
|
8980
|
+
if (alive) {
|
|
8981
|
+
setListing(null);
|
|
8982
|
+
setError(errorMessage(err));
|
|
8983
|
+
}
|
|
8984
|
+
});
|
|
8985
|
+
return () => {
|
|
8986
|
+
alive = false;
|
|
8987
|
+
};
|
|
8988
|
+
}, [catalogId]);
|
|
8989
|
+
async function publish() {
|
|
8990
|
+
if (!catalogId || !catalog.name) return;
|
|
8991
|
+
setBusy(true);
|
|
8992
|
+
setError(null);
|
|
8993
|
+
try {
|
|
8994
|
+
const created = await getProvider().createProduct({
|
|
8995
|
+
catalogProductId: catalogId,
|
|
8996
|
+
name: catalog.name,
|
|
8997
|
+
description: catalog.description ?? void 0,
|
|
8998
|
+
sku: catalog.sku ?? void 0,
|
|
8999
|
+
price: Number(catalog.salePrice ?? catalog.price ?? 0),
|
|
9000
|
+
// An inactive record goes in as a draft: listed, not sold, until the
|
|
9001
|
+
// record's Ativo switch is turned on.
|
|
9002
|
+
status: catalog.isActive === false ? "draft" : "active",
|
|
9003
|
+
categoryId: categoryId === NO_CATEGORY ? void 0 : categoryId
|
|
9004
|
+
});
|
|
9005
|
+
setListing(created);
|
|
9006
|
+
} catch (err) {
|
|
9007
|
+
setError(errorMessage(err));
|
|
9008
|
+
} finally {
|
|
9009
|
+
setBusy(false);
|
|
9010
|
+
}
|
|
9011
|
+
}
|
|
9012
|
+
async function changeCategory(next) {
|
|
9013
|
+
if (!listing) return;
|
|
9014
|
+
const previous = categoryId;
|
|
9015
|
+
setCategoryId(next);
|
|
9016
|
+
setError(null);
|
|
9017
|
+
try {
|
|
9018
|
+
const updated = await getProvider().updateProduct(listing.id, { categoryId: next === NO_CATEGORY ? null : next });
|
|
9019
|
+
setListing(updated);
|
|
9020
|
+
} catch (err) {
|
|
9021
|
+
setCategoryId(previous);
|
|
9022
|
+
setError(errorMessage(err));
|
|
9023
|
+
}
|
|
9024
|
+
}
|
|
9025
|
+
if (listing === void 0) {
|
|
9026
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-3", "aria-busy": "true", children: [
|
|
9027
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-48" }),
|
|
9028
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-24 w-full" })
|
|
9029
|
+
] });
|
|
9030
|
+
}
|
|
9031
|
+
const categoryPicker = /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
|
|
9032
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground", children: "Categoria na loja" }),
|
|
9033
|
+
/* @__PURE__ */ jsxs(Select, { value: categoryId, onValueChange: (v) => {
|
|
9034
|
+
if (listing) void changeCategory(v);
|
|
9035
|
+
else setCategoryId(v);
|
|
9036
|
+
}, children: [
|
|
9037
|
+
/* @__PURE__ */ jsx(SelectTrigger, { className: "w-72", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Sem categoria" }) }),
|
|
9038
|
+
/* @__PURE__ */ jsxs(SelectContent, { children: [
|
|
9039
|
+
/* @__PURE__ */ jsx(SelectItem, { value: NO_CATEGORY, children: "Sem categoria" }),
|
|
9040
|
+
categories.map((c) => /* @__PURE__ */ jsx(SelectItem, { value: c.id, children: c.name }, c.id))
|
|
9041
|
+
] })
|
|
9042
|
+
] })
|
|
9043
|
+
] });
|
|
9044
|
+
if (!listing) {
|
|
9045
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
9046
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
9047
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: "Loja e delivery" }),
|
|
9048
|
+
/* @__PURE__ */ jsxs("p", { className: "mt-0.5 text-xs text-muted-foreground", children: [
|
|
9049
|
+
"Este produto ainda n\xE3o est\xE1 na loja. Ao colocar, ele aparece no site e no delivery com o nome, o pre\xE7o e a descri\xE7\xE3o deste cadastro",
|
|
9050
|
+
catalog.isActive === false ? " \u2014 como rascunho, at\xE9 o produto ser ativado" : "",
|
|
9051
|
+
"."
|
|
9052
|
+
] })
|
|
9053
|
+
] }),
|
|
9054
|
+
categoryPicker,
|
|
9055
|
+
error && /* @__PURE__ */ jsx("p", { className: "text-sm text-destructive", children: error }),
|
|
9056
|
+
/* @__PURE__ */ jsx(Button, { onClick: () => {
|
|
9057
|
+
void publish();
|
|
9058
|
+
}, disabled: busy || !catalog.name, children: busy ? "Colocando\u2026" : "Colocar na loja" })
|
|
9059
|
+
] });
|
|
9060
|
+
}
|
|
9061
|
+
const status = STATUS_LABEL3[listing.status] ?? { label: listing.status, variant: "outline" };
|
|
9062
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
9063
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
9064
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
9065
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: "Loja e delivery" }),
|
|
9066
|
+
/* @__PURE__ */ jsx(Badge, { variant: status.variant, children: status.label })
|
|
9067
|
+
] }),
|
|
9068
|
+
/* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: "Nome, pre\xE7o e descri\xE7\xE3o v\xEAm deste cadastro. Para tirar o produto da loja, desative-o no cadastro; ativ\xE1-lo de novo o devolve \xE0 venda. Fotos ficam na aba Conte\xFAdo." })
|
|
9069
|
+
] }),
|
|
9070
|
+
categoryPicker,
|
|
9071
|
+
error && /* @__PURE__ */ jsx("p", { className: "text-sm text-destructive", children: error })
|
|
9072
|
+
] });
|
|
9073
|
+
}
|
|
8951
9074
|
|
|
8952
9075
|
// src/index.ts
|
|
8953
9076
|
var ShopPage = React13__default.lazy(() => import('./ShopPage-2CTRGQTX.js').then((m) => ({ default: m.ShopPage })));
|
|
@@ -9354,7 +9477,7 @@ function createShopPlugin(options) {
|
|
|
9354
9477
|
}
|
|
9355
9478
|
},
|
|
9356
9479
|
suggestions: [
|
|
9357
|
-
{ label: "
|
|
9480
|
+
{ label: "Quais produtos est\xE3o dispon\xEDveis?" },
|
|
9358
9481
|
{ label: "Which products are out of stock?" }
|
|
9359
9482
|
]
|
|
9360
9483
|
},
|
|
@@ -9373,8 +9496,8 @@ function createShopPlugin(options) {
|
|
|
9373
9496
|
}
|
|
9374
9497
|
},
|
|
9375
9498
|
suggestions: [
|
|
9376
|
-
{ label: "
|
|
9377
|
-
{ label: "
|
|
9499
|
+
{ label: "Mostre os pedidos pendentes" },
|
|
9500
|
+
{ label: "Quantos pedidos foram pagos hoje?" }
|
|
9378
9501
|
]
|
|
9379
9502
|
}
|
|
9380
9503
|
],
|
|
@@ -9497,7 +9620,16 @@ function shopProductMarketPricesTab(options) {
|
|
|
9497
9620
|
props: { getProvider: options.provider, settingsHref: options.settingsHref ?? "#/settings/shop-markets" }
|
|
9498
9621
|
};
|
|
9499
9622
|
}
|
|
9623
|
+
function shopProductListingTab(options) {
|
|
9624
|
+
return {
|
|
9625
|
+
id: "store-listing",
|
|
9626
|
+
label: options.label ?? "Loja",
|
|
9627
|
+
icon: "Store",
|
|
9628
|
+
component: ProductListingTab,
|
|
9629
|
+
props: { getProvider: options.provider }
|
|
9630
|
+
};
|
|
9631
|
+
}
|
|
9500
9632
|
|
|
9501
|
-
export { ABACATEPAY_CONNECTOR_ID, ABACATEPAY_LATENCY_BUDGET_MS, APPMAX_CONNECTOR_ID, APPMAX_LATENCY_BUDGET_MS, BLING_CONNECTOR_ID, BLING_MARKETPLACE_SOURCE, BLING_MAX_WINDOW_MS, BLING_PAGE_SIZE, BLING_RATE_LIMIT, BLING_SAMPLE_SIZE, BLING_SIGNATURE_HEADER, BLING_TOKEN_LEAD_MS, BLING_WEBHOOK_DEADLINE_MS, BLING_WINDOW_OVERLAP_MS, MELHOR_ENVIO_CONNECTOR_ID, MELHOR_ENVIO_LATENCY_BUDGET_MS, MERCADOPAGO_CONNECTOR_ID, MERCADOPAGO_LATENCY_BUDGET_MS, NEOCHEF_CONNECTOR_ID, NEOCHEF_CURSOR_OVERLAP_MS, NEOCHEF_FUNCTION, NEOCHEF_MARK, NEOCHEF_PAGE_SIZE, NEOCHEF_RATE_LIMIT, NEOCHEF_SAMPLE_SIZE, NEOCHEF_TOKEN_LEAD_MS, ProductContentTab, ProductMarketPricesTab, STRIPE_CONNECT_CONNECTOR_ID, STRIPE_CONNECT_LATENCY_BUDGET_MS, VINDI_CONNECTOR_ID, VINDI_LATENCY_BUDGET_MS, abacatePayConnectorDef, acceptWebhook, advanceNeoChefCursor, appmaxConnectorDef, blingConnectionStore, blingConnectorDef, buildShopAnalyticsCards, createShopPlugin, firstWindow, listOrderDeliveries2 as listOrderDeliveries, melhorEnvioConnectorDef, mercadoPagoConnectorDef, neoChefConnectionStore, neoChefConnectorDef, orphanConnection, pendingOrders2 as pendingOrders, pullCatalogue2 as pullCatalogue, pullProducts, pushOrders2 as pushOrders, reconcile2 as reconcile, routeCallback, sampleProducts, shopProductContentTab, shopProductMarketPricesTab, stripeConnectConnectorDef, testNeoChef, toMirroredNeoChefProduct, toMirroredProduct, toNeoChefOrder, vindiConnectorDef, windowFor };
|
|
9633
|
+
export { ABACATEPAY_CONNECTOR_ID, ABACATEPAY_LATENCY_BUDGET_MS, APPMAX_CONNECTOR_ID, APPMAX_LATENCY_BUDGET_MS, BLING_CONNECTOR_ID, BLING_MARKETPLACE_SOURCE, BLING_MAX_WINDOW_MS, BLING_PAGE_SIZE, BLING_RATE_LIMIT, BLING_SAMPLE_SIZE, BLING_SIGNATURE_HEADER, BLING_TOKEN_LEAD_MS, BLING_WEBHOOK_DEADLINE_MS, BLING_WINDOW_OVERLAP_MS, MELHOR_ENVIO_CONNECTOR_ID, MELHOR_ENVIO_LATENCY_BUDGET_MS, MERCADOPAGO_CONNECTOR_ID, MERCADOPAGO_LATENCY_BUDGET_MS, NEOCHEF_CONNECTOR_ID, NEOCHEF_CURSOR_OVERLAP_MS, NEOCHEF_FUNCTION, NEOCHEF_MARK, NEOCHEF_PAGE_SIZE, NEOCHEF_RATE_LIMIT, NEOCHEF_SAMPLE_SIZE, NEOCHEF_TOKEN_LEAD_MS, ProductContentTab, ProductListingTab, ProductMarketPricesTab, STRIPE_CONNECT_CONNECTOR_ID, STRIPE_CONNECT_LATENCY_BUDGET_MS, VINDI_CONNECTOR_ID, VINDI_LATENCY_BUDGET_MS, abacatePayConnectorDef, acceptWebhook, advanceNeoChefCursor, appmaxConnectorDef, blingConnectionStore, blingConnectorDef, buildShopAnalyticsCards, createShopPlugin, firstWindow, listOrderDeliveries2 as listOrderDeliveries, melhorEnvioConnectorDef, mercadoPagoConnectorDef, neoChefConnectionStore, neoChefConnectorDef, orphanConnection, pendingOrders2 as pendingOrders, pullCatalogue2 as pullCatalogue, pullProducts, pushOrders2 as pushOrders, reconcile2 as reconcile, routeCallback, sampleProducts, shopProductContentTab, shopProductListingTab, shopProductMarketPricesTab, stripeConnectConnectorDef, testNeoChef, toMirroredNeoChefProduct, toMirroredProduct, toNeoChefOrder, vindiConnectorDef, windowFor };
|
|
9502
9634
|
//# sourceMappingURL=index.js.map
|
|
9503
9635
|
//# sourceMappingURL=index.js.map
|