rerobe-js-orm 4.8.6 → 4.8.8
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/lib/constants/merchant-constants.d.ts +57 -0
- package/lib/constants/merchant-constants.js +64 -1
- package/lib/helpers/ReRobeProductHelpers.js +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +7 -1
- package/lib/models/Merchant.d.ts +115 -0
- package/lib/models/Merchant.js +138 -0
- package/lib/models/Product.js +13 -2
- package/lib/types/merchant-types.d.ts +42 -0
- package/package.json +1 -1
|
@@ -3,6 +3,28 @@ export namespace MERCHANT_TYPES {
|
|
|
3
3
|
let business: string;
|
|
4
4
|
let enterprise: string;
|
|
5
5
|
}
|
|
6
|
+
export namespace MERCHANT_ACCOUNT_MODES {
|
|
7
|
+
let standalone: string;
|
|
8
|
+
let managed: string;
|
|
9
|
+
}
|
|
10
|
+
export namespace MERCHANT_ACCOUNT_CLASSES {
|
|
11
|
+
let standard: string;
|
|
12
|
+
let marketplaceSeller: string;
|
|
13
|
+
}
|
|
14
|
+
export namespace MERCHANT_RELATIONSHIP_TYPES {
|
|
15
|
+
let marketplaceSeller_1: string;
|
|
16
|
+
export { marketplaceSeller_1 as marketplaceSeller };
|
|
17
|
+
}
|
|
18
|
+
export namespace MARKETPLACE_SELLER_CAPABILITIES {
|
|
19
|
+
let accessAdminDashboard: string;
|
|
20
|
+
let manageOwnProducts: string;
|
|
21
|
+
let viewOwnOrders: string;
|
|
22
|
+
let viewOwnTransactions: string;
|
|
23
|
+
let manageBusinessProfile: string;
|
|
24
|
+
let manageOwnPayouts: string;
|
|
25
|
+
let upgradeToStandalone: string;
|
|
26
|
+
}
|
|
27
|
+
export const DEFAULT_MARKETPLACE_SELLER_CAPABILITIES: string[];
|
|
6
28
|
export namespace PAYMENT_TIERS {
|
|
7
29
|
export namespace starter {
|
|
8
30
|
let id: string;
|
|
@@ -53,6 +75,41 @@ export namespace UNIT_SYSTEM_TYPES {
|
|
|
53
75
|
let metric: string;
|
|
54
76
|
let imperial: string;
|
|
55
77
|
}
|
|
78
|
+
export namespace LABEL_PRINTER_BARCODE_SYMBOLOGIES {
|
|
79
|
+
let code128: string;
|
|
80
|
+
let ean13: string;
|
|
81
|
+
}
|
|
82
|
+
export namespace LABEL_PRINTER_PROTOCOLS {
|
|
83
|
+
let zebraZpl: string;
|
|
84
|
+
}
|
|
85
|
+
export namespace DEFAULT_LABEL_LAYOUT {
|
|
86
|
+
let topElements: {
|
|
87
|
+
source: string;
|
|
88
|
+
visible: boolean;
|
|
89
|
+
fontSize: number;
|
|
90
|
+
paddingTop: number;
|
|
91
|
+
transform: string;
|
|
92
|
+
}[];
|
|
93
|
+
namespace barcode {
|
|
94
|
+
let visible: boolean;
|
|
95
|
+
let heightDots: number;
|
|
96
|
+
let moduleWidth: number;
|
|
97
|
+
let paddingBottom: number;
|
|
98
|
+
}
|
|
99
|
+
namespace sku {
|
|
100
|
+
let visible_1: boolean;
|
|
101
|
+
export { visible_1 as visible };
|
|
102
|
+
export let fontSize: number;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export namespace LABEL_PRINTER_CONFIG_DEFAULTS {
|
|
106
|
+
export let protocol: string;
|
|
107
|
+
export let widthMm: number;
|
|
108
|
+
export let heightMm: number;
|
|
109
|
+
export let dpi: number;
|
|
110
|
+
export let symbology: string;
|
|
111
|
+
export { DEFAULT_LABEL_LAYOUT as layout };
|
|
112
|
+
}
|
|
56
113
|
export namespace METRIC_WEIGHT_TYPES {
|
|
57
114
|
let kilogram: string;
|
|
58
115
|
let gram: string;
|
|
@@ -1,11 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AUTOMATED_PAYOUT_MONTH_DAYS = exports.AUTOMATED_PAYOUT_BUSINESS_DAYS = exports.AUTOMATED_PAYOUT_SCHEDULE = exports.SUBSCRIPTION_STATUSES = exports.RIBBN_WEBHOOK_EVENT_DICT = exports.IMPERIAL_WEIGHT_TYPES = exports.METRIC_WEIGHT_TYPES = exports.UNIT_SYSTEM_TYPES = exports.INDUSTRY_TYPE_OPTIONS = exports.INDUSTRY_TYPES = exports.PAYMENT_TIERS = exports.MERCHANT_TYPES = void 0;
|
|
3
|
+
exports.AUTOMATED_PAYOUT_MONTH_DAYS = exports.AUTOMATED_PAYOUT_BUSINESS_DAYS = exports.AUTOMATED_PAYOUT_SCHEDULE = exports.SUBSCRIPTION_STATUSES = exports.RIBBN_WEBHOOK_EVENT_DICT = exports.IMPERIAL_WEIGHT_TYPES = exports.METRIC_WEIGHT_TYPES = exports.LABEL_PRINTER_CONFIG_DEFAULTS = exports.DEFAULT_LABEL_LAYOUT = exports.LABEL_PRINTER_PROTOCOLS = exports.LABEL_PRINTER_BARCODE_SYMBOLOGIES = exports.UNIT_SYSTEM_TYPES = exports.INDUSTRY_TYPE_OPTIONS = exports.INDUSTRY_TYPES = exports.PAYMENT_TIERS = exports.DEFAULT_MARKETPLACE_SELLER_CAPABILITIES = exports.MARKETPLACE_SELLER_CAPABILITIES = exports.MERCHANT_RELATIONSHIP_TYPES = exports.MERCHANT_ACCOUNT_CLASSES = exports.MERCHANT_ACCOUNT_MODES = exports.MERCHANT_TYPES = void 0;
|
|
4
4
|
exports.MERCHANT_TYPES = {
|
|
5
5
|
individual: 'INDIVIDUAL',
|
|
6
6
|
business: 'BUSINESS',
|
|
7
7
|
enterprise: 'ENTERPRISE',
|
|
8
8
|
};
|
|
9
|
+
exports.MERCHANT_ACCOUNT_MODES = {
|
|
10
|
+
standalone: 'STANDALONE',
|
|
11
|
+
managed: 'MANAGED',
|
|
12
|
+
};
|
|
13
|
+
exports.MERCHANT_ACCOUNT_CLASSES = {
|
|
14
|
+
standard: 'STANDARD',
|
|
15
|
+
marketplaceSeller: 'MARKETPLACE_SELLER',
|
|
16
|
+
};
|
|
17
|
+
exports.MERCHANT_RELATIONSHIP_TYPES = {
|
|
18
|
+
marketplaceSeller: 'MARKETPLACE_SELLER',
|
|
19
|
+
};
|
|
20
|
+
exports.MARKETPLACE_SELLER_CAPABILITIES = {
|
|
21
|
+
accessAdminDashboard: 'ACCESS_ADMIN_DASHBOARD',
|
|
22
|
+
manageOwnProducts: 'MANAGE_OWN_PRODUCTS',
|
|
23
|
+
viewOwnOrders: 'VIEW_OWN_ORDERS',
|
|
24
|
+
viewOwnTransactions: 'VIEW_OWN_TRANSACTIONS',
|
|
25
|
+
manageBusinessProfile: 'MANAGE_BUSINESS_PROFILE',
|
|
26
|
+
manageOwnPayouts: 'MANAGE_OWN_PAYOUTS',
|
|
27
|
+
upgradeToStandalone: 'UPGRADE_TO_STANDALONE',
|
|
28
|
+
};
|
|
29
|
+
exports.DEFAULT_MARKETPLACE_SELLER_CAPABILITIES = [
|
|
30
|
+
exports.MARKETPLACE_SELLER_CAPABILITIES.accessAdminDashboard,
|
|
31
|
+
exports.MARKETPLACE_SELLER_CAPABILITIES.manageOwnProducts,
|
|
32
|
+
exports.MARKETPLACE_SELLER_CAPABILITIES.viewOwnOrders,
|
|
33
|
+
exports.MARKETPLACE_SELLER_CAPABILITIES.viewOwnTransactions,
|
|
34
|
+
exports.MARKETPLACE_SELLER_CAPABILITIES.manageBusinessProfile,
|
|
35
|
+
exports.MARKETPLACE_SELLER_CAPABILITIES.manageOwnPayouts,
|
|
36
|
+
exports.MARKETPLACE_SELLER_CAPABILITIES.upgradeToStandalone,
|
|
37
|
+
];
|
|
9
38
|
exports.PAYMENT_TIERS = {
|
|
10
39
|
starter: {
|
|
11
40
|
id: 'STARTER',
|
|
@@ -54,6 +83,40 @@ exports.UNIT_SYSTEM_TYPES = {
|
|
|
54
83
|
metric: 'METRIC',
|
|
55
84
|
imperial: 'IMPERIAL',
|
|
56
85
|
};
|
|
86
|
+
// Label printer config controls how price-tag labels are rendered for both
|
|
87
|
+
// the marketplace merchant (channel partner) and any merchants they manage.
|
|
88
|
+
// Source of truth lives on the parent merchant doc; managed merchants read
|
|
89
|
+
// it via the `getMarketplaceParentLabelConfig` API. Connection to the
|
|
90
|
+
// physical printer is per-browser/per-device (WebUSB), not stored here.
|
|
91
|
+
exports.LABEL_PRINTER_BARCODE_SYMBOLOGIES = {
|
|
92
|
+
code128: 'CODE128',
|
|
93
|
+
ean13: 'EAN13',
|
|
94
|
+
};
|
|
95
|
+
exports.LABEL_PRINTER_PROTOCOLS = {
|
|
96
|
+
// ZPL is what the Zebra ZD421 family speaks. Future-proofed for additional
|
|
97
|
+
// protocols (e.g. Epson ePOS-Print) via the same setting shape.
|
|
98
|
+
zebraZpl: 'ZEBRA_ZPL',
|
|
99
|
+
};
|
|
100
|
+
// Sensible defaults sized for a standard 50x30 mm clothing price tag on a
|
|
101
|
+
// 203 dpi Zebra ZD421. Stored as plain numbers/strings so they survive
|
|
102
|
+
// Firestore round-trips without conversion.
|
|
103
|
+
exports.DEFAULT_LABEL_LAYOUT = {
|
|
104
|
+
topElements: [
|
|
105
|
+
{ source: 'merchantName', visible: true, fontSize: 20, paddingTop: 0, transform: 'uppercase' },
|
|
106
|
+
{ source: 'title', visible: true, fontSize: 18, paddingTop: 4, transform: 'none' },
|
|
107
|
+
{ source: 'price', visible: true, fontSize: 30, paddingTop: 8, transform: 'none' },
|
|
108
|
+
],
|
|
109
|
+
barcode: { visible: true, heightDots: 32, moduleWidth: 1, paddingBottom: 8 },
|
|
110
|
+
sku: { visible: true, fontSize: 14 },
|
|
111
|
+
};
|
|
112
|
+
exports.LABEL_PRINTER_CONFIG_DEFAULTS = {
|
|
113
|
+
protocol: 'ZEBRA_ZPL',
|
|
114
|
+
widthMm: 30,
|
|
115
|
+
heightMm: 20,
|
|
116
|
+
dpi: 203,
|
|
117
|
+
symbology: 'CODE128',
|
|
118
|
+
layout: exports.DEFAULT_LABEL_LAYOUT,
|
|
119
|
+
};
|
|
57
120
|
exports.METRIC_WEIGHT_TYPES = {
|
|
58
121
|
kilogram: 'KILOGRAM',
|
|
59
122
|
gram: 'GRAM',
|
|
@@ -196,7 +196,7 @@ class ReRobeProductHelpers {
|
|
|
196
196
|
return descriptionArr.filter((d) => d);
|
|
197
197
|
}
|
|
198
198
|
static autoCreateFullDescriptionHTML(productObj, customHeading) {
|
|
199
|
-
const productStyle = productObj.productStyle.join(', ');
|
|
199
|
+
const productStyle = (productObj.productStyle || []).join(', ');
|
|
200
200
|
const size = this.getSizeLabel(productObj.clothingSize, productObj.shoeSize, productObj.jeanSize);
|
|
201
201
|
const sizeComment = productObj.sizeComment;
|
|
202
202
|
const color = productObj.color;
|
package/lib/index.d.ts
CHANGED
|
@@ -40,4 +40,5 @@ import MerchantConfigAutomatedPayoutsFormState from './form-states/Merchant/Merc
|
|
|
40
40
|
import ReRobeProductHelpers from './helpers/ReRobeProductHelpers';
|
|
41
41
|
import AnalyticsHelpers from './helpers/AnalyticsHelpers';
|
|
42
42
|
import OrderHelpers from './helpers/OrderHelpers';
|
|
43
|
-
|
|
43
|
+
import { DEFAULT_MARKETPLACE_SELLER_CAPABILITIES, MARKETPLACE_SELLER_CAPABILITIES, MERCHANT_ACCOUNT_CLASSES, MERCHANT_ACCOUNT_MODES, MERCHANT_RELATIONSHIP_TYPES } from './constants/merchant-constants';
|
|
44
|
+
export { RibbnFile, ProductFromAlgoliaJSONDoc, ProductFromShopifyWebhookJSONDoc, ProductFromShopifyJSClientJSONDoc, ProductFormStateFactory, ProductCollectionFormStateFactory, ProductCollectionHelpers, SellRequestFormStateFactory, PickUpFormStateFactory, AddressFormStateFactory, UserFormStateFactory, UserFromShopifyWebhookJSONDoc, UserFromAuthTemplateMethod, DraftOrderFromMirakl, DraftOrderFromApp, ChatRoomFromNewUserSignUp, KlarnaSessionFactory, Product, ProductStateManager, Order, OrderFromShopifyWebhook, OrderFromShopifyAdminApi, OrderFromShopifyStorefrontApi, OrderFromApp, OrderFromTraderaEmail, OrderFormStateFactory, RefundFormStateFactory, PayoutAccount, PayoutAccountFormState, Merchant, MERCHANT_ACCOUNT_MODES, MERCHANT_ACCOUNT_CLASSES, MERCHANT_RELATIONSHIP_TYPES, MARKETPLACE_SELLER_CAPABILITIES, DEFAULT_MARKETPLACE_SELLER_CAPABILITIES, MerchantFormState, MerchantFormStateFactory, MerchantConfigAutomatedPayouts, MerchantConfigAutomatedPayoutsFormState, ReRobeProductHelpers, User, AnalyticsHelpers, OrderHelpers, WebhookFormState, MerchantWebPage, ShopifyMerchantAccount, CustomerNotification, };
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CustomerNotification = exports.ShopifyMerchantAccount = exports.MerchantWebPage = exports.WebhookFormState = exports.OrderHelpers = exports.AnalyticsHelpers = exports.User = exports.ReRobeProductHelpers = exports.MerchantConfigAutomatedPayoutsFormState = exports.MerchantConfigAutomatedPayouts = exports.MerchantFormStateFactory = exports.MerchantFormState = exports.Merchant = exports.PayoutAccountFormState = exports.PayoutAccount = exports.RefundFormStateFactory = exports.OrderFormStateFactory = exports.OrderFromTraderaEmail = exports.OrderFromApp = exports.OrderFromShopifyStorefrontApi = exports.OrderFromShopifyAdminApi = exports.OrderFromShopifyWebhook = exports.Order = exports.ProductStateManager = exports.Product = exports.KlarnaSessionFactory = exports.ChatRoomFromNewUserSignUp = exports.DraftOrderFromApp = exports.DraftOrderFromMirakl = exports.UserFromAuthTemplateMethod = exports.UserFromShopifyWebhookJSONDoc = exports.UserFormStateFactory = exports.AddressFormStateFactory = exports.PickUpFormStateFactory = exports.SellRequestFormStateFactory = exports.ProductCollectionHelpers = exports.ProductCollectionFormStateFactory = exports.ProductFormStateFactory = exports.ProductFromShopifyJSClientJSONDoc = exports.ProductFromShopifyWebhookJSONDoc = exports.ProductFromAlgoliaJSONDoc = exports.RibbnFile = void 0;
|
|
3
|
+
exports.CustomerNotification = exports.ShopifyMerchantAccount = exports.MerchantWebPage = exports.WebhookFormState = exports.OrderHelpers = exports.AnalyticsHelpers = exports.User = exports.ReRobeProductHelpers = exports.MerchantConfigAutomatedPayoutsFormState = exports.MerchantConfigAutomatedPayouts = exports.MerchantFormStateFactory = exports.MerchantFormState = exports.DEFAULT_MARKETPLACE_SELLER_CAPABILITIES = exports.MARKETPLACE_SELLER_CAPABILITIES = exports.MERCHANT_RELATIONSHIP_TYPES = exports.MERCHANT_ACCOUNT_CLASSES = exports.MERCHANT_ACCOUNT_MODES = exports.Merchant = exports.PayoutAccountFormState = exports.PayoutAccount = exports.RefundFormStateFactory = exports.OrderFormStateFactory = exports.OrderFromTraderaEmail = exports.OrderFromApp = exports.OrderFromShopifyStorefrontApi = exports.OrderFromShopifyAdminApi = exports.OrderFromShopifyWebhook = exports.Order = exports.ProductStateManager = exports.Product = exports.KlarnaSessionFactory = exports.ChatRoomFromNewUserSignUp = exports.DraftOrderFromApp = exports.DraftOrderFromMirakl = exports.UserFromAuthTemplateMethod = exports.UserFromShopifyWebhookJSONDoc = exports.UserFormStateFactory = exports.AddressFormStateFactory = exports.PickUpFormStateFactory = exports.SellRequestFormStateFactory = exports.ProductCollectionHelpers = exports.ProductCollectionFormStateFactory = exports.ProductFormStateFactory = exports.ProductFromShopifyJSClientJSONDoc = exports.ProductFromShopifyWebhookJSONDoc = exports.ProductFromAlgoliaJSONDoc = exports.RibbnFile = void 0;
|
|
4
4
|
const ProductFromShopifyJSClientJSONDoc_1 = require("./factories/Product/ProductFromShopifyJSClientJSONDoc");
|
|
5
5
|
exports.ProductFromShopifyJSClientJSONDoc = ProductFromShopifyJSClientJSONDoc_1.default;
|
|
6
6
|
const ProductFromAlgoliaJSONDoc_1 = require("./factories/Product/ProductFromAlgoliaJSONDoc");
|
|
@@ -85,3 +85,9 @@ const AnalyticsHelpers_1 = require("./helpers/AnalyticsHelpers");
|
|
|
85
85
|
exports.AnalyticsHelpers = AnalyticsHelpers_1.default;
|
|
86
86
|
const OrderHelpers_1 = require("./helpers/OrderHelpers");
|
|
87
87
|
exports.OrderHelpers = OrderHelpers_1.default;
|
|
88
|
+
const merchant_constants_1 = require("./constants/merchant-constants");
|
|
89
|
+
Object.defineProperty(exports, "DEFAULT_MARKETPLACE_SELLER_CAPABILITIES", { enumerable: true, get: function () { return merchant_constants_1.DEFAULT_MARKETPLACE_SELLER_CAPABILITIES; } });
|
|
90
|
+
Object.defineProperty(exports, "MARKETPLACE_SELLER_CAPABILITIES", { enumerable: true, get: function () { return merchant_constants_1.MARKETPLACE_SELLER_CAPABILITIES; } });
|
|
91
|
+
Object.defineProperty(exports, "MERCHANT_ACCOUNT_CLASSES", { enumerable: true, get: function () { return merchant_constants_1.MERCHANT_ACCOUNT_CLASSES; } });
|
|
92
|
+
Object.defineProperty(exports, "MERCHANT_ACCOUNT_MODES", { enumerable: true, get: function () { return merchant_constants_1.MERCHANT_ACCOUNT_MODES; } });
|
|
93
|
+
Object.defineProperty(exports, "MERCHANT_RELATIONSHIP_TYPES", { enumerable: true, get: function () { return merchant_constants_1.MERCHANT_RELATIONSHIP_TYPES; } });
|
package/lib/models/Merchant.d.ts
CHANGED
|
@@ -1,4 +1,35 @@
|
|
|
1
1
|
import Base from '../Base';
|
|
2
|
+
export type LabelTextSource = 'merchantName' | 'title' | 'price';
|
|
3
|
+
export type LabelTextElement = {
|
|
4
|
+
source: LabelTextSource | string;
|
|
5
|
+
visible: boolean;
|
|
6
|
+
fontSize: number;
|
|
7
|
+
paddingTop: number;
|
|
8
|
+
transform: 'uppercase' | 'none' | string;
|
|
9
|
+
};
|
|
10
|
+
export type LabelBarcodeConfig = {
|
|
11
|
+
visible: boolean;
|
|
12
|
+
heightDots: number;
|
|
13
|
+
moduleWidth: 1 | 2;
|
|
14
|
+
paddingBottom: number;
|
|
15
|
+
};
|
|
16
|
+
export type LabelSkuConfig = {
|
|
17
|
+
visible: boolean;
|
|
18
|
+
fontSize: number;
|
|
19
|
+
};
|
|
20
|
+
export type LabelLayout = {
|
|
21
|
+
topElements: LabelTextElement[];
|
|
22
|
+
barcode: LabelBarcodeConfig;
|
|
23
|
+
sku: LabelSkuConfig;
|
|
24
|
+
};
|
|
25
|
+
export type LabelPrinterConfig = {
|
|
26
|
+
protocol: string;
|
|
27
|
+
widthMm: number;
|
|
28
|
+
heightMm: number;
|
|
29
|
+
dpi: number;
|
|
30
|
+
symbology: string;
|
|
31
|
+
layout: LabelLayout;
|
|
32
|
+
};
|
|
2
33
|
export default class Merchant extends Base {
|
|
3
34
|
static MERCHANT_TYPES: {
|
|
4
35
|
individual: string;
|
|
@@ -25,6 +56,79 @@ export default class Merchant extends Base {
|
|
|
25
56
|
currency: string;
|
|
26
57
|
};
|
|
27
58
|
};
|
|
59
|
+
static MERCHANT_ACCOUNT_MODES: {
|
|
60
|
+
standalone: string;
|
|
61
|
+
managed: string;
|
|
62
|
+
};
|
|
63
|
+
static MERCHANT_ACCOUNT_CLASSES: {
|
|
64
|
+
standard: string;
|
|
65
|
+
marketplaceSeller: string;
|
|
66
|
+
};
|
|
67
|
+
static MERCHANT_RELATIONSHIP_TYPES: {
|
|
68
|
+
marketplaceSeller: string;
|
|
69
|
+
};
|
|
70
|
+
static MARKETPLACE_SELLER_CAPABILITIES: {
|
|
71
|
+
accessAdminDashboard: string;
|
|
72
|
+
manageOwnProducts: string;
|
|
73
|
+
viewOwnOrders: string;
|
|
74
|
+
viewOwnTransactions: string;
|
|
75
|
+
manageBusinessProfile: string;
|
|
76
|
+
manageOwnPayouts: string;
|
|
77
|
+
upgradeToStandalone: string;
|
|
78
|
+
};
|
|
79
|
+
static DEFAULT_MARKETPLACE_SELLER_CAPABILITIES: string[];
|
|
80
|
+
static LABEL_PRINTER_BARCODE_SYMBOLOGIES: {
|
|
81
|
+
code128: string;
|
|
82
|
+
ean13: string;
|
|
83
|
+
};
|
|
84
|
+
static LABEL_PRINTER_PROTOCOLS: {
|
|
85
|
+
zebraZpl: string;
|
|
86
|
+
};
|
|
87
|
+
static LABEL_PRINTER_CONFIG_DEFAULTS: {
|
|
88
|
+
protocol: string;
|
|
89
|
+
widthMm: number;
|
|
90
|
+
heightMm: number;
|
|
91
|
+
dpi: number;
|
|
92
|
+
symbology: string;
|
|
93
|
+
layout: {
|
|
94
|
+
topElements: {
|
|
95
|
+
source: string;
|
|
96
|
+
visible: boolean;
|
|
97
|
+
fontSize: number;
|
|
98
|
+
paddingTop: number;
|
|
99
|
+
transform: string;
|
|
100
|
+
}[];
|
|
101
|
+
barcode: {
|
|
102
|
+
visible: boolean;
|
|
103
|
+
heightDots: number;
|
|
104
|
+
moduleWidth: number;
|
|
105
|
+
paddingBottom: number;
|
|
106
|
+
};
|
|
107
|
+
sku: {
|
|
108
|
+
visible: boolean;
|
|
109
|
+
fontSize: number;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
static DEFAULT_LABEL_LAYOUT: {
|
|
114
|
+
topElements: {
|
|
115
|
+
source: string;
|
|
116
|
+
visible: boolean;
|
|
117
|
+
fontSize: number;
|
|
118
|
+
paddingTop: number;
|
|
119
|
+
transform: string;
|
|
120
|
+
}[];
|
|
121
|
+
barcode: {
|
|
122
|
+
visible: boolean;
|
|
123
|
+
heightDots: number;
|
|
124
|
+
moduleWidth: number;
|
|
125
|
+
paddingBottom: number;
|
|
126
|
+
};
|
|
127
|
+
sku: {
|
|
128
|
+
visible: boolean;
|
|
129
|
+
fontSize: number;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
28
132
|
static INDUSTRY_TYPES: {
|
|
29
133
|
beauty: string;
|
|
30
134
|
clothing: string;
|
|
@@ -91,11 +195,22 @@ export default class Merchant extends Base {
|
|
|
91
195
|
hasAutomatedPayouts?: boolean;
|
|
92
196
|
hasAIQuickList?: boolean;
|
|
93
197
|
hasReceiptPrinter?: boolean;
|
|
198
|
+
hasLabelPrinter?: boolean;
|
|
199
|
+
labelPrinterConfig?: LabelPrinterConfig;
|
|
94
200
|
hasActiveWebshop?: boolean;
|
|
95
201
|
stripeSubscription?: StripeSubscription;
|
|
96
202
|
subscriptionStatus?: string;
|
|
97
203
|
channelPartners?: string[];
|
|
204
|
+
accountMode?: MerchantAccountMode | string;
|
|
205
|
+
accountClass?: MerchantAccountClass | string;
|
|
206
|
+
sellerBusinessType?: string;
|
|
207
|
+
managedByMerchantId?: string;
|
|
208
|
+
canUpgradeToStandalone?: boolean;
|
|
209
|
+
featureAccess?: MerchantFeatureAccess | null;
|
|
210
|
+
isMarketplaceSeller?: boolean;
|
|
98
211
|
constructor(props?: any);
|
|
212
|
+
static normalizeLabelPrinterConfig(input?: Partial<LabelPrinterConfig> | Record<string, any> | null): LabelPrinterConfig;
|
|
99
213
|
toObj(): MerchantObj;
|
|
100
214
|
toMerchantMutableData(): MerchantMutableData;
|
|
215
|
+
isManagedMarketplaceMerchant(): boolean;
|
|
101
216
|
}
|
package/lib/models/Merchant.js
CHANGED
|
@@ -55,9 +55,20 @@ class Merchant extends Base_1.default {
|
|
|
55
55
|
this.returnPolicy = (props === null || props === void 0 ? void 0 : props.returnPolicy) || '';
|
|
56
56
|
this.subscriptionStatus = (props === null || props === void 0 ? void 0 : props.subscriptionStatus) || merchant_constants_1.SUBSCRIPTION_STATUSES.trialing;
|
|
57
57
|
this.hasActiveWebshop = (props === null || props === void 0 ? void 0 : props.hasActiveWebshop) || false;
|
|
58
|
+
this.accountMode = (props === null || props === void 0 ? void 0 : props.accountMode) || Merchant.MERCHANT_ACCOUNT_MODES.standalone;
|
|
59
|
+
this.accountClass = (props === null || props === void 0 ? void 0 : props.accountClass) || Merchant.MERCHANT_ACCOUNT_CLASSES.standard;
|
|
60
|
+
this.sellerBusinessType = (props === null || props === void 0 ? void 0 : props.sellerBusinessType) || '';
|
|
61
|
+
this.managedByMerchantId = (props === null || props === void 0 ? void 0 : props.managedByMerchantId) || '';
|
|
62
|
+
if (typeof (props === null || props === void 0 ? void 0 : props.canUpgradeToStandalone) === 'boolean') {
|
|
63
|
+
this.canUpgradeToStandalone = props.canUpgradeToStandalone;
|
|
64
|
+
}
|
|
65
|
+
this.featureAccess = (props === null || props === void 0 ? void 0 : props.featureAccess) || null;
|
|
58
66
|
if ((props === null || props === void 0 ? void 0 : props.channelPartners) && Array.isArray(props.channelPartners)) {
|
|
59
67
|
this.channelPartners = props.channelPartners;
|
|
60
68
|
}
|
|
69
|
+
if (typeof (props === null || props === void 0 ? void 0 : props.isMarketplaceSeller) === 'boolean') {
|
|
70
|
+
this.isMarketplaceSeller = props.isMarketplaceSeller;
|
|
71
|
+
}
|
|
61
72
|
if (props === null || props === void 0 ? void 0 : props.isChannelPartner) {
|
|
62
73
|
this.isChannelPartner = props.isChannelPartner;
|
|
63
74
|
}
|
|
@@ -79,6 +90,82 @@ class Merchant extends Base_1.default {
|
|
|
79
90
|
if (props === null || props === void 0 ? void 0 : props.hasReceiptPrinter) {
|
|
80
91
|
this.hasReceiptPrinter = props.hasReceiptPrinter;
|
|
81
92
|
}
|
|
93
|
+
if (props === null || props === void 0 ? void 0 : props.hasLabelPrinter) {
|
|
94
|
+
this.hasLabelPrinter = props.hasLabelPrinter;
|
|
95
|
+
}
|
|
96
|
+
if ((props === null || props === void 0 ? void 0 : props.labelPrinterConfig) && typeof props.labelPrinterConfig === 'object') {
|
|
97
|
+
this.labelPrinterConfig = Merchant.normalizeLabelPrinterConfig(props.labelPrinterConfig);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Coerce arbitrary input into a fully-populated, type-safe LabelPrinterConfig
|
|
101
|
+
// by layering it over the defaults. Migrates legacy `showFields` shapes
|
|
102
|
+
// into the new `layout` schema so older stored configs keep working.
|
|
103
|
+
static normalizeLabelPrinterConfig(input) {
|
|
104
|
+
const defaults = Merchant.LABEL_PRINTER_CONFIG_DEFAULTS;
|
|
105
|
+
const raw = (input || {});
|
|
106
|
+
const protocol = typeof raw.protocol === 'string' && raw.protocol ? raw.protocol : defaults.protocol;
|
|
107
|
+
const symbology = typeof raw.symbology === 'string' && raw.symbology ? raw.symbology : defaults.symbology;
|
|
108
|
+
const layout = (() => {
|
|
109
|
+
const fallback = defaults.layout;
|
|
110
|
+
const rawLayout = raw.layout && typeof raw.layout === 'object' ? raw.layout : null;
|
|
111
|
+
const legacyShowFields = raw.showFields && typeof raw.showFields === 'object' ? raw.showFields : null;
|
|
112
|
+
if (!rawLayout && legacyShowFields) {
|
|
113
|
+
return {
|
|
114
|
+
topElements: fallback.topElements.map((el) => (Object.assign(Object.assign({}, el), { visible: legacyShowFields[el.source] !== false }))),
|
|
115
|
+
barcode: Object.assign({}, fallback.barcode),
|
|
116
|
+
sku: Object.assign(Object.assign({}, fallback.sku), { visible: legacyShowFields.sku !== false }),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (!rawLayout) {
|
|
120
|
+
return {
|
|
121
|
+
topElements: fallback.topElements.map((el) => (Object.assign({}, el))),
|
|
122
|
+
barcode: Object.assign({}, fallback.barcode),
|
|
123
|
+
sku: Object.assign({}, fallback.sku),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
const rawTop = Array.isArray(rawLayout.topElements) ? rawLayout.topElements : [];
|
|
127
|
+
const topElements = rawTop
|
|
128
|
+
.map((entry, index) => {
|
|
129
|
+
if (!entry || typeof entry !== 'object')
|
|
130
|
+
return null;
|
|
131
|
+
const fb = fallback.topElements.find((e) => e.source === entry.source) ||
|
|
132
|
+
fallback.topElements[index] ||
|
|
133
|
+
fallback.topElements[0];
|
|
134
|
+
return {
|
|
135
|
+
source: typeof entry.source === 'string' ? entry.source : fb.source,
|
|
136
|
+
visible: typeof entry.visible === 'boolean' ? entry.visible : fb.visible,
|
|
137
|
+
fontSize: Number(entry.fontSize) > 0 ? Number(entry.fontSize) : fb.fontSize,
|
|
138
|
+
paddingTop: Number(entry.paddingTop) >= 0 ? Number(entry.paddingTop) : fb.paddingTop,
|
|
139
|
+
transform: entry.transform === 'uppercase' || entry.transform === 'none' ? entry.transform : fb.transform,
|
|
140
|
+
};
|
|
141
|
+
})
|
|
142
|
+
.filter(Boolean);
|
|
143
|
+
const rawBarcode = (rawLayout.barcode || {});
|
|
144
|
+
const barcode = {
|
|
145
|
+
visible: typeof rawBarcode.visible === 'boolean' ? rawBarcode.visible : fallback.barcode.visible,
|
|
146
|
+
heightDots: Number(rawBarcode.heightDots) > 0 ? Number(rawBarcode.heightDots) : fallback.barcode.heightDots,
|
|
147
|
+
moduleWidth: rawBarcode.moduleWidth === 2 ? 2 : 1,
|
|
148
|
+
paddingBottom: Number(rawBarcode.paddingBottom) >= 0 ? Number(rawBarcode.paddingBottom) : fallback.barcode.paddingBottom,
|
|
149
|
+
};
|
|
150
|
+
const rawSku = (rawLayout.sku || {});
|
|
151
|
+
const sku = {
|
|
152
|
+
visible: typeof rawSku.visible === 'boolean' ? rawSku.visible : fallback.sku.visible,
|
|
153
|
+
fontSize: Number(rawSku.fontSize) > 0 ? Number(rawSku.fontSize) : fallback.sku.fontSize,
|
|
154
|
+
};
|
|
155
|
+
return {
|
|
156
|
+
topElements: topElements.length > 0 ? topElements : fallback.topElements.map((el) => (Object.assign({}, el))),
|
|
157
|
+
barcode,
|
|
158
|
+
sku,
|
|
159
|
+
};
|
|
160
|
+
})();
|
|
161
|
+
return {
|
|
162
|
+
protocol,
|
|
163
|
+
widthMm: Number(raw.widthMm) > 0 ? Number(raw.widthMm) : defaults.widthMm,
|
|
164
|
+
heightMm: Number(raw.heightMm) > 0 ? Number(raw.heightMm) : defaults.heightMm,
|
|
165
|
+
dpi: Number(raw.dpi) > 0 ? Number(raw.dpi) : defaults.dpi,
|
|
166
|
+
symbology,
|
|
167
|
+
layout,
|
|
168
|
+
};
|
|
82
169
|
}
|
|
83
170
|
toObj() {
|
|
84
171
|
const mObj = {
|
|
@@ -113,10 +200,27 @@ class Merchant extends Base_1.default {
|
|
|
113
200
|
returnPolicy: this.returnPolicy,
|
|
114
201
|
subscriptionStatus: this.subscriptionStatus,
|
|
115
202
|
hasActiveWebshop: this.hasActiveWebshop,
|
|
203
|
+
accountMode: this.accountMode,
|
|
204
|
+
accountClass: this.accountClass,
|
|
116
205
|
};
|
|
206
|
+
if (this.sellerBusinessType) {
|
|
207
|
+
mObj.sellerBusinessType = this.sellerBusinessType;
|
|
208
|
+
}
|
|
209
|
+
if (this.managedByMerchantId) {
|
|
210
|
+
mObj.managedByMerchantId = this.managedByMerchantId;
|
|
211
|
+
}
|
|
212
|
+
if (typeof this.canUpgradeToStandalone === 'boolean') {
|
|
213
|
+
mObj.canUpgradeToStandalone = this.canUpgradeToStandalone;
|
|
214
|
+
}
|
|
215
|
+
if (this.featureAccess) {
|
|
216
|
+
mObj.featureAccess = this.featureAccess;
|
|
217
|
+
}
|
|
117
218
|
if (this.channelPartners && Array.isArray(this.channelPartners)) {
|
|
118
219
|
mObj.channelPartners = this.channelPartners;
|
|
119
220
|
}
|
|
221
|
+
if (typeof this.isMarketplaceSeller === 'boolean') {
|
|
222
|
+
mObj.isMarketplaceSeller = this.isMarketplaceSeller;
|
|
223
|
+
}
|
|
120
224
|
if (this.isChannelPartner) {
|
|
121
225
|
mObj.isChannelPartner = this.isChannelPartner;
|
|
122
226
|
}
|
|
@@ -138,6 +242,12 @@ class Merchant extends Base_1.default {
|
|
|
138
242
|
if (this.hasReceiptPrinter) {
|
|
139
243
|
mObj.hasReceiptPrinter = this.hasReceiptPrinter;
|
|
140
244
|
}
|
|
245
|
+
if (this.hasLabelPrinter) {
|
|
246
|
+
mObj.hasLabelPrinter = this.hasLabelPrinter;
|
|
247
|
+
}
|
|
248
|
+
if (this.labelPrinterConfig) {
|
|
249
|
+
mObj.labelPrinterConfig = this.labelPrinterConfig;
|
|
250
|
+
}
|
|
141
251
|
if (this.organizationNumbers && Object.keys(this.organizationNumbers).length > 0) {
|
|
142
252
|
mObj.organizationNumbers = this.organizationNumbers;
|
|
143
253
|
}
|
|
@@ -161,15 +271,43 @@ class Merchant extends Base_1.default {
|
|
|
161
271
|
primaryDomain: this.primaryDomain,
|
|
162
272
|
webhooks: this.webhooks,
|
|
163
273
|
socialLinks: this.socialLinks,
|
|
274
|
+
accountMode: this.accountMode,
|
|
275
|
+
accountClass: this.accountClass,
|
|
164
276
|
};
|
|
277
|
+
if (this.sellerBusinessType) {
|
|
278
|
+
data.sellerBusinessType = this.sellerBusinessType;
|
|
279
|
+
}
|
|
280
|
+
if (this.managedByMerchantId) {
|
|
281
|
+
data.managedByMerchantId = this.managedByMerchantId;
|
|
282
|
+
}
|
|
283
|
+
if (typeof this.canUpgradeToStandalone === 'boolean') {
|
|
284
|
+
data.canUpgradeToStandalone = this.canUpgradeToStandalone;
|
|
285
|
+
}
|
|
286
|
+
if (this.featureAccess) {
|
|
287
|
+
data.featureAccess = this.featureAccess;
|
|
288
|
+
}
|
|
165
289
|
if (this.organizationNumbers && Object.keys(this.organizationNumbers).length > 0) {
|
|
166
290
|
data.organizationNumbers = this.organizationNumbers;
|
|
167
291
|
}
|
|
168
292
|
return data;
|
|
169
293
|
}
|
|
294
|
+
isManagedMarketplaceMerchant() {
|
|
295
|
+
return (this.accountMode === Merchant.MERCHANT_ACCOUNT_MODES.managed ||
|
|
296
|
+
this.accountClass === Merchant.MERCHANT_ACCOUNT_CLASSES.marketplaceSeller ||
|
|
297
|
+
this.isMarketplaceSeller === true);
|
|
298
|
+
}
|
|
170
299
|
}
|
|
171
300
|
Merchant.MERCHANT_TYPES = merchant_constants_1.MERCHANT_TYPES;
|
|
172
301
|
Merchant.PAYMENT_TIERS = merchant_constants_1.PAYMENT_TIERS;
|
|
302
|
+
Merchant.MERCHANT_ACCOUNT_MODES = merchant_constants_1.MERCHANT_ACCOUNT_MODES;
|
|
303
|
+
Merchant.MERCHANT_ACCOUNT_CLASSES = merchant_constants_1.MERCHANT_ACCOUNT_CLASSES;
|
|
304
|
+
Merchant.MERCHANT_RELATIONSHIP_TYPES = merchant_constants_1.MERCHANT_RELATIONSHIP_TYPES;
|
|
305
|
+
Merchant.MARKETPLACE_SELLER_CAPABILITIES = merchant_constants_1.MARKETPLACE_SELLER_CAPABILITIES;
|
|
306
|
+
Merchant.DEFAULT_MARKETPLACE_SELLER_CAPABILITIES = merchant_constants_1.DEFAULT_MARKETPLACE_SELLER_CAPABILITIES;
|
|
307
|
+
Merchant.LABEL_PRINTER_BARCODE_SYMBOLOGIES = merchant_constants_1.LABEL_PRINTER_BARCODE_SYMBOLOGIES;
|
|
308
|
+
Merchant.LABEL_PRINTER_PROTOCOLS = merchant_constants_1.LABEL_PRINTER_PROTOCOLS;
|
|
309
|
+
Merchant.LABEL_PRINTER_CONFIG_DEFAULTS = merchant_constants_1.LABEL_PRINTER_CONFIG_DEFAULTS;
|
|
310
|
+
Merchant.DEFAULT_LABEL_LAYOUT = merchant_constants_1.DEFAULT_LABEL_LAYOUT;
|
|
173
311
|
Merchant.INDUSTRY_TYPES = merchant_constants_1.INDUSTRY_TYPES;
|
|
174
312
|
Merchant.UNIT_SYSTEM_TYPES = merchant_constants_1.UNIT_SYSTEM_TYPES;
|
|
175
313
|
Merchant.METRIC_WEIGHT_TYPES = merchant_constants_1.METRIC_WEIGHT_TYPES;
|
package/lib/models/Product.js
CHANGED
|
@@ -218,7 +218,7 @@ class Product extends Base_1.default {
|
|
|
218
218
|
: null,
|
|
219
219
|
]
|
|
220
220
|
.concat(this.filterAttributes.clothingSize.map((s) => `clothingsize_attribute:${s}`))
|
|
221
|
-
.concat(this.filterAttributes.productStyle.map((s) => `productstyle_attribute:${s}`))
|
|
221
|
+
.concat((this.filterAttributes.productStyle || []).map((s) => `productstyle_attribute:${s}`))
|
|
222
222
|
.concat(this.materialCompTagsArrayForShopify().map((mc) => `materialcomposition_attribute:${mc}`))
|
|
223
223
|
.concat(this.consignmentAttributes.salesChannel.map((s) => `salesChannel:${s}`))
|
|
224
224
|
.filter((t) => t),
|
|
@@ -495,7 +495,7 @@ class Product extends Base_1.default {
|
|
|
495
495
|
gender: this.filterAttributes.gender || this.FIELD_NOT_TRANSLATABLE_KEY,
|
|
496
496
|
productCategory: this.filterAttributes.productCategory || this.FIELD_NOT_TRANSLATABLE_KEY,
|
|
497
497
|
productType: this.filterAttributes.productType || this.FIELD_NOT_TRANSLATABLE_KEY,
|
|
498
|
-
productStyle: this.filterAttributes.productStyle.join(', ') || this.FIELD_NOT_TRANSLATABLE_KEY,
|
|
498
|
+
productStyle: (this.filterAttributes.productStyle || []).join(', ') || this.FIELD_NOT_TRANSLATABLE_KEY,
|
|
499
499
|
materialComposition: this.materialCompJoinedString() || this.FIELD_NOT_TRANSLATABLE_KEY,
|
|
500
500
|
condition: this.filterAttributes.condition || this.FIELD_NOT_TRANSLATABLE_KEY,
|
|
501
501
|
};
|
|
@@ -1072,6 +1072,17 @@ class Product extends Base_1.default {
|
|
|
1072
1072
|
name: 'sku',
|
|
1073
1073
|
type: 'string',
|
|
1074
1074
|
},
|
|
1075
|
+
{
|
|
1076
|
+
// Flat array of every non-empty `variantInventory[].sku` so a
|
|
1077
|
+
// scanner / search bar can resolve a variant-level barcode to
|
|
1078
|
+
// the parent product. Maintained by the onWriteProduct trigger
|
|
1079
|
+
// (projection of variantInventory.sku → variantSkus). Empty
|
|
1080
|
+
// array for single-SKU products.
|
|
1081
|
+
facet: true,
|
|
1082
|
+
optional: true,
|
|
1083
|
+
name: 'variantSkus',
|
|
1084
|
+
type: 'string[]',
|
|
1085
|
+
},
|
|
1075
1086
|
{
|
|
1076
1087
|
facet: true,
|
|
1077
1088
|
optional: true,
|
|
@@ -22,6 +22,12 @@ type MerchantMutableData = {
|
|
|
22
22
|
primaryDomain: string;
|
|
23
23
|
webhooks: MerchantWebHook[];
|
|
24
24
|
socialLinks: SocialLinksType | null;
|
|
25
|
+
accountMode?: MerchantAccountMode | string;
|
|
26
|
+
accountClass?: MerchantAccountClass | string;
|
|
27
|
+
sellerBusinessType?: string;
|
|
28
|
+
managedByMerchantId?: string;
|
|
29
|
+
canUpgradeToStandalone?: boolean;
|
|
30
|
+
featureAccess?: MerchantFeatureAccess | null;
|
|
25
31
|
organizationNumber?: string;
|
|
26
32
|
organizationNumbers?: Record<string, string>;
|
|
27
33
|
returnPolicy?: string;
|
|
@@ -46,12 +52,48 @@ type MerchantSystemOnlyMutableData = {
|
|
|
46
52
|
hasAutomatedPayouts?: boolean;
|
|
47
53
|
hasAIQuickList?: boolean;
|
|
48
54
|
hasReceiptPrinter?: boolean;
|
|
55
|
+
hasLabelPrinter?: boolean;
|
|
56
|
+
labelPrinterConfig?: LabelPrinterConfigData;
|
|
49
57
|
hasActiveWebshop?: boolean;
|
|
50
58
|
subscriptionStatus?: string;
|
|
51
59
|
channelPartners?: string[];
|
|
60
|
+
isMarketplaceSeller?: boolean;
|
|
61
|
+
};
|
|
62
|
+
type LabelPrinterConfigData = {
|
|
63
|
+
protocol: string;
|
|
64
|
+
widthMm: number;
|
|
65
|
+
heightMm: number;
|
|
66
|
+
dpi: number;
|
|
67
|
+
symbology: string;
|
|
68
|
+
layout: {
|
|
69
|
+
topElements: {
|
|
70
|
+
source: string;
|
|
71
|
+
visible: boolean;
|
|
72
|
+
fontSize: number;
|
|
73
|
+
paddingTop: number;
|
|
74
|
+
transform: string;
|
|
75
|
+
}[];
|
|
76
|
+
barcode: {
|
|
77
|
+
visible: boolean;
|
|
78
|
+
heightDots: number;
|
|
79
|
+
moduleWidth: 1 | 2;
|
|
80
|
+
paddingBottom: number;
|
|
81
|
+
};
|
|
82
|
+
sku: {
|
|
83
|
+
visible: boolean;
|
|
84
|
+
fontSize: number;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
52
87
|
};
|
|
53
88
|
type MerchantObj = MerchantMutableData & MerchantSystemOnlyMutableData;
|
|
54
89
|
type MerchantTypes = 'INDIVIDUAL' | 'BUSINESS';
|
|
90
|
+
type MerchantAccountMode = 'STANDALONE' | 'MANAGED';
|
|
91
|
+
type MerchantAccountClass = 'STANDARD' | 'MARKETPLACE_SELLER';
|
|
92
|
+
type MarketplaceSellerCapability = 'ACCESS_ADMIN_DASHBOARD' | 'MANAGE_OWN_PRODUCTS' | 'VIEW_OWN_ORDERS' | 'VIEW_OWN_TRANSACTIONS' | 'MANAGE_BUSINESS_PROFILE' | 'MANAGE_OWN_PAYOUTS' | 'UPGRADE_TO_STANDALONE';
|
|
93
|
+
type MerchantFeatureAccess = {
|
|
94
|
+
authExperience?: string;
|
|
95
|
+
capabilities?: MarketplaceSellerCapability[];
|
|
96
|
+
};
|
|
55
97
|
type RibbnPaymentTiers = 'FREE' | 'TIER_ONE';
|
|
56
98
|
type TransactionFees = {
|
|
57
99
|
online: number;
|