@fas-core/shared-types 1.0.101 → 1.0.103
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.mts +4315 -120
- package/dist/index.d.ts +4315 -120
- package/dist/index.js +1143 -59
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1143 -59
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -39,7 +39,6 @@ interface ISEOMetaData {
|
|
|
39
39
|
description: string;
|
|
40
40
|
keywords: string[];
|
|
41
41
|
headerTag: string;
|
|
42
|
-
canonicalUrl: string;
|
|
43
42
|
}
|
|
44
43
|
interface IBannerSlide {
|
|
45
44
|
desktop: string;
|
|
@@ -54,6 +53,7 @@ interface IBannerSlide {
|
|
|
54
53
|
interface IMediaAsset {
|
|
55
54
|
url: string;
|
|
56
55
|
sortOrder: number;
|
|
56
|
+
alt?: string;
|
|
57
57
|
}
|
|
58
58
|
interface IPrice {
|
|
59
59
|
price: number;
|
|
@@ -158,9 +158,15 @@ interface IStore extends BaseEntity {
|
|
|
158
158
|
storeAdmins: Array<string | Types.ObjectId>;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
+
declare const DISCOUNT_TYPE_VALUES: ("PERCENTAGE" | "FIXED" | "FREE_SHIPPING")[];
|
|
161
162
|
declare const DiscountTypeEnum: {
|
|
162
163
|
readonly PERCENTAGE: "PERCENTAGE";
|
|
163
164
|
readonly FIXED: "FIXED";
|
|
165
|
+
/**
|
|
166
|
+
* Waives the shipping charge instead of discounting the goods, so `value` is unused and stays 0.
|
|
167
|
+
* NetSuite expresses this as a promotion with a `freeshipmethod` and no rate.
|
|
168
|
+
*/
|
|
169
|
+
readonly FREE_SHIPPING: "FREE_SHIPPING";
|
|
164
170
|
};
|
|
165
171
|
type DiscountTypeEnum = (typeof DiscountTypeEnum)[keyof typeof DiscountTypeEnum];
|
|
166
172
|
interface IDiscountType {
|
|
@@ -169,6 +175,7 @@ interface IDiscountType {
|
|
|
169
175
|
}
|
|
170
176
|
interface ICoupon extends BaseEntity {
|
|
171
177
|
title: string;
|
|
178
|
+
description: string;
|
|
172
179
|
couponCode: string;
|
|
173
180
|
startTime: Date;
|
|
174
181
|
endTime: Date;
|
|
@@ -177,6 +184,20 @@ interface ICoupon extends BaseEntity {
|
|
|
177
184
|
isPromotional: boolean;
|
|
178
185
|
status: boolean;
|
|
179
186
|
stores: IStore[];
|
|
187
|
+
netsuite?: CouponNetsuiteLink | null;
|
|
188
|
+
metaData: Metadata;
|
|
189
|
+
}
|
|
190
|
+
interface CouponNetsuiteLink {
|
|
191
|
+
promotionId: string;
|
|
192
|
+
promotionName?: string;
|
|
193
|
+
couponId?: string;
|
|
194
|
+
discountItemId?: string;
|
|
195
|
+
discountItemName?: string;
|
|
196
|
+
discountReducesTax: boolean;
|
|
197
|
+
singleUse: boolean;
|
|
198
|
+
itemSkus: string[];
|
|
199
|
+
applyDiscountTo?: string;
|
|
200
|
+
syncedAt?: Date | string;
|
|
180
201
|
}
|
|
181
202
|
|
|
182
203
|
interface IBrand extends BaseEntity {
|
|
@@ -189,15 +210,24 @@ interface IBrand extends BaseEntity {
|
|
|
189
210
|
sortOrder: number;
|
|
190
211
|
status: boolean;
|
|
191
212
|
isOnline: boolean;
|
|
213
|
+
netsuiteId: string;
|
|
192
214
|
metaData: Metadata;
|
|
193
215
|
seoMetaData: ISEOMetaData;
|
|
194
216
|
}
|
|
195
217
|
|
|
218
|
+
interface ICategorySubcategory {
|
|
219
|
+
category: ICategory | string;
|
|
220
|
+
name: string;
|
|
221
|
+
urlFragment: string;
|
|
222
|
+
image: string;
|
|
223
|
+
sortOrder: number;
|
|
224
|
+
}
|
|
196
225
|
interface ICategory extends BaseEntity {
|
|
197
226
|
name: string;
|
|
198
227
|
slug: string;
|
|
199
228
|
description: string;
|
|
200
229
|
parent: ICategory;
|
|
230
|
+
subcategories?: ICategorySubcategory[];
|
|
201
231
|
stores: (IStore | string)[];
|
|
202
232
|
childOnly?: boolean;
|
|
203
233
|
image: string;
|
|
@@ -205,9 +235,9 @@ interface ICategory extends BaseEntity {
|
|
|
205
235
|
sortOrder: number;
|
|
206
236
|
status: boolean;
|
|
207
237
|
isOnline: boolean;
|
|
238
|
+
netsuiteId: string;
|
|
208
239
|
metaData: Metadata;
|
|
209
240
|
seoMetaData: ISEOMetaData;
|
|
210
|
-
subCategories?: ICategory[];
|
|
211
241
|
}
|
|
212
242
|
|
|
213
243
|
declare const StockStatusEnum: {
|
|
@@ -258,6 +288,15 @@ interface IProductVariantFields {
|
|
|
258
288
|
price: IPrice;
|
|
259
289
|
saleType?: SaleType;
|
|
260
290
|
quantity: number;
|
|
291
|
+
minimumQuantity?: number;
|
|
292
|
+
maximumQuantity?: number;
|
|
293
|
+
enforceMinimum?: boolean;
|
|
294
|
+
isSparePart?: boolean;
|
|
295
|
+
stockDescription?: string;
|
|
296
|
+
noPriceMessage?: string;
|
|
297
|
+
itemType?: string;
|
|
298
|
+
isSeriesComponent?: boolean;
|
|
299
|
+
flexWarrantyEligible?: boolean;
|
|
261
300
|
inventoryPolicy: InventoryPolicy;
|
|
262
301
|
brand: IBrand;
|
|
263
302
|
stores: (IStore | string)[];
|
|
@@ -345,17 +384,23 @@ interface IAddonConfig extends BaseEntity {
|
|
|
345
384
|
name: string;
|
|
346
385
|
key: string;
|
|
347
386
|
description: string;
|
|
387
|
+
longDescription?: string;
|
|
348
388
|
stores: (IStore | string)[];
|
|
349
389
|
price: number;
|
|
350
390
|
pricingType: PricingType;
|
|
351
391
|
quantity: number;
|
|
352
392
|
sortOrder: number;
|
|
353
393
|
applyToAll: boolean;
|
|
394
|
+
appliesFromPrice?: number;
|
|
395
|
+
appliesToPrice?: number;
|
|
354
396
|
isDefault: boolean;
|
|
355
397
|
isVisible: boolean;
|
|
356
398
|
status: boolean;
|
|
399
|
+
metaData: Metadata;
|
|
400
|
+
netsuite?: AddonNetsuiteLink | null;
|
|
357
401
|
}
|
|
358
402
|
interface IAddonGroup extends BaseEntity {
|
|
403
|
+
netsuite?: AddonGroupNetsuiteLink | null;
|
|
359
404
|
name: string;
|
|
360
405
|
key: string;
|
|
361
406
|
description: string;
|
|
@@ -364,10 +409,21 @@ interface IAddonGroup extends BaseEntity {
|
|
|
364
409
|
isVisible: boolean;
|
|
365
410
|
status: boolean;
|
|
366
411
|
}
|
|
412
|
+
interface AddonGroupNetsuiteLink {
|
|
413
|
+
requiresField?: string;
|
|
414
|
+
syncedAt?: Date | string;
|
|
415
|
+
}
|
|
416
|
+
interface AddonNetsuiteLink {
|
|
417
|
+
itemId: string;
|
|
418
|
+
itemName?: string;
|
|
419
|
+
syncedAt?: Date | string;
|
|
420
|
+
}
|
|
367
421
|
|
|
368
422
|
interface ProductAddonScope {
|
|
369
423
|
storeId?: string;
|
|
370
424
|
productAddonIds?: string[];
|
|
425
|
+
productPrice?: number;
|
|
426
|
+
productFlags?: Record<string, boolean | undefined>;
|
|
371
427
|
}
|
|
372
428
|
declare const resolveProductAddonGroups: (groups: IAddonGroup[], scope?: ProductAddonScope) => IAddonGroup[];
|
|
373
429
|
declare const groupHasDefaultAddon: (group: IAddonGroup) => boolean;
|
|
@@ -381,16 +437,135 @@ interface ResolvedAddonSelection extends AddonSelectionRef {
|
|
|
381
437
|
declare const resolveAddonSelections: (groups: IAddonGroup[], selections: AddonSelectionRef[]) => ResolvedAddonSelection[];
|
|
382
438
|
|
|
383
439
|
interface IProduct extends BaseEntity, IProductVariantFields {
|
|
440
|
+
netsuiteId: string;
|
|
384
441
|
name: string;
|
|
385
442
|
slug: string;
|
|
386
443
|
sku: string;
|
|
387
444
|
hasVariants: boolean;
|
|
388
|
-
variantType
|
|
445
|
+
variantType: ProductVariantType;
|
|
389
446
|
variantOptions?: IProductVariantOptionGroup[];
|
|
390
447
|
variantOptionSignatures?: string[];
|
|
391
448
|
variants: IVariant[];
|
|
392
449
|
relationGroups: IProductRelationGroup[];
|
|
393
450
|
addons: (IAddonConfig | string)[];
|
|
451
|
+
googleCategory: string;
|
|
452
|
+
department: string;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
interface ICartItem extends BaseEntity {
|
|
456
|
+
cart: ICart;
|
|
457
|
+
product: IProduct;
|
|
458
|
+
variant?: IVariant;
|
|
459
|
+
pricing: ILinePricing;
|
|
460
|
+
metaData: Metadata;
|
|
461
|
+
/** Buyer-entered line note. Survives to the order and appears on the confirmation. */
|
|
462
|
+
note?: string;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
interface StockDemandLine {
|
|
466
|
+
key: string;
|
|
467
|
+
quantity: number;
|
|
468
|
+
}
|
|
469
|
+
declare const demandByKey: (lines: StockDemandLine[]) => Map<string, number>;
|
|
470
|
+
declare const StockVerdictEnum: {
|
|
471
|
+
readonly OK: "OK";
|
|
472
|
+
readonly OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
473
|
+
readonly INSUFFICIENT_STOCK: "INSUFFICIENT_STOCK";
|
|
474
|
+
};
|
|
475
|
+
type StockVerdict = {
|
|
476
|
+
type: typeof StockVerdictEnum.OK;
|
|
477
|
+
} | {
|
|
478
|
+
type: typeof StockVerdictEnum.OUT_OF_STOCK;
|
|
479
|
+
available: 0;
|
|
480
|
+
requested: number;
|
|
481
|
+
} | {
|
|
482
|
+
type: typeof StockVerdictEnum.INSUFFICIENT_STOCK;
|
|
483
|
+
available: number;
|
|
484
|
+
requested: number;
|
|
485
|
+
};
|
|
486
|
+
declare const stockVerdict: (available: number, requested: number) => StockVerdict;
|
|
487
|
+
|
|
488
|
+
interface OfferedAddon {
|
|
489
|
+
addonKey: string;
|
|
490
|
+
name: string;
|
|
491
|
+
description: string;
|
|
492
|
+
price: number;
|
|
493
|
+
pricingType: PricingType;
|
|
494
|
+
}
|
|
495
|
+
interface OfferedAddonGroup {
|
|
496
|
+
groupKey: string;
|
|
497
|
+
name: string;
|
|
498
|
+
addons: OfferedAddon[];
|
|
499
|
+
}
|
|
500
|
+
declare const CartStatusEnum: {
|
|
501
|
+
readonly ACTIVE: "ACTIVE";
|
|
502
|
+
readonly CONVERTED: "CONVERTED";
|
|
503
|
+
readonly QUOTED: "QUOTED";
|
|
504
|
+
readonly ABANDONED: "ABANDONED";
|
|
505
|
+
};
|
|
506
|
+
type CartStatusEnum = (typeof CartStatusEnum)[keyof typeof CartStatusEnum];
|
|
507
|
+
declare const CART_STATUS_VALUES: ("ACTIVE" | "CONVERTED" | "QUOTED" | "ABANDONED")[];
|
|
508
|
+
declare const RETIRED_CART_STATUSES: CartStatusEnum[];
|
|
509
|
+
interface ICart extends BaseEntity {
|
|
510
|
+
tax?: AppliedTax | null;
|
|
511
|
+
shippingMethod?: SelectedShippingMethod | null;
|
|
512
|
+
cartId: string;
|
|
513
|
+
cartItems: ICartItem[];
|
|
514
|
+
user?: ICustomer;
|
|
515
|
+
coupon?: ICoupon;
|
|
516
|
+
store: IStore;
|
|
517
|
+
metaData: Metadata;
|
|
518
|
+
optionalFees?: Record<string, boolean>;
|
|
519
|
+
pricing: ISummaryPricing;
|
|
520
|
+
selectedShippingRate?: IShippingRate;
|
|
521
|
+
status: CartStatusEnum;
|
|
522
|
+
type: SaleType;
|
|
523
|
+
order?: IOrder | string;
|
|
524
|
+
convertedAt?: Date;
|
|
525
|
+
quoteToken?: string;
|
|
526
|
+
quotedAt?: Date;
|
|
527
|
+
quoteEmail?: string;
|
|
528
|
+
sourceCart?: ICart | string;
|
|
529
|
+
}
|
|
530
|
+
declare const CartIssueTypes: {
|
|
531
|
+
readonly ITEM_UNAVAILABLE: "ITEM_UNAVAILABLE";
|
|
532
|
+
readonly OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
533
|
+
readonly INSUFFICIENT_STOCK: "INSUFFICIENT_STOCK";
|
|
534
|
+
readonly BELOW_MINIMUM_QUANTITY: "BELOW_MINIMUM_QUANTITY";
|
|
535
|
+
readonly COUPON_INVALID: "COUPON_INVALID";
|
|
536
|
+
};
|
|
537
|
+
type CartIssueType = (typeof CartIssueTypes)[keyof typeof CartIssueTypes];
|
|
538
|
+
interface CartIssue {
|
|
539
|
+
type: CartIssueType;
|
|
540
|
+
itemId?: string;
|
|
541
|
+
name?: string;
|
|
542
|
+
available?: number;
|
|
543
|
+
requested?: number;
|
|
544
|
+
minimum?: number;
|
|
545
|
+
message: string;
|
|
546
|
+
}
|
|
547
|
+
interface CartValidation {
|
|
548
|
+
ok: boolean;
|
|
549
|
+
issues: CartIssue[];
|
|
550
|
+
}
|
|
551
|
+
interface SelectedShippingMethod {
|
|
552
|
+
id: string;
|
|
553
|
+
name: string;
|
|
554
|
+
shipping: number;
|
|
555
|
+
handling: number;
|
|
556
|
+
total: number;
|
|
557
|
+
free: boolean;
|
|
558
|
+
estimated: boolean;
|
|
559
|
+
cartFingerprint?: string;
|
|
560
|
+
}
|
|
561
|
+
interface AppliedTax {
|
|
562
|
+
rate: number;
|
|
563
|
+
state: string;
|
|
564
|
+
county?: string;
|
|
565
|
+
groupId: string;
|
|
566
|
+
groupName: string;
|
|
567
|
+
shippingTaxable: boolean;
|
|
568
|
+
cartFingerprint?: string;
|
|
394
569
|
}
|
|
395
570
|
|
|
396
571
|
interface IOrderItem extends BaseEntity {
|
|
@@ -423,23 +598,20 @@ declare const AWAITING_PAYMENT_STATUSES: PaymentStatusEnum[];
|
|
|
423
598
|
declare const paymentStatusColorMap: Record<PaymentStatusEnum, string>;
|
|
424
599
|
declare const PaymentMethodEnum: {
|
|
425
600
|
readonly CREDIT_CARD: "CREDIT_CARD";
|
|
426
|
-
readonly PAYPAL: "PAYPAL";
|
|
427
601
|
readonly STRIPE: "STRIPE";
|
|
428
602
|
readonly CHECK: "CHECK";
|
|
429
603
|
readonly APPLE_PAY: "APPLE_PAY";
|
|
430
604
|
readonly PURCHASE_ORDER: "PURCHASE_ORDER";
|
|
431
605
|
};
|
|
432
606
|
type PaymentMethodEnum = (typeof PaymentMethodEnum)[keyof typeof PaymentMethodEnum];
|
|
433
|
-
declare const PAYMENT_METHOD_VALUES: ("CREDIT_CARD" | "
|
|
607
|
+
declare const PAYMENT_METHOD_VALUES: ("CREDIT_CARD" | "STRIPE" | "CHECK" | "APPLE_PAY" | "PURCHASE_ORDER")[];
|
|
434
608
|
declare const paymentMethodColorMap: Record<PaymentMethodEnum, string>;
|
|
435
609
|
declare const PaymentGatewayEnum: {
|
|
436
610
|
readonly STRIPE: "STRIPE";
|
|
437
|
-
readonly PAYPAL: "PAYPAL";
|
|
438
|
-
readonly BRAINTREE: "BRAINTREE";
|
|
439
611
|
readonly MANUAL: "MANUAL";
|
|
440
612
|
};
|
|
441
613
|
type PaymentGatewayEnum = (typeof PaymentGatewayEnum)[keyof typeof PaymentGatewayEnum];
|
|
442
|
-
declare const PAYMENT_GATEWAY_VALUES: ("MANUAL" | "
|
|
614
|
+
declare const PAYMENT_GATEWAY_VALUES: ("MANUAL" | "STRIPE")[];
|
|
443
615
|
declare const TransactionTypeEnum: {
|
|
444
616
|
readonly ORDER: "ORDER";
|
|
445
617
|
readonly REFUND: "REFUND";
|
|
@@ -471,28 +643,54 @@ interface IRefundTransaction extends ITransactionBase {
|
|
|
471
643
|
originalTransaction?: ITransactionBase;
|
|
472
644
|
}
|
|
473
645
|
|
|
646
|
+
interface INetsuiteOrderLink {
|
|
647
|
+
id: string;
|
|
648
|
+
recordType: string;
|
|
649
|
+
externalId?: string;
|
|
650
|
+
tranId?: string;
|
|
651
|
+
statusText?: string;
|
|
652
|
+
total?: number;
|
|
653
|
+
entityId?: string;
|
|
654
|
+
entityLabel?: string;
|
|
655
|
+
recordUrl?: string;
|
|
656
|
+
createdDate?: string;
|
|
657
|
+
httpStatus?: number;
|
|
658
|
+
pushedAt?: Date | string;
|
|
659
|
+
statusCode?: string;
|
|
660
|
+
statusCheckedAt?: Date | string;
|
|
661
|
+
}
|
|
662
|
+
interface IOrderShipment {
|
|
663
|
+
netsuiteId: string;
|
|
664
|
+
tranId?: string;
|
|
665
|
+
carrier?: string;
|
|
666
|
+
shipMethod?: string;
|
|
667
|
+
shippedAt?: Date | string;
|
|
668
|
+
trackingNumbers: string[];
|
|
669
|
+
syncedAt?: Date | string;
|
|
670
|
+
}
|
|
474
671
|
declare const OrderStatusEnum: {
|
|
475
672
|
readonly CREATED: "CREATED";
|
|
476
|
-
readonly
|
|
477
|
-
readonly
|
|
478
|
-
readonly
|
|
479
|
-
readonly
|
|
480
|
-
readonly
|
|
481
|
-
readonly
|
|
482
|
-
readonly
|
|
483
|
-
readonly
|
|
673
|
+
readonly PAYMENT_FAILED: "PAYMENT_FAILED";
|
|
674
|
+
readonly PENDING_APPROVAL: "PENDING_APPROVAL";
|
|
675
|
+
readonly PENDING_FULFILLMENT: "PENDING_FULFILLMENT";
|
|
676
|
+
readonly PARTIALLY_FULFILLED: "PARTIALLY_FULFILLED";
|
|
677
|
+
readonly PENDING_BILLING: "PENDING_BILLING";
|
|
678
|
+
readonly BILLED: "BILLED";
|
|
679
|
+
readonly CLOSED: "CLOSED";
|
|
680
|
+
readonly CANCELLED: "CANCELLED";
|
|
681
|
+
readonly PENDING_RECEIPT: "PENDING_RECEIPT";
|
|
682
|
+
readonly PENDING_REFUND: "PENDING_REFUND";
|
|
484
683
|
readonly REFUNDED: "REFUNDED";
|
|
485
684
|
readonly PARTIALLY_REFUNDED: "PARTIALLY_REFUNDED";
|
|
486
|
-
readonly ARCHIVED: "ARCHIVED";
|
|
487
|
-
readonly RETURNED: "RETURNED";
|
|
488
685
|
readonly QUOTE_REQUESTED: "QUOTE_REQUESTED";
|
|
489
|
-
readonly
|
|
490
|
-
readonly
|
|
491
|
-
readonly
|
|
686
|
+
readonly QUOTE_OPEN: "QUOTE_OPEN";
|
|
687
|
+
readonly QUOTE_PROCESSED: "QUOTE_PROCESSED";
|
|
688
|
+
readonly QUOTE_CLOSED: "QUOTE_CLOSED";
|
|
689
|
+
readonly QUOTE_VOIDED: "QUOTE_VOIDED";
|
|
492
690
|
readonly QUOTE_EXPIRED: "QUOTE_EXPIRED";
|
|
493
691
|
};
|
|
494
692
|
type OrderStatusEnum = (typeof OrderStatusEnum)[keyof typeof OrderStatusEnum];
|
|
495
|
-
declare const ORDER_STATUS_VALUES: ("
|
|
693
|
+
declare const ORDER_STATUS_VALUES: ("CANCELLED" | "REFUNDED" | "PARTIALLY_REFUNDED" | "CREATED" | "PAYMENT_FAILED" | "PENDING_APPROVAL" | "PENDING_FULFILLMENT" | "PARTIALLY_FULFILLED" | "PENDING_BILLING" | "BILLED" | "CLOSED" | "PENDING_RECEIPT" | "PENDING_REFUND" | "QUOTE_REQUESTED" | "QUOTE_OPEN" | "QUOTE_PROCESSED" | "QUOTE_CLOSED" | "QUOTE_VOIDED" | "QUOTE_EXPIRED")[];
|
|
496
694
|
declare const statusColors: Record<OrderStatusEnum, string>;
|
|
497
695
|
declare const PURCHASE_ORDER_STATUSES: OrderStatusEnum[];
|
|
498
696
|
declare const OPEN_ORDER_STATUSES: OrderStatusEnum[];
|
|
@@ -504,7 +702,7 @@ interface IOrder extends BaseEntity {
|
|
|
504
702
|
coupon: ICoupon;
|
|
505
703
|
store: IStore;
|
|
506
704
|
status: OrderStatusEnum;
|
|
507
|
-
type
|
|
705
|
+
type: SaleType;
|
|
508
706
|
sourceQuote?: IOrder | string;
|
|
509
707
|
convertedOrder?: IOrder | string;
|
|
510
708
|
quoteValidUntil?: Date;
|
|
@@ -513,9 +711,17 @@ interface IOrder extends BaseEntity {
|
|
|
513
711
|
paymentGateway: PaymentGatewayEnum;
|
|
514
712
|
shippingAddress: IAddress;
|
|
515
713
|
billingAddress: IAddress;
|
|
516
|
-
shippingMethod
|
|
714
|
+
shippingMethod?: SelectedShippingMethod | null;
|
|
715
|
+
shipments?: IOrderShipment[];
|
|
716
|
+
tax?: AppliedTax | null;
|
|
517
717
|
acceptedTermsAt: Date;
|
|
518
718
|
customerNote: string;
|
|
719
|
+
netsuite?: INetsuiteOrderLink | null;
|
|
720
|
+
netsuiteLastError?: {
|
|
721
|
+
message: string;
|
|
722
|
+
recordType?: string;
|
|
723
|
+
failedAt?: Date | string;
|
|
724
|
+
} | null;
|
|
519
725
|
metaData: Metadata;
|
|
520
726
|
orderTransactions: IOrderTransaction[];
|
|
521
727
|
refundTransactions: IRefundTransaction[];
|
|
@@ -523,6 +729,7 @@ interface IOrder extends BaseEntity {
|
|
|
523
729
|
}
|
|
524
730
|
|
|
525
731
|
interface ICustomer extends BaseEntity {
|
|
732
|
+
netsuiteId: string;
|
|
526
733
|
firstName: string;
|
|
527
734
|
lastName: string;
|
|
528
735
|
profileImage: string;
|
|
@@ -542,6 +749,7 @@ interface ICustomer extends BaseEntity {
|
|
|
542
749
|
resetPasswordTokenHash: string;
|
|
543
750
|
resetPasswordTokenExpiresAt: Date | null;
|
|
544
751
|
marketingOptOut?: boolean;
|
|
752
|
+
metaData: Metadata;
|
|
545
753
|
unsubscribeToken?: string;
|
|
546
754
|
}
|
|
547
755
|
|
|
@@ -630,6 +838,10 @@ declare const ADMIN_RESOURCE_LIST: readonly [{
|
|
|
630
838
|
readonly value: "store-fees";
|
|
631
839
|
readonly label: "Store Fees";
|
|
632
840
|
readonly group: "Commerce";
|
|
841
|
+
}, {
|
|
842
|
+
readonly value: "tax-rates";
|
|
843
|
+
readonly label: "Tax Rates";
|
|
844
|
+
readonly group: "Commerce";
|
|
633
845
|
}, {
|
|
634
846
|
readonly value: "customers";
|
|
635
847
|
readonly label: "Customers";
|
|
@@ -691,7 +903,7 @@ declare const ADMIN_RESOURCE_LIST: readonly [{
|
|
|
691
903
|
readonly label: "Account";
|
|
692
904
|
readonly group: "Settings";
|
|
693
905
|
}];
|
|
694
|
-
declare const ADMIN_RESOURCES: ("stores" | "
|
|
906
|
+
declare const ADMIN_RESOURCES: ("stores" | "categories" | "podcast" | "blog" | "dashboard" | "metrics" | "products" | "brands" | "technical-specs" | "addon-configs" | "relation-groups" | "configurators" | "orders" | "quotes" | "carts" | "transactions" | "coupons" | "store-fees" | "tax-rates" | "customers" | "contact-us" | "subscribers" | "faqs" | "email-templates" | "notifications" | "campaigns" | "currencies" | "redirects" | "cache" | "admins" | "account")[];
|
|
695
907
|
type IAdminResource = (typeof ADMIN_RESOURCE_LIST)[number]['value'];
|
|
696
908
|
declare const ADMIN_ACTIONS: readonly ["read", "write", "delete"];
|
|
697
909
|
type IAdminBaseAction = (typeof ADMIN_ACTIONS)[number];
|
|
@@ -842,6 +1054,7 @@ declare const FeeAppliesToEnum: {
|
|
|
842
1054
|
type FeeAppliesToEnum = (typeof FeeAppliesToEnum)[keyof typeof FeeAppliesToEnum];
|
|
843
1055
|
declare const FEE_APPLIES_TO_VALUES: ("SUBTOTAL" | "TOTAL")[];
|
|
844
1056
|
interface IStoreFee extends BaseEntity {
|
|
1057
|
+
netsuiteId?: string;
|
|
845
1058
|
stores: (IStore | string)[];
|
|
846
1059
|
name: string;
|
|
847
1060
|
key: string;
|
|
@@ -855,6 +1068,7 @@ interface IStoreFee extends BaseEntity {
|
|
|
855
1068
|
defaultSelected: boolean;
|
|
856
1069
|
sortOrder: number;
|
|
857
1070
|
status: boolean;
|
|
1071
|
+
metaData: Metadata;
|
|
858
1072
|
}
|
|
859
1073
|
interface ISelectableFee {
|
|
860
1074
|
key: string;
|
|
@@ -883,7 +1097,7 @@ declare const EmailTemplateEventEnum: {
|
|
|
883
1097
|
readonly NOTIFICATION: "NOTIFICATION";
|
|
884
1098
|
};
|
|
885
1099
|
type EmailTemplateEventEnum = (typeof EmailTemplateEventEnum)[keyof typeof EmailTemplateEventEnum];
|
|
886
|
-
declare const EMAIL_TEMPLATE_EVENT_VALUES: ("QUOTE" | "QUOTE_REQUESTED" | "
|
|
1100
|
+
declare const EMAIL_TEMPLATE_EVENT_VALUES: ("QUOTE" | "QUOTE_REQUESTED" | "ORDER_RECEIVED" | "ORDER_CANCELLED" | "WELCOME" | "PASSWORD_RESET" | "QUOTE_SENT" | "QUOTE_DECLINED" | "INVOICE" | "PROMOTIONAL" | "CONTACT_US" | "NOTIFICATION")[];
|
|
887
1101
|
declare const WIRED_EMAIL_TEMPLATE_EVENTS: EmailTemplateEventEnum[];
|
|
888
1102
|
declare const EMAIL_TEMPLATE_VARIABLES_BY_EVENT: Partial<Record<EmailTemplateEventEnum, string[]>>;
|
|
889
1103
|
interface IEmailTemplate extends BaseEntity {
|
|
@@ -1129,7 +1343,7 @@ declare const OrderLogTypeEnum: {
|
|
|
1129
1343
|
readonly NOTE: "NOTE";
|
|
1130
1344
|
};
|
|
1131
1345
|
type OrderLogTypeEnum = (typeof OrderLogTypeEnum)[keyof typeof OrderLogTypeEnum];
|
|
1132
|
-
declare const ORDER_LOG_TYPE_VALUES: ("REFUND" | "
|
|
1346
|
+
declare const ORDER_LOG_TYPE_VALUES: ("REFUND" | "PAYMENT_FAILED" | "ORDER_PLACED" | "PAYMENT_PENDING" | "PAYMENT_SUCCEEDED" | "PAYMENT_CANCELLED" | "ORDER_STATUS" | "EMAIL" | "NOTE")[];
|
|
1133
1347
|
declare const orderLogTypeColorMap: Record<OrderLogTypeEnum, string>;
|
|
1134
1348
|
interface IOrderLog extends BaseEntity {
|
|
1135
1349
|
order: IOrder | string;
|
|
@@ -1162,87 +1376,6 @@ interface IPaymentLink extends BaseEntity {
|
|
|
1162
1376
|
baseUrl: string;
|
|
1163
1377
|
}
|
|
1164
1378
|
|
|
1165
|
-
interface ICartItem extends BaseEntity {
|
|
1166
|
-
cart: ICart;
|
|
1167
|
-
product: IProduct;
|
|
1168
|
-
variant?: IVariant;
|
|
1169
|
-
pricing: ILinePricing;
|
|
1170
|
-
metaData: Metadata;
|
|
1171
|
-
/** Buyer-entered line note. Survives to the order and appears on the confirmation. */
|
|
1172
|
-
note?: string;
|
|
1173
|
-
}
|
|
1174
|
-
|
|
1175
|
-
interface StockDemandLine {
|
|
1176
|
-
key: string;
|
|
1177
|
-
quantity: number;
|
|
1178
|
-
}
|
|
1179
|
-
declare const demandByKey: (lines: StockDemandLine[]) => Map<string, number>;
|
|
1180
|
-
declare const StockVerdictEnum: {
|
|
1181
|
-
readonly OK: "OK";
|
|
1182
|
-
readonly OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
1183
|
-
readonly INSUFFICIENT_STOCK: "INSUFFICIENT_STOCK";
|
|
1184
|
-
};
|
|
1185
|
-
type StockVerdict = {
|
|
1186
|
-
type: typeof StockVerdictEnum.OK;
|
|
1187
|
-
} | {
|
|
1188
|
-
type: typeof StockVerdictEnum.OUT_OF_STOCK;
|
|
1189
|
-
available: 0;
|
|
1190
|
-
requested: number;
|
|
1191
|
-
} | {
|
|
1192
|
-
type: typeof StockVerdictEnum.INSUFFICIENT_STOCK;
|
|
1193
|
-
available: number;
|
|
1194
|
-
requested: number;
|
|
1195
|
-
};
|
|
1196
|
-
declare const stockVerdict: (available: number, requested: number) => StockVerdict;
|
|
1197
|
-
|
|
1198
|
-
declare const CartStatusEnum: {
|
|
1199
|
-
readonly ACTIVE: "ACTIVE";
|
|
1200
|
-
readonly CONVERTED: "CONVERTED";
|
|
1201
|
-
readonly QUOTED: "QUOTED";
|
|
1202
|
-
readonly ABANDONED: "ABANDONED";
|
|
1203
|
-
};
|
|
1204
|
-
type CartStatusEnum = (typeof CartStatusEnum)[keyof typeof CartStatusEnum];
|
|
1205
|
-
declare const CART_STATUS_VALUES: ("QUOTED" | "ACTIVE" | "CONVERTED" | "ABANDONED")[];
|
|
1206
|
-
declare const RETIRED_CART_STATUSES: CartStatusEnum[];
|
|
1207
|
-
interface ICart extends BaseEntity {
|
|
1208
|
-
cartId: string;
|
|
1209
|
-
cartItems: ICartItem[];
|
|
1210
|
-
user?: ICustomer;
|
|
1211
|
-
coupon?: ICoupon;
|
|
1212
|
-
store: IStore;
|
|
1213
|
-
metaData: Metadata;
|
|
1214
|
-
optionalFees?: Record<string, boolean>;
|
|
1215
|
-
pricing: ISummaryPricing;
|
|
1216
|
-
selectedShippingRate?: IShippingRate;
|
|
1217
|
-
status: CartStatusEnum;
|
|
1218
|
-
type: SaleType;
|
|
1219
|
-
order?: IOrder | string;
|
|
1220
|
-
convertedAt?: Date;
|
|
1221
|
-
quoteToken?: string;
|
|
1222
|
-
quotedAt?: Date;
|
|
1223
|
-
quoteEmail?: string;
|
|
1224
|
-
sourceCart?: ICart | string;
|
|
1225
|
-
}
|
|
1226
|
-
declare const CartIssueTypes: {
|
|
1227
|
-
readonly ITEM_UNAVAILABLE: "ITEM_UNAVAILABLE";
|
|
1228
|
-
readonly OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
1229
|
-
readonly INSUFFICIENT_STOCK: "INSUFFICIENT_STOCK";
|
|
1230
|
-
readonly COUPON_INVALID: "COUPON_INVALID";
|
|
1231
|
-
};
|
|
1232
|
-
type CartIssueType = (typeof CartIssueTypes)[keyof typeof CartIssueTypes];
|
|
1233
|
-
interface CartIssue {
|
|
1234
|
-
type: CartIssueType;
|
|
1235
|
-
itemId?: string;
|
|
1236
|
-
name?: string;
|
|
1237
|
-
available?: number;
|
|
1238
|
-
requested?: number;
|
|
1239
|
-
message: string;
|
|
1240
|
-
}
|
|
1241
|
-
interface CartValidation {
|
|
1242
|
-
ok: boolean;
|
|
1243
|
-
issues: CartIssue[];
|
|
1244
|
-
}
|
|
1245
|
-
|
|
1246
1379
|
declare const SubscriptionChannelEnum: {
|
|
1247
1380
|
readonly EMAIL: "EMAIL";
|
|
1248
1381
|
readonly SMS: "SMS";
|
|
@@ -1304,7 +1437,7 @@ declare const CampaignRecipientStatusEnum: {
|
|
|
1304
1437
|
readonly FAILED: "FAILED";
|
|
1305
1438
|
};
|
|
1306
1439
|
type CampaignRecipientStatusEnum = (typeof CampaignRecipientStatusEnum)[keyof typeof CampaignRecipientStatusEnum];
|
|
1307
|
-
declare const CAMPAIGN_RECIPIENT_STATUS_VALUES: ("FAILED" | "
|
|
1440
|
+
declare const CAMPAIGN_RECIPIENT_STATUS_VALUES: ("FAILED" | "SENT" | "QUEUED" | "DELIVERED" | "OPENED" | "CLICKED" | "BOUNCED" | "COMPLAINED")[];
|
|
1308
1441
|
interface ICampaignStats {
|
|
1309
1442
|
sent: number;
|
|
1310
1443
|
delivered: number;
|
|
@@ -1340,34 +1473,32 @@ interface ICampaignRecipient extends BaseEntity {
|
|
|
1340
1473
|
}
|
|
1341
1474
|
|
|
1342
1475
|
interface IBlogAuthor extends BaseEntity {
|
|
1476
|
+
netsuiteId: string;
|
|
1343
1477
|
name: string;
|
|
1344
1478
|
slug: string;
|
|
1345
1479
|
bio: string;
|
|
1346
1480
|
avatar: string;
|
|
1347
1481
|
role: string;
|
|
1348
1482
|
status: boolean;
|
|
1349
|
-
isOnline: boolean;
|
|
1350
1483
|
metaData: Metadata;
|
|
1351
1484
|
seoMetaData: ISEOMetaData;
|
|
1352
1485
|
}
|
|
1353
1486
|
interface IBlogCategory extends BaseEntity {
|
|
1487
|
+
netsuiteId: string;
|
|
1354
1488
|
name: string;
|
|
1355
1489
|
slug: string;
|
|
1356
1490
|
description: string;
|
|
1357
1491
|
image: string;
|
|
1358
1492
|
sortOrder: number;
|
|
1359
1493
|
status: boolean;
|
|
1360
|
-
isOnline: boolean;
|
|
1361
1494
|
metaData: Metadata;
|
|
1362
1495
|
seoMetaData: ISEOMetaData;
|
|
1363
1496
|
}
|
|
1364
|
-
interface IBlogCitation {
|
|
1365
|
-
label: string;
|
|
1366
|
-
url: string;
|
|
1367
|
-
source?: string;
|
|
1368
|
-
}
|
|
1369
1497
|
interface IBlogPost extends BaseEntity {
|
|
1498
|
+
netsuiteId: string;
|
|
1499
|
+
netsuitePostId: string;
|
|
1370
1500
|
title: string;
|
|
1501
|
+
subtitle: string;
|
|
1371
1502
|
slug: string;
|
|
1372
1503
|
excerpt: string;
|
|
1373
1504
|
content: string;
|
|
@@ -1378,13 +1509,12 @@ interface IBlogPost extends BaseEntity {
|
|
|
1378
1509
|
author: IBlogAuthor | string | null;
|
|
1379
1510
|
category: IBlogCategory | string | null;
|
|
1380
1511
|
tags: string[];
|
|
1381
|
-
|
|
1512
|
+
pinnedTo: string[];
|
|
1382
1513
|
relatedProducts: unknown[];
|
|
1383
1514
|
readingMinutes: number;
|
|
1384
1515
|
publishedAt: Date | string | null;
|
|
1385
1516
|
stores: IStore[];
|
|
1386
1517
|
status: boolean;
|
|
1387
|
-
isOnline: boolean;
|
|
1388
1518
|
metaData: Metadata;
|
|
1389
1519
|
seoMetaData: ISEOMetaData;
|
|
1390
1520
|
}
|
|
@@ -1444,6 +1574,4071 @@ interface IPodcastEpisode extends BaseEntity {
|
|
|
1444
1574
|
seoMetaData: ISEOMetaData;
|
|
1445
1575
|
}
|
|
1446
1576
|
|
|
1577
|
+
declare const BRAND_FIELDS: {
|
|
1578
|
+
readonly name: {
|
|
1579
|
+
readonly before: "commercecategory.name";
|
|
1580
|
+
readonly after: "item.manufacturer";
|
|
1581
|
+
readonly target: "name";
|
|
1582
|
+
readonly policy: "always";
|
|
1583
|
+
};
|
|
1584
|
+
readonly online: {
|
|
1585
|
+
readonly before: "isonline";
|
|
1586
|
+
readonly after: "custitem_display_online";
|
|
1587
|
+
readonly target: "isOnline";
|
|
1588
|
+
readonly policy: "always";
|
|
1589
|
+
};
|
|
1590
|
+
readonly netsuiteId: {
|
|
1591
|
+
readonly before: "commercecategory.id";
|
|
1592
|
+
readonly target: "netsuiteId";
|
|
1593
|
+
readonly policy: "always";
|
|
1594
|
+
readonly conditional: true;
|
|
1595
|
+
readonly note: "No successor. The manufacturer name becomes the key.";
|
|
1596
|
+
};
|
|
1597
|
+
readonly slug: {
|
|
1598
|
+
readonly before: "commercecategory.urlfragment";
|
|
1599
|
+
readonly target: "slug";
|
|
1600
|
+
readonly policy: "seed";
|
|
1601
|
+
readonly identity: true;
|
|
1602
|
+
readonly note: string;
|
|
1603
|
+
readonly caution: string;
|
|
1604
|
+
};
|
|
1605
|
+
readonly logo: {
|
|
1606
|
+
readonly before: "thumbnail";
|
|
1607
|
+
readonly target: "logo";
|
|
1608
|
+
readonly policy: "always";
|
|
1609
|
+
readonly conditional: true;
|
|
1610
|
+
readonly note: "No successor. custrecord35 holds the same logo as a plain URL on all 52 brands.";
|
|
1611
|
+
};
|
|
1612
|
+
readonly description: {
|
|
1613
|
+
readonly before: "commercecategory.description";
|
|
1614
|
+
readonly target: "description";
|
|
1615
|
+
readonly policy: "always";
|
|
1616
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1617
|
+
};
|
|
1618
|
+
readonly sortOrder: {
|
|
1619
|
+
readonly before: "sequencenumber";
|
|
1620
|
+
readonly target: "sortOrder";
|
|
1621
|
+
readonly policy: "always";
|
|
1622
|
+
readonly conditional: true;
|
|
1623
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1624
|
+
};
|
|
1625
|
+
readonly seoTitle: {
|
|
1626
|
+
readonly before: "pagetitle";
|
|
1627
|
+
readonly target: "seoMetaData.title";
|
|
1628
|
+
readonly policy: "always";
|
|
1629
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1630
|
+
};
|
|
1631
|
+
readonly seoDescription: {
|
|
1632
|
+
readonly before: "metadescription";
|
|
1633
|
+
readonly target: "seoMetaData.description";
|
|
1634
|
+
readonly policy: "always";
|
|
1635
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1636
|
+
};
|
|
1637
|
+
readonly seoKeywords: {
|
|
1638
|
+
readonly before: "metakeywords";
|
|
1639
|
+
readonly target: "seoMetaData.keywords";
|
|
1640
|
+
readonly policy: "always";
|
|
1641
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1642
|
+
};
|
|
1643
|
+
readonly status: {
|
|
1644
|
+
readonly before: "isinactive + displayinsite";
|
|
1645
|
+
readonly target: "status";
|
|
1646
|
+
readonly policy: "always";
|
|
1647
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1648
|
+
};
|
|
1649
|
+
readonly headerTag: {
|
|
1650
|
+
readonly before: "pageheading";
|
|
1651
|
+
readonly target: "seoMetaData.headerTag";
|
|
1652
|
+
readonly policy: "always";
|
|
1653
|
+
readonly note: string;
|
|
1654
|
+
};
|
|
1655
|
+
readonly banners: {
|
|
1656
|
+
readonly before: "pagebanner";
|
|
1657
|
+
readonly target: "banners";
|
|
1658
|
+
readonly policy: "seed";
|
|
1659
|
+
readonly note: string;
|
|
1660
|
+
};
|
|
1661
|
+
readonly logoUrl: {
|
|
1662
|
+
readonly before: "custrecord35";
|
|
1663
|
+
readonly target: "logo";
|
|
1664
|
+
readonly policy: "seed";
|
|
1665
|
+
readonly pending: true;
|
|
1666
|
+
readonly note: "A plain logo URL on all 52 brands, needing no file lookup. Never imported.";
|
|
1667
|
+
};
|
|
1668
|
+
};
|
|
1669
|
+
|
|
1670
|
+
declare const CATEGORY_FIELDS: {
|
|
1671
|
+
readonly name: {
|
|
1672
|
+
readonly before: "commercecategory.name";
|
|
1673
|
+
readonly after: "custitem_category";
|
|
1674
|
+
readonly target: "name";
|
|
1675
|
+
readonly policy: "always";
|
|
1676
|
+
readonly note: "After is a flat string stamped on the item, not a record.";
|
|
1677
|
+
};
|
|
1678
|
+
readonly online: {
|
|
1679
|
+
readonly before: "isonline";
|
|
1680
|
+
readonly after: "custitem_display_online";
|
|
1681
|
+
readonly target: "isOnline";
|
|
1682
|
+
readonly policy: "always";
|
|
1683
|
+
};
|
|
1684
|
+
readonly netsuiteId: {
|
|
1685
|
+
readonly before: "commercecategory.id";
|
|
1686
|
+
readonly target: "netsuiteId";
|
|
1687
|
+
readonly policy: "always";
|
|
1688
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1689
|
+
};
|
|
1690
|
+
readonly slug: {
|
|
1691
|
+
readonly before: "urlfragment";
|
|
1692
|
+
readonly target: "slug";
|
|
1693
|
+
readonly policy: "seed";
|
|
1694
|
+
readonly identity: true;
|
|
1695
|
+
readonly note: string;
|
|
1696
|
+
readonly caution: string;
|
|
1697
|
+
};
|
|
1698
|
+
readonly image: {
|
|
1699
|
+
readonly before: "thumbnail";
|
|
1700
|
+
readonly target: "image";
|
|
1701
|
+
readonly policy: "always";
|
|
1702
|
+
readonly note: "No successor. custrecord35 holds 3,735 of these as plain URLs.";
|
|
1703
|
+
};
|
|
1704
|
+
readonly description: {
|
|
1705
|
+
readonly before: "commercecategory.description";
|
|
1706
|
+
readonly target: "description";
|
|
1707
|
+
readonly policy: "always";
|
|
1708
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1709
|
+
};
|
|
1710
|
+
readonly sortOrder: {
|
|
1711
|
+
readonly before: "sequencenumber";
|
|
1712
|
+
readonly target: "sortOrder";
|
|
1713
|
+
readonly policy: "always";
|
|
1714
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1715
|
+
};
|
|
1716
|
+
readonly seoTitle: {
|
|
1717
|
+
readonly before: "pagetitle";
|
|
1718
|
+
readonly target: "seoMetaData.title";
|
|
1719
|
+
readonly policy: "always";
|
|
1720
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1721
|
+
};
|
|
1722
|
+
readonly seoDescription: {
|
|
1723
|
+
readonly before: "metadescription";
|
|
1724
|
+
readonly target: "seoMetaData.description";
|
|
1725
|
+
readonly policy: "always";
|
|
1726
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1727
|
+
};
|
|
1728
|
+
readonly seoKeywords: {
|
|
1729
|
+
readonly before: "metakeywords";
|
|
1730
|
+
readonly target: "seoMetaData.keywords";
|
|
1731
|
+
readonly policy: "always";
|
|
1732
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1733
|
+
};
|
|
1734
|
+
readonly status: {
|
|
1735
|
+
readonly before: "isinactive + displayinsite";
|
|
1736
|
+
readonly target: "status";
|
|
1737
|
+
readonly policy: "always";
|
|
1738
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
1739
|
+
};
|
|
1740
|
+
readonly parent: {
|
|
1741
|
+
readonly before: "primaryparent";
|
|
1742
|
+
readonly after: "custitem_primary_category";
|
|
1743
|
+
readonly target: "parent";
|
|
1744
|
+
readonly policy: "always";
|
|
1745
|
+
readonly note: "The single primary parent. Mirrors NetSuite on every sync, so a parent changed here is overwritten. After is populated on only 3,150 items.";
|
|
1746
|
+
};
|
|
1747
|
+
readonly subcategories: {
|
|
1748
|
+
readonly before: "commercecategoryassociation.subcategory";
|
|
1749
|
+
readonly target: "subcategories";
|
|
1750
|
+
readonly policy: "always";
|
|
1751
|
+
readonly note: "The children list, rebuilt from the association table on every sync — NetSuite categories are multi-parent, so 23% of them sit under more than one. `primaryparent` alone misses those. Edits here are overwritten.";
|
|
1752
|
+
readonly caution: "The association row also carries nameoverride / urlfragmentoverride / thumbnailoverride per parent, so the same category is labelled differently under each. Those overrides are applied for the primary parent only.";
|
|
1753
|
+
};
|
|
1754
|
+
readonly headerTag: {
|
|
1755
|
+
readonly before: "pageheading";
|
|
1756
|
+
readonly target: "seoMetaData.headerTag";
|
|
1757
|
+
readonly policy: "always";
|
|
1758
|
+
readonly note: "The H1, on 4,789 categories. addtohead is head markup and is not a substitute.";
|
|
1759
|
+
};
|
|
1760
|
+
readonly banners: {
|
|
1761
|
+
readonly before: "pagebanner";
|
|
1762
|
+
readonly target: "banners";
|
|
1763
|
+
readonly policy: "seed";
|
|
1764
|
+
readonly note: "Seeded from pagebanner on first import; 50 categories carry one. Edits here are never overwritten.";
|
|
1765
|
+
};
|
|
1766
|
+
readonly imageUrl: {
|
|
1767
|
+
readonly before: "custrecord35";
|
|
1768
|
+
readonly target: "image";
|
|
1769
|
+
readonly policy: "seed";
|
|
1770
|
+
readonly pending: true;
|
|
1771
|
+
readonly note: "A plain image URL on 3,735 categories, needing no file lookup. Never imported.";
|
|
1772
|
+
};
|
|
1773
|
+
readonly faq: {
|
|
1774
|
+
readonly before: "custrecord_faq_q1";
|
|
1775
|
+
readonly target: "metaData.faq";
|
|
1776
|
+
readonly policy: "seed";
|
|
1777
|
+
readonly pending: true;
|
|
1778
|
+
readonly note: "Ten question and answer pairs on 34 categories. Editorial copy held nowhere else.";
|
|
1779
|
+
};
|
|
1780
|
+
};
|
|
1781
|
+
|
|
1782
|
+
declare const PRODUCT_FIELDS: {
|
|
1783
|
+
readonly netsuiteId: {
|
|
1784
|
+
readonly before: "item.id";
|
|
1785
|
+
readonly target: "netsuiteId";
|
|
1786
|
+
readonly policy: "always";
|
|
1787
|
+
readonly conditional: true;
|
|
1788
|
+
readonly note: string;
|
|
1789
|
+
};
|
|
1790
|
+
readonly sku: {
|
|
1791
|
+
readonly before: "item.itemid";
|
|
1792
|
+
readonly target: "sku";
|
|
1793
|
+
readonly policy: "always";
|
|
1794
|
+
readonly conditional: true;
|
|
1795
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
1796
|
+
};
|
|
1797
|
+
readonly originalPrice: {
|
|
1798
|
+
readonly before: "itemprice at the Base Price level (1)";
|
|
1799
|
+
readonly target: "price.originalPrice";
|
|
1800
|
+
readonly policy: "always";
|
|
1801
|
+
readonly conditional: true;
|
|
1802
|
+
readonly note: string;
|
|
1803
|
+
};
|
|
1804
|
+
readonly discount: {
|
|
1805
|
+
readonly before: "derived from Base Price vs Online Price";
|
|
1806
|
+
readonly target: "price.discount";
|
|
1807
|
+
readonly policy: "always";
|
|
1808
|
+
readonly conditional: true;
|
|
1809
|
+
readonly note: string;
|
|
1810
|
+
};
|
|
1811
|
+
readonly weight: {
|
|
1812
|
+
readonly before: "weight + weightunit";
|
|
1813
|
+
readonly target: "shipping.weightLb";
|
|
1814
|
+
readonly policy: "always";
|
|
1815
|
+
readonly conditional: true;
|
|
1816
|
+
readonly note: "weight is on 299,354 items, weightunit on 107,131. Converted to lb and kg on import.";
|
|
1817
|
+
};
|
|
1818
|
+
readonly dimensions: {
|
|
1819
|
+
readonly target: "shipping.lengthIn";
|
|
1820
|
+
readonly policy: "seed";
|
|
1821
|
+
readonly note: string;
|
|
1822
|
+
};
|
|
1823
|
+
readonly price: {
|
|
1824
|
+
readonly before: "itemprice at the online price level";
|
|
1825
|
+
readonly target: "price";
|
|
1826
|
+
readonly policy: "always";
|
|
1827
|
+
readonly conditional: true;
|
|
1828
|
+
readonly note: string;
|
|
1829
|
+
};
|
|
1830
|
+
readonly quantity: {
|
|
1831
|
+
readonly before: "quantityavailable";
|
|
1832
|
+
readonly target: "quantity";
|
|
1833
|
+
readonly policy: "always";
|
|
1834
|
+
readonly conditional: true;
|
|
1835
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
1836
|
+
};
|
|
1837
|
+
readonly minimumQuantity: {
|
|
1838
|
+
readonly before: "minimumquantity";
|
|
1839
|
+
readonly target: "minimumQuantity";
|
|
1840
|
+
readonly policy: "always";
|
|
1841
|
+
readonly conditional: true;
|
|
1842
|
+
readonly note: string;
|
|
1843
|
+
};
|
|
1844
|
+
readonly maximumQuantity: {
|
|
1845
|
+
readonly before: "maximumquantity";
|
|
1846
|
+
readonly target: "maximumQuantity";
|
|
1847
|
+
readonly policy: "always";
|
|
1848
|
+
readonly conditional: true;
|
|
1849
|
+
readonly note: string;
|
|
1850
|
+
};
|
|
1851
|
+
readonly enforceMinimum: {
|
|
1852
|
+
readonly before: "enforceminqtyinternally";
|
|
1853
|
+
readonly target: "enforceMinimum";
|
|
1854
|
+
readonly policy: "always";
|
|
1855
|
+
readonly conditional: true;
|
|
1856
|
+
readonly note: string;
|
|
1857
|
+
};
|
|
1858
|
+
readonly isSparePart: {
|
|
1859
|
+
readonly before: "custitem303";
|
|
1860
|
+
readonly target: "isSparePart";
|
|
1861
|
+
readonly policy: "always";
|
|
1862
|
+
readonly conditional: true;
|
|
1863
|
+
readonly note: string;
|
|
1864
|
+
};
|
|
1865
|
+
readonly itemType: {
|
|
1866
|
+
readonly before: "itemtype";
|
|
1867
|
+
readonly target: "itemType";
|
|
1868
|
+
readonly policy: "always";
|
|
1869
|
+
readonly conditional: true;
|
|
1870
|
+
readonly note: string;
|
|
1871
|
+
};
|
|
1872
|
+
readonly stockDescription: {
|
|
1873
|
+
readonly before: "stockdescription";
|
|
1874
|
+
readonly target: "stockDescription";
|
|
1875
|
+
readonly policy: "always";
|
|
1876
|
+
readonly conditional: true;
|
|
1877
|
+
readonly note: string;
|
|
1878
|
+
};
|
|
1879
|
+
readonly noPriceMessage: {
|
|
1880
|
+
readonly before: "nopricemessage";
|
|
1881
|
+
readonly target: "noPriceMessage";
|
|
1882
|
+
readonly policy: "always";
|
|
1883
|
+
readonly conditional: true;
|
|
1884
|
+
readonly note: string;
|
|
1885
|
+
};
|
|
1886
|
+
readonly isSeriesComponent: {
|
|
1887
|
+
readonly before: "custitem40";
|
|
1888
|
+
readonly target: "isSeriesComponent";
|
|
1889
|
+
readonly policy: "always";
|
|
1890
|
+
readonly conditional: true;
|
|
1891
|
+
readonly note: string;
|
|
1892
|
+
};
|
|
1893
|
+
readonly flexWarrantyEligible: {
|
|
1894
|
+
readonly before: "custitem520";
|
|
1895
|
+
readonly target: "flexWarrantyEligible";
|
|
1896
|
+
readonly policy: "always";
|
|
1897
|
+
readonly conditional: true;
|
|
1898
|
+
readonly note: string;
|
|
1899
|
+
};
|
|
1900
|
+
readonly inventoryPolicy: {
|
|
1901
|
+
readonly before: "outofstockbehavior";
|
|
1902
|
+
readonly target: "inventoryPolicy";
|
|
1903
|
+
readonly policy: "always";
|
|
1904
|
+
readonly conditional: true;
|
|
1905
|
+
readonly note: string;
|
|
1906
|
+
};
|
|
1907
|
+
readonly status: {
|
|
1908
|
+
readonly before: "isinactive";
|
|
1909
|
+
readonly target: "status";
|
|
1910
|
+
readonly policy: "always";
|
|
1911
|
+
readonly conditional: true;
|
|
1912
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
1913
|
+
};
|
|
1914
|
+
readonly shipping: {
|
|
1915
|
+
readonly before: "weight + weightunit";
|
|
1916
|
+
readonly target: "shipping";
|
|
1917
|
+
readonly policy: "always";
|
|
1918
|
+
readonly conditional: true;
|
|
1919
|
+
readonly note: string;
|
|
1920
|
+
};
|
|
1921
|
+
readonly slug: {
|
|
1922
|
+
readonly before: "urlcomponent";
|
|
1923
|
+
readonly after: "custitem_slug";
|
|
1924
|
+
readonly target: "slug";
|
|
1925
|
+
readonly policy: "seed";
|
|
1926
|
+
readonly identity: true;
|
|
1927
|
+
readonly note: "The storefront URL never moves once a product exists.";
|
|
1928
|
+
readonly caution: "The sync matches on netsuiteId first and falls back to slug. Changing it on a product NetSuite has never supplied makes the next run miss it and insert a second one.";
|
|
1929
|
+
};
|
|
1930
|
+
readonly name: {
|
|
1931
|
+
readonly before: "storedisplayname";
|
|
1932
|
+
readonly after: "custitem_product_name";
|
|
1933
|
+
readonly target: "name";
|
|
1934
|
+
readonly policy: "always";
|
|
1935
|
+
readonly conditional: true;
|
|
1936
|
+
readonly note: string;
|
|
1937
|
+
};
|
|
1938
|
+
readonly featured: {
|
|
1939
|
+
readonly before: "featureddescription";
|
|
1940
|
+
readonly after: "custitem_product_featured_description";
|
|
1941
|
+
readonly target: "description";
|
|
1942
|
+
readonly policy: "always";
|
|
1943
|
+
readonly conditional: true;
|
|
1944
|
+
readonly note: string;
|
|
1945
|
+
};
|
|
1946
|
+
readonly overview: {
|
|
1947
|
+
readonly before: "storedetaileddescription";
|
|
1948
|
+
readonly after: "custitem_product_description";
|
|
1949
|
+
readonly target: "overview";
|
|
1950
|
+
readonly policy: "always";
|
|
1951
|
+
readonly conditional: true;
|
|
1952
|
+
};
|
|
1953
|
+
readonly pageTitle: {
|
|
1954
|
+
readonly before: "pagetitle";
|
|
1955
|
+
readonly after: "custitem_page_title";
|
|
1956
|
+
readonly target: "seoMetaData.title";
|
|
1957
|
+
readonly policy: "always";
|
|
1958
|
+
readonly conditional: true;
|
|
1959
|
+
};
|
|
1960
|
+
readonly online: {
|
|
1961
|
+
readonly before: "isonline";
|
|
1962
|
+
readonly after: "custitem_display_online";
|
|
1963
|
+
readonly target: "isOnline";
|
|
1964
|
+
readonly policy: "always";
|
|
1965
|
+
readonly conditional: true;
|
|
1966
|
+
readonly note: string;
|
|
1967
|
+
};
|
|
1968
|
+
readonly saleType: {
|
|
1969
|
+
readonly before: "dontshowprice";
|
|
1970
|
+
readonly after: "custitem_quote_only";
|
|
1971
|
+
readonly target: "saleType";
|
|
1972
|
+
readonly policy: "always";
|
|
1973
|
+
readonly conditional: true;
|
|
1974
|
+
readonly note: "Derived from the quote-only flag and the price by saleTypeOf, so it is recomputed on every refresh.";
|
|
1975
|
+
};
|
|
1976
|
+
readonly quoteOnly: {
|
|
1977
|
+
readonly before: "dontshowprice";
|
|
1978
|
+
readonly after: "custitem_quote_only";
|
|
1979
|
+
readonly target: "metaData.quoteOnly";
|
|
1980
|
+
readonly policy: "seed";
|
|
1981
|
+
readonly note: "Written only at creation, so a later flip in NetSuite is never picked up.";
|
|
1982
|
+
};
|
|
1983
|
+
readonly image: {
|
|
1984
|
+
readonly before: "storedisplayimage";
|
|
1985
|
+
readonly after: "custitem_itemimages";
|
|
1986
|
+
readonly target: "images";
|
|
1987
|
+
readonly policy: "always";
|
|
1988
|
+
readonly conditional: true;
|
|
1989
|
+
readonly note: "Before is a file id needing a lookup; after is a ready CDN URL.";
|
|
1990
|
+
};
|
|
1991
|
+
readonly category: {
|
|
1992
|
+
readonly before: "commercecategoryitemassociation.category";
|
|
1993
|
+
readonly after: "custitem_primary_category";
|
|
1994
|
+
readonly target: "category";
|
|
1995
|
+
readonly policy: "always";
|
|
1996
|
+
readonly conditional: true;
|
|
1997
|
+
readonly note: string;
|
|
1998
|
+
};
|
|
1999
|
+
readonly seoDescription: {
|
|
2000
|
+
readonly before: "metataghtml";
|
|
2001
|
+
readonly after: "custitem_meta_description";
|
|
2002
|
+
readonly target: "seoMetaData.description";
|
|
2003
|
+
readonly policy: "always";
|
|
2004
|
+
readonly conditional: true;
|
|
2005
|
+
readonly note: "The replacement exists but carries no data yet.";
|
|
2006
|
+
};
|
|
2007
|
+
readonly brand: {
|
|
2008
|
+
readonly before: "manufacturer";
|
|
2009
|
+
readonly target: "brand";
|
|
2010
|
+
readonly policy: "always";
|
|
2011
|
+
readonly conditional: true;
|
|
2012
|
+
readonly note: string;
|
|
2013
|
+
};
|
|
2014
|
+
readonly googleCategory: {
|
|
2015
|
+
readonly after: "custitemproducttype";
|
|
2016
|
+
readonly target: "googleCategory";
|
|
2017
|
+
readonly policy: "always";
|
|
2018
|
+
readonly conditional: true;
|
|
2019
|
+
readonly note: string;
|
|
2020
|
+
};
|
|
2021
|
+
readonly department: {
|
|
2022
|
+
readonly after: "custitemfas_product_category";
|
|
2023
|
+
readonly target: "department";
|
|
2024
|
+
readonly policy: "always";
|
|
2025
|
+
readonly conditional: true;
|
|
2026
|
+
readonly note: string;
|
|
2027
|
+
};
|
|
2028
|
+
readonly imageAlt: {
|
|
2029
|
+
readonly after: "custitemaltimgtext";
|
|
2030
|
+
readonly target: "images.alt";
|
|
2031
|
+
readonly policy: "always";
|
|
2032
|
+
readonly conditional: true;
|
|
2033
|
+
readonly note: string;
|
|
2034
|
+
};
|
|
2035
|
+
readonly family: {
|
|
2036
|
+
readonly after: "custitem_family";
|
|
2037
|
+
readonly target: "metaData.family";
|
|
2038
|
+
readonly policy: "seed";
|
|
2039
|
+
readonly pending: true;
|
|
2040
|
+
readonly note: "Populated on 17,552 items. No storefront field consumes it yet.";
|
|
2041
|
+
};
|
|
2042
|
+
readonly primaryCategory: {
|
|
2043
|
+
readonly before: "commercecategoryitemassociation.primarycategory";
|
|
2044
|
+
readonly after: "custitem_primary_category";
|
|
2045
|
+
readonly target: "metaData.primaryCategory";
|
|
2046
|
+
readonly policy: "seed";
|
|
2047
|
+
readonly note: string;
|
|
2048
|
+
};
|
|
2049
|
+
readonly additionalCategories: {
|
|
2050
|
+
readonly sourceTable: "commercecategoryitemassociation";
|
|
2051
|
+
readonly after: "custitem_additional_categories";
|
|
2052
|
+
readonly target: "categories";
|
|
2053
|
+
readonly policy: "always";
|
|
2054
|
+
readonly note: string;
|
|
2055
|
+
readonly caution: string;
|
|
2056
|
+
};
|
|
2057
|
+
readonly micrositeDescription: {
|
|
2058
|
+
readonly after: "custitem_microsite_description";
|
|
2059
|
+
readonly target: "metaData.micrositeDescription";
|
|
2060
|
+
readonly policy: "seed";
|
|
2061
|
+
readonly pending: true;
|
|
2062
|
+
readonly note: "Populated on 2,284 items.";
|
|
2063
|
+
};
|
|
2064
|
+
readonly features: {
|
|
2065
|
+
readonly after: "custitem_features";
|
|
2066
|
+
readonly target: "metaData.features";
|
|
2067
|
+
readonly policy: "seed";
|
|
2068
|
+
readonly pending: true;
|
|
2069
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
2070
|
+
};
|
|
2071
|
+
readonly childStoreOnly: {
|
|
2072
|
+
readonly after: "custitem_child_store_only";
|
|
2073
|
+
readonly target: "childOnly";
|
|
2074
|
+
readonly policy: "seed";
|
|
2075
|
+
readonly pending: true;
|
|
2076
|
+
readonly note: "Nothing is flagged yet. Our stores[] array already covers this.";
|
|
2077
|
+
};
|
|
2078
|
+
};
|
|
2079
|
+
|
|
2080
|
+
type SyncPolicy = "always" | "seed";
|
|
2081
|
+
interface FieldMapping {
|
|
2082
|
+
before?: string;
|
|
2083
|
+
after?: string;
|
|
2084
|
+
sourceTable?: string;
|
|
2085
|
+
target: string;
|
|
2086
|
+
policy: SyncPolicy;
|
|
2087
|
+
pending?: boolean;
|
|
2088
|
+
conditional?: boolean;
|
|
2089
|
+
identity?: boolean;
|
|
2090
|
+
caution?: string;
|
|
2091
|
+
note?: string;
|
|
2092
|
+
}
|
|
2093
|
+
type FieldMap = Record<string, FieldMapping>;
|
|
2094
|
+
|
|
2095
|
+
declare const readMapped: (row: Record<string, unknown>, field: FieldMapping) => string | undefined;
|
|
2096
|
+
declare class NetsuiteFieldProvider<M extends FieldMap> {
|
|
2097
|
+
readonly entity: string;
|
|
2098
|
+
readonly fields: M;
|
|
2099
|
+
constructor(entity: string, fields: M);
|
|
2100
|
+
columns(extra?: readonly string[]): string[];
|
|
2101
|
+
select(alias: string, extra?: readonly string[]): string;
|
|
2102
|
+
read(row: Record<string, unknown>, key: keyof M): string | undefined;
|
|
2103
|
+
alwaysWritten(): string[];
|
|
2104
|
+
orphaned(): Array<[string, FieldMapping]>;
|
|
2105
|
+
pending(): Array<[string, FieldMapping]>;
|
|
2106
|
+
targetForSource(column: string): string | undefined;
|
|
2107
|
+
private entries;
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2110
|
+
declare const RELATION_FIELDS: {
|
|
2111
|
+
readonly accessories: {
|
|
2112
|
+
readonly after: "custitem_accessories";
|
|
2113
|
+
readonly target: "relationGroups.accessories";
|
|
2114
|
+
readonly policy: "seed";
|
|
2115
|
+
readonly pending: true;
|
|
2116
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
2117
|
+
};
|
|
2118
|
+
readonly toolKits: {
|
|
2119
|
+
readonly after: "custitem_tool_kits";
|
|
2120
|
+
readonly target: "relationGroups.tool-kits";
|
|
2121
|
+
readonly policy: "seed";
|
|
2122
|
+
readonly pending: true;
|
|
2123
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
2124
|
+
};
|
|
2125
|
+
readonly parts: {
|
|
2126
|
+
readonly after: "custitem_parts";
|
|
2127
|
+
readonly target: "relationGroups.parts";
|
|
2128
|
+
readonly policy: "seed";
|
|
2129
|
+
readonly pending: true;
|
|
2130
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
2131
|
+
};
|
|
2132
|
+
readonly similarProducts: {
|
|
2133
|
+
readonly after: "custitem_similiar_products";
|
|
2134
|
+
readonly target: "relationGroups.similar-products";
|
|
2135
|
+
readonly policy: "seed";
|
|
2136
|
+
readonly pending: true;
|
|
2137
|
+
readonly note: "The scriptid misspells Similar. That spelling is the real identifier.";
|
|
2138
|
+
};
|
|
2139
|
+
readonly frequentlyBought: {
|
|
2140
|
+
readonly before: "itemcorrelateditem";
|
|
2141
|
+
readonly after: "custitem_frequently_bought";
|
|
2142
|
+
readonly target: "relationGroups.frequently-bought-together";
|
|
2143
|
+
readonly policy: "seed";
|
|
2144
|
+
readonly pending: true;
|
|
2145
|
+
readonly note: "Before is NetSuite's own correlation feed, 894 rows, derived from SuiteCommerce traffic.";
|
|
2146
|
+
};
|
|
2147
|
+
readonly includedItems: {
|
|
2148
|
+
readonly after: "custitem_included_items";
|
|
2149
|
+
readonly target: "relationGroups.kit-contents";
|
|
2150
|
+
readonly policy: "seed";
|
|
2151
|
+
readonly pending: true;
|
|
2152
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
2153
|
+
};
|
|
2154
|
+
readonly modelsAvailable: {
|
|
2155
|
+
readonly after: "custitem_models_available";
|
|
2156
|
+
readonly target: "relationGroups.models-available";
|
|
2157
|
+
readonly policy: "seed";
|
|
2158
|
+
readonly pending: true;
|
|
2159
|
+
readonly note: "Populated on 1,365 items. No relation group is seeded for it yet.";
|
|
2160
|
+
};
|
|
2161
|
+
};
|
|
2162
|
+
|
|
2163
|
+
declare const productFields: NetsuiteFieldProvider<{
|
|
2164
|
+
readonly netsuiteId: {
|
|
2165
|
+
readonly before: "item.id";
|
|
2166
|
+
readonly target: "netsuiteId";
|
|
2167
|
+
readonly policy: "always";
|
|
2168
|
+
readonly conditional: true;
|
|
2169
|
+
readonly note: string;
|
|
2170
|
+
};
|
|
2171
|
+
readonly sku: {
|
|
2172
|
+
readonly before: "item.itemid";
|
|
2173
|
+
readonly target: "sku";
|
|
2174
|
+
readonly policy: "always";
|
|
2175
|
+
readonly conditional: true;
|
|
2176
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
2177
|
+
};
|
|
2178
|
+
readonly originalPrice: {
|
|
2179
|
+
readonly before: "itemprice at the Base Price level (1)";
|
|
2180
|
+
readonly target: "price.originalPrice";
|
|
2181
|
+
readonly policy: "always";
|
|
2182
|
+
readonly conditional: true;
|
|
2183
|
+
readonly note: string;
|
|
2184
|
+
};
|
|
2185
|
+
readonly discount: {
|
|
2186
|
+
readonly before: "derived from Base Price vs Online Price";
|
|
2187
|
+
readonly target: "price.discount";
|
|
2188
|
+
readonly policy: "always";
|
|
2189
|
+
readonly conditional: true;
|
|
2190
|
+
readonly note: string;
|
|
2191
|
+
};
|
|
2192
|
+
readonly weight: {
|
|
2193
|
+
readonly before: "weight + weightunit";
|
|
2194
|
+
readonly target: "shipping.weightLb";
|
|
2195
|
+
readonly policy: "always";
|
|
2196
|
+
readonly conditional: true;
|
|
2197
|
+
readonly note: "weight is on 299,354 items, weightunit on 107,131. Converted to lb and kg on import.";
|
|
2198
|
+
};
|
|
2199
|
+
readonly dimensions: {
|
|
2200
|
+
readonly target: "shipping.lengthIn";
|
|
2201
|
+
readonly policy: "seed";
|
|
2202
|
+
readonly note: string;
|
|
2203
|
+
};
|
|
2204
|
+
readonly price: {
|
|
2205
|
+
readonly before: "itemprice at the online price level";
|
|
2206
|
+
readonly target: "price";
|
|
2207
|
+
readonly policy: "always";
|
|
2208
|
+
readonly conditional: true;
|
|
2209
|
+
readonly note: string;
|
|
2210
|
+
};
|
|
2211
|
+
readonly quantity: {
|
|
2212
|
+
readonly before: "quantityavailable";
|
|
2213
|
+
readonly target: "quantity";
|
|
2214
|
+
readonly policy: "always";
|
|
2215
|
+
readonly conditional: true;
|
|
2216
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
2217
|
+
};
|
|
2218
|
+
readonly minimumQuantity: {
|
|
2219
|
+
readonly before: "minimumquantity";
|
|
2220
|
+
readonly target: "minimumQuantity";
|
|
2221
|
+
readonly policy: "always";
|
|
2222
|
+
readonly conditional: true;
|
|
2223
|
+
readonly note: string;
|
|
2224
|
+
};
|
|
2225
|
+
readonly maximumQuantity: {
|
|
2226
|
+
readonly before: "maximumquantity";
|
|
2227
|
+
readonly target: "maximumQuantity";
|
|
2228
|
+
readonly policy: "always";
|
|
2229
|
+
readonly conditional: true;
|
|
2230
|
+
readonly note: string;
|
|
2231
|
+
};
|
|
2232
|
+
readonly enforceMinimum: {
|
|
2233
|
+
readonly before: "enforceminqtyinternally";
|
|
2234
|
+
readonly target: "enforceMinimum";
|
|
2235
|
+
readonly policy: "always";
|
|
2236
|
+
readonly conditional: true;
|
|
2237
|
+
readonly note: string;
|
|
2238
|
+
};
|
|
2239
|
+
readonly isSparePart: {
|
|
2240
|
+
readonly before: "custitem303";
|
|
2241
|
+
readonly target: "isSparePart";
|
|
2242
|
+
readonly policy: "always";
|
|
2243
|
+
readonly conditional: true;
|
|
2244
|
+
readonly note: string;
|
|
2245
|
+
};
|
|
2246
|
+
readonly itemType: {
|
|
2247
|
+
readonly before: "itemtype";
|
|
2248
|
+
readonly target: "itemType";
|
|
2249
|
+
readonly policy: "always";
|
|
2250
|
+
readonly conditional: true;
|
|
2251
|
+
readonly note: string;
|
|
2252
|
+
};
|
|
2253
|
+
readonly stockDescription: {
|
|
2254
|
+
readonly before: "stockdescription";
|
|
2255
|
+
readonly target: "stockDescription";
|
|
2256
|
+
readonly policy: "always";
|
|
2257
|
+
readonly conditional: true;
|
|
2258
|
+
readonly note: string;
|
|
2259
|
+
};
|
|
2260
|
+
readonly noPriceMessage: {
|
|
2261
|
+
readonly before: "nopricemessage";
|
|
2262
|
+
readonly target: "noPriceMessage";
|
|
2263
|
+
readonly policy: "always";
|
|
2264
|
+
readonly conditional: true;
|
|
2265
|
+
readonly note: string;
|
|
2266
|
+
};
|
|
2267
|
+
readonly isSeriesComponent: {
|
|
2268
|
+
readonly before: "custitem40";
|
|
2269
|
+
readonly target: "isSeriesComponent";
|
|
2270
|
+
readonly policy: "always";
|
|
2271
|
+
readonly conditional: true;
|
|
2272
|
+
readonly note: string;
|
|
2273
|
+
};
|
|
2274
|
+
readonly flexWarrantyEligible: {
|
|
2275
|
+
readonly before: "custitem520";
|
|
2276
|
+
readonly target: "flexWarrantyEligible";
|
|
2277
|
+
readonly policy: "always";
|
|
2278
|
+
readonly conditional: true;
|
|
2279
|
+
readonly note: string;
|
|
2280
|
+
};
|
|
2281
|
+
readonly inventoryPolicy: {
|
|
2282
|
+
readonly before: "outofstockbehavior";
|
|
2283
|
+
readonly target: "inventoryPolicy";
|
|
2284
|
+
readonly policy: "always";
|
|
2285
|
+
readonly conditional: true;
|
|
2286
|
+
readonly note: string;
|
|
2287
|
+
};
|
|
2288
|
+
readonly status: {
|
|
2289
|
+
readonly before: "isinactive";
|
|
2290
|
+
readonly target: "status";
|
|
2291
|
+
readonly policy: "always";
|
|
2292
|
+
readonly conditional: true;
|
|
2293
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
2294
|
+
};
|
|
2295
|
+
readonly shipping: {
|
|
2296
|
+
readonly before: "weight + weightunit";
|
|
2297
|
+
readonly target: "shipping";
|
|
2298
|
+
readonly policy: "always";
|
|
2299
|
+
readonly conditional: true;
|
|
2300
|
+
readonly note: string;
|
|
2301
|
+
};
|
|
2302
|
+
readonly slug: {
|
|
2303
|
+
readonly before: "urlcomponent";
|
|
2304
|
+
readonly after: "custitem_slug";
|
|
2305
|
+
readonly target: "slug";
|
|
2306
|
+
readonly policy: "seed";
|
|
2307
|
+
readonly identity: true;
|
|
2308
|
+
readonly note: "The storefront URL never moves once a product exists.";
|
|
2309
|
+
readonly caution: "The sync matches on netsuiteId first and falls back to slug. Changing it on a product NetSuite has never supplied makes the next run miss it and insert a second one.";
|
|
2310
|
+
};
|
|
2311
|
+
readonly name: {
|
|
2312
|
+
readonly before: "storedisplayname";
|
|
2313
|
+
readonly after: "custitem_product_name";
|
|
2314
|
+
readonly target: "name";
|
|
2315
|
+
readonly policy: "always";
|
|
2316
|
+
readonly conditional: true;
|
|
2317
|
+
readonly note: string;
|
|
2318
|
+
};
|
|
2319
|
+
readonly featured: {
|
|
2320
|
+
readonly before: "featureddescription";
|
|
2321
|
+
readonly after: "custitem_product_featured_description";
|
|
2322
|
+
readonly target: "description";
|
|
2323
|
+
readonly policy: "always";
|
|
2324
|
+
readonly conditional: true;
|
|
2325
|
+
readonly note: string;
|
|
2326
|
+
};
|
|
2327
|
+
readonly overview: {
|
|
2328
|
+
readonly before: "storedetaileddescription";
|
|
2329
|
+
readonly after: "custitem_product_description";
|
|
2330
|
+
readonly target: "overview";
|
|
2331
|
+
readonly policy: "always";
|
|
2332
|
+
readonly conditional: true;
|
|
2333
|
+
};
|
|
2334
|
+
readonly pageTitle: {
|
|
2335
|
+
readonly before: "pagetitle";
|
|
2336
|
+
readonly after: "custitem_page_title";
|
|
2337
|
+
readonly target: "seoMetaData.title";
|
|
2338
|
+
readonly policy: "always";
|
|
2339
|
+
readonly conditional: true;
|
|
2340
|
+
};
|
|
2341
|
+
readonly online: {
|
|
2342
|
+
readonly before: "isonline";
|
|
2343
|
+
readonly after: "custitem_display_online";
|
|
2344
|
+
readonly target: "isOnline";
|
|
2345
|
+
readonly policy: "always";
|
|
2346
|
+
readonly conditional: true;
|
|
2347
|
+
readonly note: string;
|
|
2348
|
+
};
|
|
2349
|
+
readonly saleType: {
|
|
2350
|
+
readonly before: "dontshowprice";
|
|
2351
|
+
readonly after: "custitem_quote_only";
|
|
2352
|
+
readonly target: "saleType";
|
|
2353
|
+
readonly policy: "always";
|
|
2354
|
+
readonly conditional: true;
|
|
2355
|
+
readonly note: "Derived from the quote-only flag and the price by saleTypeOf, so it is recomputed on every refresh.";
|
|
2356
|
+
};
|
|
2357
|
+
readonly quoteOnly: {
|
|
2358
|
+
readonly before: "dontshowprice";
|
|
2359
|
+
readonly after: "custitem_quote_only";
|
|
2360
|
+
readonly target: "metaData.quoteOnly";
|
|
2361
|
+
readonly policy: "seed";
|
|
2362
|
+
readonly note: "Written only at creation, so a later flip in NetSuite is never picked up.";
|
|
2363
|
+
};
|
|
2364
|
+
readonly image: {
|
|
2365
|
+
readonly before: "storedisplayimage";
|
|
2366
|
+
readonly after: "custitem_itemimages";
|
|
2367
|
+
readonly target: "images";
|
|
2368
|
+
readonly policy: "always";
|
|
2369
|
+
readonly conditional: true;
|
|
2370
|
+
readonly note: "Before is a file id needing a lookup; after is a ready CDN URL.";
|
|
2371
|
+
};
|
|
2372
|
+
readonly category: {
|
|
2373
|
+
readonly before: "commercecategoryitemassociation.category";
|
|
2374
|
+
readonly after: "custitem_primary_category";
|
|
2375
|
+
readonly target: "category";
|
|
2376
|
+
readonly policy: "always";
|
|
2377
|
+
readonly conditional: true;
|
|
2378
|
+
readonly note: string;
|
|
2379
|
+
};
|
|
2380
|
+
readonly seoDescription: {
|
|
2381
|
+
readonly before: "metataghtml";
|
|
2382
|
+
readonly after: "custitem_meta_description";
|
|
2383
|
+
readonly target: "seoMetaData.description";
|
|
2384
|
+
readonly policy: "always";
|
|
2385
|
+
readonly conditional: true;
|
|
2386
|
+
readonly note: "The replacement exists but carries no data yet.";
|
|
2387
|
+
};
|
|
2388
|
+
readonly brand: {
|
|
2389
|
+
readonly before: "manufacturer";
|
|
2390
|
+
readonly target: "brand";
|
|
2391
|
+
readonly policy: "always";
|
|
2392
|
+
readonly conditional: true;
|
|
2393
|
+
readonly note: string;
|
|
2394
|
+
};
|
|
2395
|
+
readonly googleCategory: {
|
|
2396
|
+
readonly after: "custitemproducttype";
|
|
2397
|
+
readonly target: "googleCategory";
|
|
2398
|
+
readonly policy: "always";
|
|
2399
|
+
readonly conditional: true;
|
|
2400
|
+
readonly note: string;
|
|
2401
|
+
};
|
|
2402
|
+
readonly department: {
|
|
2403
|
+
readonly after: "custitemfas_product_category";
|
|
2404
|
+
readonly target: "department";
|
|
2405
|
+
readonly policy: "always";
|
|
2406
|
+
readonly conditional: true;
|
|
2407
|
+
readonly note: string;
|
|
2408
|
+
};
|
|
2409
|
+
readonly imageAlt: {
|
|
2410
|
+
readonly after: "custitemaltimgtext";
|
|
2411
|
+
readonly target: "images.alt";
|
|
2412
|
+
readonly policy: "always";
|
|
2413
|
+
readonly conditional: true;
|
|
2414
|
+
readonly note: string;
|
|
2415
|
+
};
|
|
2416
|
+
readonly family: {
|
|
2417
|
+
readonly after: "custitem_family";
|
|
2418
|
+
readonly target: "metaData.family";
|
|
2419
|
+
readonly policy: "seed";
|
|
2420
|
+
readonly pending: true;
|
|
2421
|
+
readonly note: "Populated on 17,552 items. No storefront field consumes it yet.";
|
|
2422
|
+
};
|
|
2423
|
+
readonly primaryCategory: {
|
|
2424
|
+
readonly before: "commercecategoryitemassociation.primarycategory";
|
|
2425
|
+
readonly after: "custitem_primary_category";
|
|
2426
|
+
readonly target: "metaData.primaryCategory";
|
|
2427
|
+
readonly policy: "seed";
|
|
2428
|
+
readonly note: string;
|
|
2429
|
+
};
|
|
2430
|
+
readonly additionalCategories: {
|
|
2431
|
+
readonly sourceTable: "commercecategoryitemassociation";
|
|
2432
|
+
readonly after: "custitem_additional_categories";
|
|
2433
|
+
readonly target: "categories";
|
|
2434
|
+
readonly policy: "always";
|
|
2435
|
+
readonly note: string;
|
|
2436
|
+
readonly caution: string;
|
|
2437
|
+
};
|
|
2438
|
+
readonly micrositeDescription: {
|
|
2439
|
+
readonly after: "custitem_microsite_description";
|
|
2440
|
+
readonly target: "metaData.micrositeDescription";
|
|
2441
|
+
readonly policy: "seed";
|
|
2442
|
+
readonly pending: true;
|
|
2443
|
+
readonly note: "Populated on 2,284 items.";
|
|
2444
|
+
};
|
|
2445
|
+
readonly features: {
|
|
2446
|
+
readonly after: "custitem_features";
|
|
2447
|
+
readonly target: "metaData.features";
|
|
2448
|
+
readonly policy: "seed";
|
|
2449
|
+
readonly pending: true;
|
|
2450
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
2451
|
+
};
|
|
2452
|
+
readonly childStoreOnly: {
|
|
2453
|
+
readonly after: "custitem_child_store_only";
|
|
2454
|
+
readonly target: "childOnly";
|
|
2455
|
+
readonly policy: "seed";
|
|
2456
|
+
readonly pending: true;
|
|
2457
|
+
readonly note: "Nothing is flagged yet. Our stores[] array already covers this.";
|
|
2458
|
+
};
|
|
2459
|
+
}>;
|
|
2460
|
+
declare const addonFields: NetsuiteFieldProvider<{
|
|
2461
|
+
readonly netsuiteItemId: {
|
|
2462
|
+
readonly before: "item.id";
|
|
2463
|
+
readonly target: "netsuite.itemId";
|
|
2464
|
+
readonly policy: "always";
|
|
2465
|
+
readonly conditional: true;
|
|
2466
|
+
readonly note: string;
|
|
2467
|
+
};
|
|
2468
|
+
readonly netsuiteItemName: {
|
|
2469
|
+
readonly before: "item.itemid";
|
|
2470
|
+
readonly target: "netsuite.itemName";
|
|
2471
|
+
readonly policy: "always";
|
|
2472
|
+
readonly conditional: true;
|
|
2473
|
+
readonly note: "A native NetSuite item field, not a SuiteCommerce one, so it survives the cutover.";
|
|
2474
|
+
};
|
|
2475
|
+
readonly groupAndOption: {
|
|
2476
|
+
readonly before: "storedisplayname";
|
|
2477
|
+
readonly target: "name";
|
|
2478
|
+
readonly policy: "always";
|
|
2479
|
+
readonly conditional: true;
|
|
2480
|
+
readonly identity: true;
|
|
2481
|
+
readonly note: string;
|
|
2482
|
+
};
|
|
2483
|
+
readonly key: {
|
|
2484
|
+
readonly before: "urlcomponent";
|
|
2485
|
+
readonly target: "key";
|
|
2486
|
+
readonly policy: "always";
|
|
2487
|
+
readonly identity: true;
|
|
2488
|
+
readonly note: string;
|
|
2489
|
+
readonly caution: "Changing urlcomponent in NetSuite orphans the existing add-on and creates a new one.";
|
|
2490
|
+
};
|
|
2491
|
+
readonly active: {
|
|
2492
|
+
readonly before: "isinactive";
|
|
2493
|
+
readonly target: "status";
|
|
2494
|
+
readonly policy: "always";
|
|
2495
|
+
readonly conditional: true;
|
|
2496
|
+
readonly note: string;
|
|
2497
|
+
};
|
|
2498
|
+
readonly visible: {
|
|
2499
|
+
readonly before: "isonline";
|
|
2500
|
+
readonly target: "isVisible";
|
|
2501
|
+
readonly policy: "always";
|
|
2502
|
+
readonly conditional: true;
|
|
2503
|
+
readonly note: string;
|
|
2504
|
+
};
|
|
2505
|
+
readonly pricingType: {
|
|
2506
|
+
readonly target: "pricingType";
|
|
2507
|
+
readonly policy: "seed";
|
|
2508
|
+
readonly note: string;
|
|
2509
|
+
};
|
|
2510
|
+
readonly price: {
|
|
2511
|
+
readonly before: "itemprice at price level 1";
|
|
2512
|
+
readonly target: "price";
|
|
2513
|
+
readonly policy: "always";
|
|
2514
|
+
readonly conditional: true;
|
|
2515
|
+
readonly note: "Base price. An option with no level-1 price is reported by the sync rather than written as $0.";
|
|
2516
|
+
};
|
|
2517
|
+
readonly sellingPoints: {
|
|
2518
|
+
readonly before: "salesdescription";
|
|
2519
|
+
readonly target: "description";
|
|
2520
|
+
readonly policy: "always";
|
|
2521
|
+
readonly conditional: true;
|
|
2522
|
+
readonly note: string;
|
|
2523
|
+
};
|
|
2524
|
+
readonly detail: {
|
|
2525
|
+
readonly before: "storedetaileddescription";
|
|
2526
|
+
readonly target: "longDescription";
|
|
2527
|
+
readonly policy: "always";
|
|
2528
|
+
readonly conditional: true;
|
|
2529
|
+
readonly note: string;
|
|
2530
|
+
};
|
|
2531
|
+
readonly priceBand: {
|
|
2532
|
+
readonly before: "featureddescription";
|
|
2533
|
+
readonly target: "appliesFromPrice / appliesToPrice";
|
|
2534
|
+
readonly policy: "always";
|
|
2535
|
+
readonly conditional: true;
|
|
2536
|
+
readonly note: string;
|
|
2537
|
+
};
|
|
2538
|
+
readonly eligibilityGate: {
|
|
2539
|
+
readonly before: "custitem520";
|
|
2540
|
+
readonly target: "AddonGroup.netsuite.requiresField";
|
|
2541
|
+
readonly policy: "seed";
|
|
2542
|
+
readonly note: string;
|
|
2543
|
+
};
|
|
2544
|
+
}>;
|
|
2545
|
+
declare const brandFields: NetsuiteFieldProvider<{
|
|
2546
|
+
readonly name: {
|
|
2547
|
+
readonly before: "commercecategory.name";
|
|
2548
|
+
readonly after: "item.manufacturer";
|
|
2549
|
+
readonly target: "name";
|
|
2550
|
+
readonly policy: "always";
|
|
2551
|
+
};
|
|
2552
|
+
readonly online: {
|
|
2553
|
+
readonly before: "isonline";
|
|
2554
|
+
readonly after: "custitem_display_online";
|
|
2555
|
+
readonly target: "isOnline";
|
|
2556
|
+
readonly policy: "always";
|
|
2557
|
+
};
|
|
2558
|
+
readonly netsuiteId: {
|
|
2559
|
+
readonly before: "commercecategory.id";
|
|
2560
|
+
readonly target: "netsuiteId";
|
|
2561
|
+
readonly policy: "always";
|
|
2562
|
+
readonly conditional: true;
|
|
2563
|
+
readonly note: "No successor. The manufacturer name becomes the key.";
|
|
2564
|
+
};
|
|
2565
|
+
readonly slug: {
|
|
2566
|
+
readonly before: "commercecategory.urlfragment";
|
|
2567
|
+
readonly target: "slug";
|
|
2568
|
+
readonly policy: "seed";
|
|
2569
|
+
readonly identity: true;
|
|
2570
|
+
readonly note: string;
|
|
2571
|
+
readonly caution: string;
|
|
2572
|
+
};
|
|
2573
|
+
readonly logo: {
|
|
2574
|
+
readonly before: "thumbnail";
|
|
2575
|
+
readonly target: "logo";
|
|
2576
|
+
readonly policy: "always";
|
|
2577
|
+
readonly conditional: true;
|
|
2578
|
+
readonly note: "No successor. custrecord35 holds the same logo as a plain URL on all 52 brands.";
|
|
2579
|
+
};
|
|
2580
|
+
readonly description: {
|
|
2581
|
+
readonly before: "commercecategory.description";
|
|
2582
|
+
readonly target: "description";
|
|
2583
|
+
readonly policy: "always";
|
|
2584
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2585
|
+
};
|
|
2586
|
+
readonly sortOrder: {
|
|
2587
|
+
readonly before: "sequencenumber";
|
|
2588
|
+
readonly target: "sortOrder";
|
|
2589
|
+
readonly policy: "always";
|
|
2590
|
+
readonly conditional: true;
|
|
2591
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2592
|
+
};
|
|
2593
|
+
readonly seoTitle: {
|
|
2594
|
+
readonly before: "pagetitle";
|
|
2595
|
+
readonly target: "seoMetaData.title";
|
|
2596
|
+
readonly policy: "always";
|
|
2597
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2598
|
+
};
|
|
2599
|
+
readonly seoDescription: {
|
|
2600
|
+
readonly before: "metadescription";
|
|
2601
|
+
readonly target: "seoMetaData.description";
|
|
2602
|
+
readonly policy: "always";
|
|
2603
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2604
|
+
};
|
|
2605
|
+
readonly seoKeywords: {
|
|
2606
|
+
readonly before: "metakeywords";
|
|
2607
|
+
readonly target: "seoMetaData.keywords";
|
|
2608
|
+
readonly policy: "always";
|
|
2609
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2610
|
+
};
|
|
2611
|
+
readonly status: {
|
|
2612
|
+
readonly before: "isinactive + displayinsite";
|
|
2613
|
+
readonly target: "status";
|
|
2614
|
+
readonly policy: "always";
|
|
2615
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2616
|
+
};
|
|
2617
|
+
readonly headerTag: {
|
|
2618
|
+
readonly before: "pageheading";
|
|
2619
|
+
readonly target: "seoMetaData.headerTag";
|
|
2620
|
+
readonly policy: "always";
|
|
2621
|
+
readonly note: string;
|
|
2622
|
+
};
|
|
2623
|
+
readonly banners: {
|
|
2624
|
+
readonly before: "pagebanner";
|
|
2625
|
+
readonly target: "banners";
|
|
2626
|
+
readonly policy: "seed";
|
|
2627
|
+
readonly note: string;
|
|
2628
|
+
};
|
|
2629
|
+
readonly logoUrl: {
|
|
2630
|
+
readonly before: "custrecord35";
|
|
2631
|
+
readonly target: "logo";
|
|
2632
|
+
readonly policy: "seed";
|
|
2633
|
+
readonly pending: true;
|
|
2634
|
+
readonly note: "A plain logo URL on all 52 brands, needing no file lookup. Never imported.";
|
|
2635
|
+
};
|
|
2636
|
+
}>;
|
|
2637
|
+
declare const categoryFields: NetsuiteFieldProvider<{
|
|
2638
|
+
readonly name: {
|
|
2639
|
+
readonly before: "commercecategory.name";
|
|
2640
|
+
readonly after: "custitem_category";
|
|
2641
|
+
readonly target: "name";
|
|
2642
|
+
readonly policy: "always";
|
|
2643
|
+
readonly note: "After is a flat string stamped on the item, not a record.";
|
|
2644
|
+
};
|
|
2645
|
+
readonly online: {
|
|
2646
|
+
readonly before: "isonline";
|
|
2647
|
+
readonly after: "custitem_display_online";
|
|
2648
|
+
readonly target: "isOnline";
|
|
2649
|
+
readonly policy: "always";
|
|
2650
|
+
};
|
|
2651
|
+
readonly netsuiteId: {
|
|
2652
|
+
readonly before: "commercecategory.id";
|
|
2653
|
+
readonly target: "netsuiteId";
|
|
2654
|
+
readonly policy: "always";
|
|
2655
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2656
|
+
};
|
|
2657
|
+
readonly slug: {
|
|
2658
|
+
readonly before: "urlfragment";
|
|
2659
|
+
readonly target: "slug";
|
|
2660
|
+
readonly policy: "seed";
|
|
2661
|
+
readonly identity: true;
|
|
2662
|
+
readonly note: string;
|
|
2663
|
+
readonly caution: string;
|
|
2664
|
+
};
|
|
2665
|
+
readonly image: {
|
|
2666
|
+
readonly before: "thumbnail";
|
|
2667
|
+
readonly target: "image";
|
|
2668
|
+
readonly policy: "always";
|
|
2669
|
+
readonly note: "No successor. custrecord35 holds 3,735 of these as plain URLs.";
|
|
2670
|
+
};
|
|
2671
|
+
readonly description: {
|
|
2672
|
+
readonly before: "commercecategory.description";
|
|
2673
|
+
readonly target: "description";
|
|
2674
|
+
readonly policy: "always";
|
|
2675
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2676
|
+
};
|
|
2677
|
+
readonly sortOrder: {
|
|
2678
|
+
readonly before: "sequencenumber";
|
|
2679
|
+
readonly target: "sortOrder";
|
|
2680
|
+
readonly policy: "always";
|
|
2681
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2682
|
+
};
|
|
2683
|
+
readonly seoTitle: {
|
|
2684
|
+
readonly before: "pagetitle";
|
|
2685
|
+
readonly target: "seoMetaData.title";
|
|
2686
|
+
readonly policy: "always";
|
|
2687
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2688
|
+
};
|
|
2689
|
+
readonly seoDescription: {
|
|
2690
|
+
readonly before: "metadescription";
|
|
2691
|
+
readonly target: "seoMetaData.description";
|
|
2692
|
+
readonly policy: "always";
|
|
2693
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2694
|
+
};
|
|
2695
|
+
readonly seoKeywords: {
|
|
2696
|
+
readonly before: "metakeywords";
|
|
2697
|
+
readonly target: "seoMetaData.keywords";
|
|
2698
|
+
readonly policy: "always";
|
|
2699
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2700
|
+
};
|
|
2701
|
+
readonly status: {
|
|
2702
|
+
readonly before: "isinactive + displayinsite";
|
|
2703
|
+
readonly target: "status";
|
|
2704
|
+
readonly policy: "always";
|
|
2705
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
2706
|
+
};
|
|
2707
|
+
readonly parent: {
|
|
2708
|
+
readonly before: "primaryparent";
|
|
2709
|
+
readonly after: "custitem_primary_category";
|
|
2710
|
+
readonly target: "parent";
|
|
2711
|
+
readonly policy: "always";
|
|
2712
|
+
readonly note: "The single primary parent. Mirrors NetSuite on every sync, so a parent changed here is overwritten. After is populated on only 3,150 items.";
|
|
2713
|
+
};
|
|
2714
|
+
readonly subcategories: {
|
|
2715
|
+
readonly before: "commercecategoryassociation.subcategory";
|
|
2716
|
+
readonly target: "subcategories";
|
|
2717
|
+
readonly policy: "always";
|
|
2718
|
+
readonly note: "The children list, rebuilt from the association table on every sync — NetSuite categories are multi-parent, so 23% of them sit under more than one. `primaryparent` alone misses those. Edits here are overwritten.";
|
|
2719
|
+
readonly caution: "The association row also carries nameoverride / urlfragmentoverride / thumbnailoverride per parent, so the same category is labelled differently under each. Those overrides are applied for the primary parent only.";
|
|
2720
|
+
};
|
|
2721
|
+
readonly headerTag: {
|
|
2722
|
+
readonly before: "pageheading";
|
|
2723
|
+
readonly target: "seoMetaData.headerTag";
|
|
2724
|
+
readonly policy: "always";
|
|
2725
|
+
readonly note: "The H1, on 4,789 categories. addtohead is head markup and is not a substitute.";
|
|
2726
|
+
};
|
|
2727
|
+
readonly banners: {
|
|
2728
|
+
readonly before: "pagebanner";
|
|
2729
|
+
readonly target: "banners";
|
|
2730
|
+
readonly policy: "seed";
|
|
2731
|
+
readonly note: "Seeded from pagebanner on first import; 50 categories carry one. Edits here are never overwritten.";
|
|
2732
|
+
};
|
|
2733
|
+
readonly imageUrl: {
|
|
2734
|
+
readonly before: "custrecord35";
|
|
2735
|
+
readonly target: "image";
|
|
2736
|
+
readonly policy: "seed";
|
|
2737
|
+
readonly pending: true;
|
|
2738
|
+
readonly note: "A plain image URL on 3,735 categories, needing no file lookup. Never imported.";
|
|
2739
|
+
};
|
|
2740
|
+
readonly faq: {
|
|
2741
|
+
readonly before: "custrecord_faq_q1";
|
|
2742
|
+
readonly target: "metaData.faq";
|
|
2743
|
+
readonly policy: "seed";
|
|
2744
|
+
readonly pending: true;
|
|
2745
|
+
readonly note: "Ten question and answer pairs on 34 categories. Editorial copy held nowhere else.";
|
|
2746
|
+
};
|
|
2747
|
+
}>;
|
|
2748
|
+
declare const couponFields: NetsuiteFieldProvider<{
|
|
2749
|
+
promotionId: {
|
|
2750
|
+
before: string;
|
|
2751
|
+
target: string;
|
|
2752
|
+
policy: "always";
|
|
2753
|
+
conditional: true;
|
|
2754
|
+
note: string;
|
|
2755
|
+
};
|
|
2756
|
+
title: {
|
|
2757
|
+
before: string;
|
|
2758
|
+
target: string;
|
|
2759
|
+
policy: "always";
|
|
2760
|
+
conditional: true;
|
|
2761
|
+
note: string;
|
|
2762
|
+
};
|
|
2763
|
+
promotionName: {
|
|
2764
|
+
before: string;
|
|
2765
|
+
target: string;
|
|
2766
|
+
policy: "always";
|
|
2767
|
+
conditional: true;
|
|
2768
|
+
note: string;
|
|
2769
|
+
};
|
|
2770
|
+
couponCode: {
|
|
2771
|
+
before: string;
|
|
2772
|
+
target: string;
|
|
2773
|
+
policy: "always";
|
|
2774
|
+
identity: true;
|
|
2775
|
+
note: string;
|
|
2776
|
+
caution: string;
|
|
2777
|
+
};
|
|
2778
|
+
discountType: {
|
|
2779
|
+
before: string;
|
|
2780
|
+
target: string;
|
|
2781
|
+
policy: "always";
|
|
2782
|
+
conditional: true;
|
|
2783
|
+
note: string;
|
|
2784
|
+
};
|
|
2785
|
+
discountValue: {
|
|
2786
|
+
before: string;
|
|
2787
|
+
target: string;
|
|
2788
|
+
policy: "always";
|
|
2789
|
+
conditional: true;
|
|
2790
|
+
note: string;
|
|
2791
|
+
};
|
|
2792
|
+
startTime: {
|
|
2793
|
+
before: string;
|
|
2794
|
+
target: string;
|
|
2795
|
+
policy: "always";
|
|
2796
|
+
conditional: true;
|
|
2797
|
+
note: string;
|
|
2798
|
+
};
|
|
2799
|
+
endTime: {
|
|
2800
|
+
before: string;
|
|
2801
|
+
target: string;
|
|
2802
|
+
policy: "always";
|
|
2803
|
+
conditional: true;
|
|
2804
|
+
note: string;
|
|
2805
|
+
};
|
|
2806
|
+
status: {
|
|
2807
|
+
before: string;
|
|
2808
|
+
target: string;
|
|
2809
|
+
policy: "always";
|
|
2810
|
+
conditional: true;
|
|
2811
|
+
note: string;
|
|
2812
|
+
};
|
|
2813
|
+
discountItemId: {
|
|
2814
|
+
before: string;
|
|
2815
|
+
target: string;
|
|
2816
|
+
policy: "always";
|
|
2817
|
+
conditional: true;
|
|
2818
|
+
note: string;
|
|
2819
|
+
};
|
|
2820
|
+
discountItemName: {
|
|
2821
|
+
before: string;
|
|
2822
|
+
target: string;
|
|
2823
|
+
policy: "always";
|
|
2824
|
+
conditional: true;
|
|
2825
|
+
note: string;
|
|
2826
|
+
};
|
|
2827
|
+
discountReducesTax: {
|
|
2828
|
+
before: string;
|
|
2829
|
+
target: string;
|
|
2830
|
+
policy: "always";
|
|
2831
|
+
conditional: true;
|
|
2832
|
+
note: string;
|
|
2833
|
+
};
|
|
2834
|
+
applyDiscountTo: {
|
|
2835
|
+
before: string;
|
|
2836
|
+
target: string;
|
|
2837
|
+
policy: "always";
|
|
2838
|
+
conditional: true;
|
|
2839
|
+
note: string;
|
|
2840
|
+
};
|
|
2841
|
+
freeShipping: {
|
|
2842
|
+
before: string;
|
|
2843
|
+
target: string;
|
|
2844
|
+
policy: "always";
|
|
2845
|
+
conditional: true;
|
|
2846
|
+
note: string;
|
|
2847
|
+
};
|
|
2848
|
+
description: {
|
|
2849
|
+
before: string;
|
|
2850
|
+
target: string;
|
|
2851
|
+
policy: "always";
|
|
2852
|
+
conditional: true;
|
|
2853
|
+
note: string;
|
|
2854
|
+
};
|
|
2855
|
+
isPromotional: {
|
|
2856
|
+
before: string;
|
|
2857
|
+
target: string;
|
|
2858
|
+
policy: "always";
|
|
2859
|
+
conditional: true;
|
|
2860
|
+
note: string;
|
|
2861
|
+
};
|
|
2862
|
+
singleUse: {
|
|
2863
|
+
before: string;
|
|
2864
|
+
target: string;
|
|
2865
|
+
policy: "always";
|
|
2866
|
+
conditional: true;
|
|
2867
|
+
note: string;
|
|
2868
|
+
};
|
|
2869
|
+
itemRestrictions: {
|
|
2870
|
+
before: string;
|
|
2871
|
+
target: string;
|
|
2872
|
+
policy: "always";
|
|
2873
|
+
conditional: true;
|
|
2874
|
+
note: string;
|
|
2875
|
+
};
|
|
2876
|
+
minimumAmount: {
|
|
2877
|
+
before: string;
|
|
2878
|
+
target: string;
|
|
2879
|
+
policy: "always";
|
|
2880
|
+
conditional: true;
|
|
2881
|
+
note: string;
|
|
2882
|
+
};
|
|
2883
|
+
stores: {
|
|
2884
|
+
target: string;
|
|
2885
|
+
policy: "seed";
|
|
2886
|
+
note: string;
|
|
2887
|
+
};
|
|
2888
|
+
}>;
|
|
2889
|
+
declare const podcastFields: NetsuiteFieldProvider<{
|
|
2890
|
+
guid: {
|
|
2891
|
+
before: string;
|
|
2892
|
+
target: string;
|
|
2893
|
+
policy: "always";
|
|
2894
|
+
conditional: true;
|
|
2895
|
+
note: string;
|
|
2896
|
+
};
|
|
2897
|
+
title: {
|
|
2898
|
+
before: string;
|
|
2899
|
+
target: string;
|
|
2900
|
+
policy: "always";
|
|
2901
|
+
conditional: true;
|
|
2902
|
+
note: string;
|
|
2903
|
+
};
|
|
2904
|
+
slug: {
|
|
2905
|
+
target: string;
|
|
2906
|
+
policy: "seed";
|
|
2907
|
+
identity: true;
|
|
2908
|
+
note: string;
|
|
2909
|
+
caution: string;
|
|
2910
|
+
};
|
|
2911
|
+
summary: {
|
|
2912
|
+
before: string;
|
|
2913
|
+
target: string;
|
|
2914
|
+
policy: "always";
|
|
2915
|
+
conditional: true;
|
|
2916
|
+
note: string;
|
|
2917
|
+
};
|
|
2918
|
+
showNotes: {
|
|
2919
|
+
before: string;
|
|
2920
|
+
target: string;
|
|
2921
|
+
policy: "always";
|
|
2922
|
+
conditional: true;
|
|
2923
|
+
note: string;
|
|
2924
|
+
};
|
|
2925
|
+
audioUrl: {
|
|
2926
|
+
before: string;
|
|
2927
|
+
target: string;
|
|
2928
|
+
policy: "always";
|
|
2929
|
+
conditional: true;
|
|
2930
|
+
note: string;
|
|
2931
|
+
};
|
|
2932
|
+
artwork: {
|
|
2933
|
+
before: string;
|
|
2934
|
+
target: string;
|
|
2935
|
+
policy: "always";
|
|
2936
|
+
conditional: true;
|
|
2937
|
+
note: string;
|
|
2938
|
+
};
|
|
2939
|
+
durationSeconds: {
|
|
2940
|
+
before: string;
|
|
2941
|
+
target: string;
|
|
2942
|
+
policy: "always";
|
|
2943
|
+
conditional: true;
|
|
2944
|
+
note: string;
|
|
2945
|
+
};
|
|
2946
|
+
episodeNumber: {
|
|
2947
|
+
before: string;
|
|
2948
|
+
target: string;
|
|
2949
|
+
policy: "always";
|
|
2950
|
+
conditional: true;
|
|
2951
|
+
note: string;
|
|
2952
|
+
};
|
|
2953
|
+
seasonNumber: {
|
|
2954
|
+
before: string;
|
|
2955
|
+
target: string;
|
|
2956
|
+
policy: "always";
|
|
2957
|
+
conditional: true;
|
|
2958
|
+
note: string;
|
|
2959
|
+
};
|
|
2960
|
+
publishedAt: {
|
|
2961
|
+
before: string;
|
|
2962
|
+
target: string;
|
|
2963
|
+
policy: "always";
|
|
2964
|
+
conditional: true;
|
|
2965
|
+
note: string;
|
|
2966
|
+
};
|
|
2967
|
+
externalUrl: {
|
|
2968
|
+
before: string;
|
|
2969
|
+
target: string;
|
|
2970
|
+
policy: "always";
|
|
2971
|
+
conditional: true;
|
|
2972
|
+
note: string;
|
|
2973
|
+
};
|
|
2974
|
+
seoTitle: {
|
|
2975
|
+
before: string;
|
|
2976
|
+
target: string;
|
|
2977
|
+
policy: "always";
|
|
2978
|
+
conditional: true;
|
|
2979
|
+
note: string;
|
|
2980
|
+
};
|
|
2981
|
+
seoDescription: {
|
|
2982
|
+
before: string;
|
|
2983
|
+
target: string;
|
|
2984
|
+
policy: "always";
|
|
2985
|
+
conditional: true;
|
|
2986
|
+
note: string;
|
|
2987
|
+
};
|
|
2988
|
+
transcript: {
|
|
2989
|
+
target: string;
|
|
2990
|
+
policy: "seed";
|
|
2991
|
+
note: string;
|
|
2992
|
+
};
|
|
2993
|
+
relatedProducts: {
|
|
2994
|
+
target: string;
|
|
2995
|
+
policy: "seed";
|
|
2996
|
+
note: string;
|
|
2997
|
+
};
|
|
2998
|
+
stores: {
|
|
2999
|
+
target: string;
|
|
3000
|
+
policy: "seed";
|
|
3001
|
+
note: string;
|
|
3002
|
+
};
|
|
3003
|
+
status: {
|
|
3004
|
+
target: string;
|
|
3005
|
+
policy: "seed";
|
|
3006
|
+
note: string;
|
|
3007
|
+
};
|
|
3008
|
+
isOnline: {
|
|
3009
|
+
target: string;
|
|
3010
|
+
policy: "seed";
|
|
3011
|
+
note: string;
|
|
3012
|
+
};
|
|
3013
|
+
}>;
|
|
3014
|
+
declare const blogPostFields: NetsuiteFieldProvider<{
|
|
3015
|
+
netsuiteId: {
|
|
3016
|
+
before: string;
|
|
3017
|
+
target: string;
|
|
3018
|
+
policy: "always";
|
|
3019
|
+
conditional: true;
|
|
3020
|
+
note: string;
|
|
3021
|
+
};
|
|
3022
|
+
netsuitePostId: {
|
|
3023
|
+
before: string;
|
|
3024
|
+
target: string;
|
|
3025
|
+
policy: "always";
|
|
3026
|
+
conditional: true;
|
|
3027
|
+
note: string;
|
|
3028
|
+
};
|
|
3029
|
+
title: {
|
|
3030
|
+
before: string;
|
|
3031
|
+
target: string;
|
|
3032
|
+
policy: "always";
|
|
3033
|
+
conditional: true;
|
|
3034
|
+
note: string;
|
|
3035
|
+
};
|
|
3036
|
+
slug: {
|
|
3037
|
+
before: string;
|
|
3038
|
+
target: string;
|
|
3039
|
+
policy: "always";
|
|
3040
|
+
conditional: true;
|
|
3041
|
+
note: string;
|
|
3042
|
+
caution: string;
|
|
3043
|
+
};
|
|
3044
|
+
subtitle: {
|
|
3045
|
+
before: string;
|
|
3046
|
+
target: string;
|
|
3047
|
+
policy: "always";
|
|
3048
|
+
conditional: true;
|
|
3049
|
+
note: string;
|
|
3050
|
+
};
|
|
3051
|
+
content: {
|
|
3052
|
+
before: string;
|
|
3053
|
+
target: string;
|
|
3054
|
+
policy: "always";
|
|
3055
|
+
conditional: true;
|
|
3056
|
+
note: string;
|
|
3057
|
+
};
|
|
3058
|
+
publishedAt: {
|
|
3059
|
+
before: string;
|
|
3060
|
+
target: string;
|
|
3061
|
+
policy: "always";
|
|
3062
|
+
conditional: true;
|
|
3063
|
+
note: string;
|
|
3064
|
+
};
|
|
3065
|
+
author: {
|
|
3066
|
+
before: string;
|
|
3067
|
+
target: string;
|
|
3068
|
+
policy: "always";
|
|
3069
|
+
conditional: true;
|
|
3070
|
+
note: string;
|
|
3071
|
+
};
|
|
3072
|
+
category: {
|
|
3073
|
+
before: string;
|
|
3074
|
+
target: string;
|
|
3075
|
+
policy: "always";
|
|
3076
|
+
conditional: true;
|
|
3077
|
+
note: string;
|
|
3078
|
+
};
|
|
3079
|
+
headerImage: {
|
|
3080
|
+
before: string;
|
|
3081
|
+
target: string;
|
|
3082
|
+
policy: "always";
|
|
3083
|
+
conditional: true;
|
|
3084
|
+
note: string;
|
|
3085
|
+
};
|
|
3086
|
+
headerImageAlt: {
|
|
3087
|
+
before: string;
|
|
3088
|
+
target: string;
|
|
3089
|
+
policy: "always";
|
|
3090
|
+
conditional: true;
|
|
3091
|
+
note: string;
|
|
3092
|
+
};
|
|
3093
|
+
thumbnail: {
|
|
3094
|
+
before: string;
|
|
3095
|
+
target: string;
|
|
3096
|
+
policy: "always";
|
|
3097
|
+
conditional: true;
|
|
3098
|
+
note: string;
|
|
3099
|
+
};
|
|
3100
|
+
thumbnailAlt: {
|
|
3101
|
+
before: string;
|
|
3102
|
+
target: string;
|
|
3103
|
+
policy: "always";
|
|
3104
|
+
conditional: true;
|
|
3105
|
+
note: string;
|
|
3106
|
+
};
|
|
3107
|
+
excerpt: {
|
|
3108
|
+
before: string;
|
|
3109
|
+
target: string;
|
|
3110
|
+
policy: "always";
|
|
3111
|
+
conditional: true;
|
|
3112
|
+
note: string;
|
|
3113
|
+
};
|
|
3114
|
+
tags: {
|
|
3115
|
+
before: string;
|
|
3116
|
+
target: string;
|
|
3117
|
+
policy: "always";
|
|
3118
|
+
conditional: true;
|
|
3119
|
+
note: string;
|
|
3120
|
+
};
|
|
3121
|
+
pinnedTo: {
|
|
3122
|
+
before: string;
|
|
3123
|
+
target: string;
|
|
3124
|
+
policy: "always";
|
|
3125
|
+
conditional: true;
|
|
3126
|
+
note: string;
|
|
3127
|
+
};
|
|
3128
|
+
status: {
|
|
3129
|
+
before: string;
|
|
3130
|
+
target: string;
|
|
3131
|
+
policy: "always";
|
|
3132
|
+
conditional: true;
|
|
3133
|
+
note: string;
|
|
3134
|
+
};
|
|
3135
|
+
seoTitle: {
|
|
3136
|
+
before: string;
|
|
3137
|
+
target: string;
|
|
3138
|
+
policy: "always";
|
|
3139
|
+
conditional: true;
|
|
3140
|
+
note: string;
|
|
3141
|
+
};
|
|
3142
|
+
seoDescription: {
|
|
3143
|
+
before: string;
|
|
3144
|
+
target: string;
|
|
3145
|
+
policy: "always";
|
|
3146
|
+
conditional: true;
|
|
3147
|
+
note: string;
|
|
3148
|
+
};
|
|
3149
|
+
seoKeywords: {
|
|
3150
|
+
before: string;
|
|
3151
|
+
target: string;
|
|
3152
|
+
policy: "always";
|
|
3153
|
+
conditional: true;
|
|
3154
|
+
note: string;
|
|
3155
|
+
};
|
|
3156
|
+
headerTag: {
|
|
3157
|
+
before: string;
|
|
3158
|
+
target: string;
|
|
3159
|
+
policy: "always";
|
|
3160
|
+
conditional: true;
|
|
3161
|
+
note: string;
|
|
3162
|
+
};
|
|
3163
|
+
readingMinutes: {
|
|
3164
|
+
target: string;
|
|
3165
|
+
policy: "seed";
|
|
3166
|
+
note: string;
|
|
3167
|
+
};
|
|
3168
|
+
relatedProducts: {
|
|
3169
|
+
target: string;
|
|
3170
|
+
policy: "seed";
|
|
3171
|
+
note: string;
|
|
3172
|
+
};
|
|
3173
|
+
stores: {
|
|
3174
|
+
target: string;
|
|
3175
|
+
policy: "seed";
|
|
3176
|
+
note: string;
|
|
3177
|
+
};
|
|
3178
|
+
}>;
|
|
3179
|
+
declare const blogAuthorFields: NetsuiteFieldProvider<{
|
|
3180
|
+
netsuiteId: {
|
|
3181
|
+
before: string;
|
|
3182
|
+
target: string;
|
|
3183
|
+
policy: "always";
|
|
3184
|
+
conditional: true;
|
|
3185
|
+
note: string;
|
|
3186
|
+
};
|
|
3187
|
+
name: {
|
|
3188
|
+
before: string;
|
|
3189
|
+
target: string;
|
|
3190
|
+
policy: "always";
|
|
3191
|
+
conditional: true;
|
|
3192
|
+
note: string;
|
|
3193
|
+
};
|
|
3194
|
+
status: {
|
|
3195
|
+
before: string;
|
|
3196
|
+
target: string;
|
|
3197
|
+
policy: "always";
|
|
3198
|
+
conditional: true;
|
|
3199
|
+
note: string;
|
|
3200
|
+
};
|
|
3201
|
+
slug: {
|
|
3202
|
+
target: string;
|
|
3203
|
+
policy: "seed";
|
|
3204
|
+
identity: true;
|
|
3205
|
+
note: string;
|
|
3206
|
+
caution: string;
|
|
3207
|
+
};
|
|
3208
|
+
bio: {
|
|
3209
|
+
target: string;
|
|
3210
|
+
policy: "seed";
|
|
3211
|
+
note: string;
|
|
3212
|
+
};
|
|
3213
|
+
seoTitle: {
|
|
3214
|
+
target: string;
|
|
3215
|
+
policy: "seed";
|
|
3216
|
+
note: string;
|
|
3217
|
+
};
|
|
3218
|
+
seoDescription: {
|
|
3219
|
+
target: string;
|
|
3220
|
+
policy: "seed";
|
|
3221
|
+
note: string;
|
|
3222
|
+
};
|
|
3223
|
+
seoKeywords: {
|
|
3224
|
+
target: string;
|
|
3225
|
+
policy: "seed";
|
|
3226
|
+
note: string;
|
|
3227
|
+
};
|
|
3228
|
+
role: {
|
|
3229
|
+
target: string;
|
|
3230
|
+
policy: "seed";
|
|
3231
|
+
note: string;
|
|
3232
|
+
};
|
|
3233
|
+
avatar: {
|
|
3234
|
+
target: string;
|
|
3235
|
+
policy: "seed";
|
|
3236
|
+
note: string;
|
|
3237
|
+
};
|
|
3238
|
+
}>;
|
|
3239
|
+
declare const blogCategoryFields: NetsuiteFieldProvider<{
|
|
3240
|
+
netsuiteId: {
|
|
3241
|
+
before: string;
|
|
3242
|
+
target: string;
|
|
3243
|
+
policy: "always";
|
|
3244
|
+
conditional: true;
|
|
3245
|
+
note: string;
|
|
3246
|
+
};
|
|
3247
|
+
name: {
|
|
3248
|
+
before: string;
|
|
3249
|
+
target: string;
|
|
3250
|
+
policy: "always";
|
|
3251
|
+
conditional: true;
|
|
3252
|
+
note: string;
|
|
3253
|
+
};
|
|
3254
|
+
status: {
|
|
3255
|
+
before: string;
|
|
3256
|
+
target: string;
|
|
3257
|
+
policy: "always";
|
|
3258
|
+
conditional: true;
|
|
3259
|
+
note: string;
|
|
3260
|
+
};
|
|
3261
|
+
slug: {
|
|
3262
|
+
target: string;
|
|
3263
|
+
policy: "seed";
|
|
3264
|
+
identity: true;
|
|
3265
|
+
note: string;
|
|
3266
|
+
caution: string;
|
|
3267
|
+
};
|
|
3268
|
+
description: {
|
|
3269
|
+
target: string;
|
|
3270
|
+
policy: "seed";
|
|
3271
|
+
note: string;
|
|
3272
|
+
};
|
|
3273
|
+
seoTitle: {
|
|
3274
|
+
target: string;
|
|
3275
|
+
policy: "seed";
|
|
3276
|
+
note: string;
|
|
3277
|
+
};
|
|
3278
|
+
seoDescription: {
|
|
3279
|
+
target: string;
|
|
3280
|
+
policy: "seed";
|
|
3281
|
+
note: string;
|
|
3282
|
+
};
|
|
3283
|
+
seoKeywords: {
|
|
3284
|
+
target: string;
|
|
3285
|
+
policy: "seed";
|
|
3286
|
+
note: string;
|
|
3287
|
+
};
|
|
3288
|
+
image: {
|
|
3289
|
+
target: string;
|
|
3290
|
+
policy: "seed";
|
|
3291
|
+
note: string;
|
|
3292
|
+
};
|
|
3293
|
+
sortOrder: {
|
|
3294
|
+
target: string;
|
|
3295
|
+
policy: "seed";
|
|
3296
|
+
note: string;
|
|
3297
|
+
};
|
|
3298
|
+
}>;
|
|
3299
|
+
declare const PROVIDERS: readonly [NetsuiteFieldProvider<{
|
|
3300
|
+
readonly netsuiteId: {
|
|
3301
|
+
readonly before: "item.id";
|
|
3302
|
+
readonly target: "netsuiteId";
|
|
3303
|
+
readonly policy: "always";
|
|
3304
|
+
readonly conditional: true;
|
|
3305
|
+
readonly note: string;
|
|
3306
|
+
};
|
|
3307
|
+
readonly sku: {
|
|
3308
|
+
readonly before: "item.itemid";
|
|
3309
|
+
readonly target: "sku";
|
|
3310
|
+
readonly policy: "always";
|
|
3311
|
+
readonly conditional: true;
|
|
3312
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
3313
|
+
};
|
|
3314
|
+
readonly originalPrice: {
|
|
3315
|
+
readonly before: "itemprice at the Base Price level (1)";
|
|
3316
|
+
readonly target: "price.originalPrice";
|
|
3317
|
+
readonly policy: "always";
|
|
3318
|
+
readonly conditional: true;
|
|
3319
|
+
readonly note: string;
|
|
3320
|
+
};
|
|
3321
|
+
readonly discount: {
|
|
3322
|
+
readonly before: "derived from Base Price vs Online Price";
|
|
3323
|
+
readonly target: "price.discount";
|
|
3324
|
+
readonly policy: "always";
|
|
3325
|
+
readonly conditional: true;
|
|
3326
|
+
readonly note: string;
|
|
3327
|
+
};
|
|
3328
|
+
readonly weight: {
|
|
3329
|
+
readonly before: "weight + weightunit";
|
|
3330
|
+
readonly target: "shipping.weightLb";
|
|
3331
|
+
readonly policy: "always";
|
|
3332
|
+
readonly conditional: true;
|
|
3333
|
+
readonly note: "weight is on 299,354 items, weightunit on 107,131. Converted to lb and kg on import.";
|
|
3334
|
+
};
|
|
3335
|
+
readonly dimensions: {
|
|
3336
|
+
readonly target: "shipping.lengthIn";
|
|
3337
|
+
readonly policy: "seed";
|
|
3338
|
+
readonly note: string;
|
|
3339
|
+
};
|
|
3340
|
+
readonly price: {
|
|
3341
|
+
readonly before: "itemprice at the online price level";
|
|
3342
|
+
readonly target: "price";
|
|
3343
|
+
readonly policy: "always";
|
|
3344
|
+
readonly conditional: true;
|
|
3345
|
+
readonly note: string;
|
|
3346
|
+
};
|
|
3347
|
+
readonly quantity: {
|
|
3348
|
+
readonly before: "quantityavailable";
|
|
3349
|
+
readonly target: "quantity";
|
|
3350
|
+
readonly policy: "always";
|
|
3351
|
+
readonly conditional: true;
|
|
3352
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
3353
|
+
};
|
|
3354
|
+
readonly minimumQuantity: {
|
|
3355
|
+
readonly before: "minimumquantity";
|
|
3356
|
+
readonly target: "minimumQuantity";
|
|
3357
|
+
readonly policy: "always";
|
|
3358
|
+
readonly conditional: true;
|
|
3359
|
+
readonly note: string;
|
|
3360
|
+
};
|
|
3361
|
+
readonly maximumQuantity: {
|
|
3362
|
+
readonly before: "maximumquantity";
|
|
3363
|
+
readonly target: "maximumQuantity";
|
|
3364
|
+
readonly policy: "always";
|
|
3365
|
+
readonly conditional: true;
|
|
3366
|
+
readonly note: string;
|
|
3367
|
+
};
|
|
3368
|
+
readonly enforceMinimum: {
|
|
3369
|
+
readonly before: "enforceminqtyinternally";
|
|
3370
|
+
readonly target: "enforceMinimum";
|
|
3371
|
+
readonly policy: "always";
|
|
3372
|
+
readonly conditional: true;
|
|
3373
|
+
readonly note: string;
|
|
3374
|
+
};
|
|
3375
|
+
readonly isSparePart: {
|
|
3376
|
+
readonly before: "custitem303";
|
|
3377
|
+
readonly target: "isSparePart";
|
|
3378
|
+
readonly policy: "always";
|
|
3379
|
+
readonly conditional: true;
|
|
3380
|
+
readonly note: string;
|
|
3381
|
+
};
|
|
3382
|
+
readonly itemType: {
|
|
3383
|
+
readonly before: "itemtype";
|
|
3384
|
+
readonly target: "itemType";
|
|
3385
|
+
readonly policy: "always";
|
|
3386
|
+
readonly conditional: true;
|
|
3387
|
+
readonly note: string;
|
|
3388
|
+
};
|
|
3389
|
+
readonly stockDescription: {
|
|
3390
|
+
readonly before: "stockdescription";
|
|
3391
|
+
readonly target: "stockDescription";
|
|
3392
|
+
readonly policy: "always";
|
|
3393
|
+
readonly conditional: true;
|
|
3394
|
+
readonly note: string;
|
|
3395
|
+
};
|
|
3396
|
+
readonly noPriceMessage: {
|
|
3397
|
+
readonly before: "nopricemessage";
|
|
3398
|
+
readonly target: "noPriceMessage";
|
|
3399
|
+
readonly policy: "always";
|
|
3400
|
+
readonly conditional: true;
|
|
3401
|
+
readonly note: string;
|
|
3402
|
+
};
|
|
3403
|
+
readonly isSeriesComponent: {
|
|
3404
|
+
readonly before: "custitem40";
|
|
3405
|
+
readonly target: "isSeriesComponent";
|
|
3406
|
+
readonly policy: "always";
|
|
3407
|
+
readonly conditional: true;
|
|
3408
|
+
readonly note: string;
|
|
3409
|
+
};
|
|
3410
|
+
readonly flexWarrantyEligible: {
|
|
3411
|
+
readonly before: "custitem520";
|
|
3412
|
+
readonly target: "flexWarrantyEligible";
|
|
3413
|
+
readonly policy: "always";
|
|
3414
|
+
readonly conditional: true;
|
|
3415
|
+
readonly note: string;
|
|
3416
|
+
};
|
|
3417
|
+
readonly inventoryPolicy: {
|
|
3418
|
+
readonly before: "outofstockbehavior";
|
|
3419
|
+
readonly target: "inventoryPolicy";
|
|
3420
|
+
readonly policy: "always";
|
|
3421
|
+
readonly conditional: true;
|
|
3422
|
+
readonly note: string;
|
|
3423
|
+
};
|
|
3424
|
+
readonly status: {
|
|
3425
|
+
readonly before: "isinactive";
|
|
3426
|
+
readonly target: "status";
|
|
3427
|
+
readonly policy: "always";
|
|
3428
|
+
readonly conditional: true;
|
|
3429
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
3430
|
+
};
|
|
3431
|
+
readonly shipping: {
|
|
3432
|
+
readonly before: "weight + weightunit";
|
|
3433
|
+
readonly target: "shipping";
|
|
3434
|
+
readonly policy: "always";
|
|
3435
|
+
readonly conditional: true;
|
|
3436
|
+
readonly note: string;
|
|
3437
|
+
};
|
|
3438
|
+
readonly slug: {
|
|
3439
|
+
readonly before: "urlcomponent";
|
|
3440
|
+
readonly after: "custitem_slug";
|
|
3441
|
+
readonly target: "slug";
|
|
3442
|
+
readonly policy: "seed";
|
|
3443
|
+
readonly identity: true;
|
|
3444
|
+
readonly note: "The storefront URL never moves once a product exists.";
|
|
3445
|
+
readonly caution: "The sync matches on netsuiteId first and falls back to slug. Changing it on a product NetSuite has never supplied makes the next run miss it and insert a second one.";
|
|
3446
|
+
};
|
|
3447
|
+
readonly name: {
|
|
3448
|
+
readonly before: "storedisplayname";
|
|
3449
|
+
readonly after: "custitem_product_name";
|
|
3450
|
+
readonly target: "name";
|
|
3451
|
+
readonly policy: "always";
|
|
3452
|
+
readonly conditional: true;
|
|
3453
|
+
readonly note: string;
|
|
3454
|
+
};
|
|
3455
|
+
readonly featured: {
|
|
3456
|
+
readonly before: "featureddescription";
|
|
3457
|
+
readonly after: "custitem_product_featured_description";
|
|
3458
|
+
readonly target: "description";
|
|
3459
|
+
readonly policy: "always";
|
|
3460
|
+
readonly conditional: true;
|
|
3461
|
+
readonly note: string;
|
|
3462
|
+
};
|
|
3463
|
+
readonly overview: {
|
|
3464
|
+
readonly before: "storedetaileddescription";
|
|
3465
|
+
readonly after: "custitem_product_description";
|
|
3466
|
+
readonly target: "overview";
|
|
3467
|
+
readonly policy: "always";
|
|
3468
|
+
readonly conditional: true;
|
|
3469
|
+
};
|
|
3470
|
+
readonly pageTitle: {
|
|
3471
|
+
readonly before: "pagetitle";
|
|
3472
|
+
readonly after: "custitem_page_title";
|
|
3473
|
+
readonly target: "seoMetaData.title";
|
|
3474
|
+
readonly policy: "always";
|
|
3475
|
+
readonly conditional: true;
|
|
3476
|
+
};
|
|
3477
|
+
readonly online: {
|
|
3478
|
+
readonly before: "isonline";
|
|
3479
|
+
readonly after: "custitem_display_online";
|
|
3480
|
+
readonly target: "isOnline";
|
|
3481
|
+
readonly policy: "always";
|
|
3482
|
+
readonly conditional: true;
|
|
3483
|
+
readonly note: string;
|
|
3484
|
+
};
|
|
3485
|
+
readonly saleType: {
|
|
3486
|
+
readonly before: "dontshowprice";
|
|
3487
|
+
readonly after: "custitem_quote_only";
|
|
3488
|
+
readonly target: "saleType";
|
|
3489
|
+
readonly policy: "always";
|
|
3490
|
+
readonly conditional: true;
|
|
3491
|
+
readonly note: "Derived from the quote-only flag and the price by saleTypeOf, so it is recomputed on every refresh.";
|
|
3492
|
+
};
|
|
3493
|
+
readonly quoteOnly: {
|
|
3494
|
+
readonly before: "dontshowprice";
|
|
3495
|
+
readonly after: "custitem_quote_only";
|
|
3496
|
+
readonly target: "metaData.quoteOnly";
|
|
3497
|
+
readonly policy: "seed";
|
|
3498
|
+
readonly note: "Written only at creation, so a later flip in NetSuite is never picked up.";
|
|
3499
|
+
};
|
|
3500
|
+
readonly image: {
|
|
3501
|
+
readonly before: "storedisplayimage";
|
|
3502
|
+
readonly after: "custitem_itemimages";
|
|
3503
|
+
readonly target: "images";
|
|
3504
|
+
readonly policy: "always";
|
|
3505
|
+
readonly conditional: true;
|
|
3506
|
+
readonly note: "Before is a file id needing a lookup; after is a ready CDN URL.";
|
|
3507
|
+
};
|
|
3508
|
+
readonly category: {
|
|
3509
|
+
readonly before: "commercecategoryitemassociation.category";
|
|
3510
|
+
readonly after: "custitem_primary_category";
|
|
3511
|
+
readonly target: "category";
|
|
3512
|
+
readonly policy: "always";
|
|
3513
|
+
readonly conditional: true;
|
|
3514
|
+
readonly note: string;
|
|
3515
|
+
};
|
|
3516
|
+
readonly seoDescription: {
|
|
3517
|
+
readonly before: "metataghtml";
|
|
3518
|
+
readonly after: "custitem_meta_description";
|
|
3519
|
+
readonly target: "seoMetaData.description";
|
|
3520
|
+
readonly policy: "always";
|
|
3521
|
+
readonly conditional: true;
|
|
3522
|
+
readonly note: "The replacement exists but carries no data yet.";
|
|
3523
|
+
};
|
|
3524
|
+
readonly brand: {
|
|
3525
|
+
readonly before: "manufacturer";
|
|
3526
|
+
readonly target: "brand";
|
|
3527
|
+
readonly policy: "always";
|
|
3528
|
+
readonly conditional: true;
|
|
3529
|
+
readonly note: string;
|
|
3530
|
+
};
|
|
3531
|
+
readonly googleCategory: {
|
|
3532
|
+
readonly after: "custitemproducttype";
|
|
3533
|
+
readonly target: "googleCategory";
|
|
3534
|
+
readonly policy: "always";
|
|
3535
|
+
readonly conditional: true;
|
|
3536
|
+
readonly note: string;
|
|
3537
|
+
};
|
|
3538
|
+
readonly department: {
|
|
3539
|
+
readonly after: "custitemfas_product_category";
|
|
3540
|
+
readonly target: "department";
|
|
3541
|
+
readonly policy: "always";
|
|
3542
|
+
readonly conditional: true;
|
|
3543
|
+
readonly note: string;
|
|
3544
|
+
};
|
|
3545
|
+
readonly imageAlt: {
|
|
3546
|
+
readonly after: "custitemaltimgtext";
|
|
3547
|
+
readonly target: "images.alt";
|
|
3548
|
+
readonly policy: "always";
|
|
3549
|
+
readonly conditional: true;
|
|
3550
|
+
readonly note: string;
|
|
3551
|
+
};
|
|
3552
|
+
readonly family: {
|
|
3553
|
+
readonly after: "custitem_family";
|
|
3554
|
+
readonly target: "metaData.family";
|
|
3555
|
+
readonly policy: "seed";
|
|
3556
|
+
readonly pending: true;
|
|
3557
|
+
readonly note: "Populated on 17,552 items. No storefront field consumes it yet.";
|
|
3558
|
+
};
|
|
3559
|
+
readonly primaryCategory: {
|
|
3560
|
+
readonly before: "commercecategoryitemassociation.primarycategory";
|
|
3561
|
+
readonly after: "custitem_primary_category";
|
|
3562
|
+
readonly target: "metaData.primaryCategory";
|
|
3563
|
+
readonly policy: "seed";
|
|
3564
|
+
readonly note: string;
|
|
3565
|
+
};
|
|
3566
|
+
readonly additionalCategories: {
|
|
3567
|
+
readonly sourceTable: "commercecategoryitemassociation";
|
|
3568
|
+
readonly after: "custitem_additional_categories";
|
|
3569
|
+
readonly target: "categories";
|
|
3570
|
+
readonly policy: "always";
|
|
3571
|
+
readonly note: string;
|
|
3572
|
+
readonly caution: string;
|
|
3573
|
+
};
|
|
3574
|
+
readonly micrositeDescription: {
|
|
3575
|
+
readonly after: "custitem_microsite_description";
|
|
3576
|
+
readonly target: "metaData.micrositeDescription";
|
|
3577
|
+
readonly policy: "seed";
|
|
3578
|
+
readonly pending: true;
|
|
3579
|
+
readonly note: "Populated on 2,284 items.";
|
|
3580
|
+
};
|
|
3581
|
+
readonly features: {
|
|
3582
|
+
readonly after: "custitem_features";
|
|
3583
|
+
readonly target: "metaData.features";
|
|
3584
|
+
readonly policy: "seed";
|
|
3585
|
+
readonly pending: true;
|
|
3586
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
3587
|
+
};
|
|
3588
|
+
readonly childStoreOnly: {
|
|
3589
|
+
readonly after: "custitem_child_store_only";
|
|
3590
|
+
readonly target: "childOnly";
|
|
3591
|
+
readonly policy: "seed";
|
|
3592
|
+
readonly pending: true;
|
|
3593
|
+
readonly note: "Nothing is flagged yet. Our stores[] array already covers this.";
|
|
3594
|
+
};
|
|
3595
|
+
}>, NetsuiteFieldProvider<{
|
|
3596
|
+
readonly netsuiteItemId: {
|
|
3597
|
+
readonly before: "item.id";
|
|
3598
|
+
readonly target: "netsuite.itemId";
|
|
3599
|
+
readonly policy: "always";
|
|
3600
|
+
readonly conditional: true;
|
|
3601
|
+
readonly note: string;
|
|
3602
|
+
};
|
|
3603
|
+
readonly netsuiteItemName: {
|
|
3604
|
+
readonly before: "item.itemid";
|
|
3605
|
+
readonly target: "netsuite.itemName";
|
|
3606
|
+
readonly policy: "always";
|
|
3607
|
+
readonly conditional: true;
|
|
3608
|
+
readonly note: "A native NetSuite item field, not a SuiteCommerce one, so it survives the cutover.";
|
|
3609
|
+
};
|
|
3610
|
+
readonly groupAndOption: {
|
|
3611
|
+
readonly before: "storedisplayname";
|
|
3612
|
+
readonly target: "name";
|
|
3613
|
+
readonly policy: "always";
|
|
3614
|
+
readonly conditional: true;
|
|
3615
|
+
readonly identity: true;
|
|
3616
|
+
readonly note: string;
|
|
3617
|
+
};
|
|
3618
|
+
readonly key: {
|
|
3619
|
+
readonly before: "urlcomponent";
|
|
3620
|
+
readonly target: "key";
|
|
3621
|
+
readonly policy: "always";
|
|
3622
|
+
readonly identity: true;
|
|
3623
|
+
readonly note: string;
|
|
3624
|
+
readonly caution: "Changing urlcomponent in NetSuite orphans the existing add-on and creates a new one.";
|
|
3625
|
+
};
|
|
3626
|
+
readonly active: {
|
|
3627
|
+
readonly before: "isinactive";
|
|
3628
|
+
readonly target: "status";
|
|
3629
|
+
readonly policy: "always";
|
|
3630
|
+
readonly conditional: true;
|
|
3631
|
+
readonly note: string;
|
|
3632
|
+
};
|
|
3633
|
+
readonly visible: {
|
|
3634
|
+
readonly before: "isonline";
|
|
3635
|
+
readonly target: "isVisible";
|
|
3636
|
+
readonly policy: "always";
|
|
3637
|
+
readonly conditional: true;
|
|
3638
|
+
readonly note: string;
|
|
3639
|
+
};
|
|
3640
|
+
readonly pricingType: {
|
|
3641
|
+
readonly target: "pricingType";
|
|
3642
|
+
readonly policy: "seed";
|
|
3643
|
+
readonly note: string;
|
|
3644
|
+
};
|
|
3645
|
+
readonly price: {
|
|
3646
|
+
readonly before: "itemprice at price level 1";
|
|
3647
|
+
readonly target: "price";
|
|
3648
|
+
readonly policy: "always";
|
|
3649
|
+
readonly conditional: true;
|
|
3650
|
+
readonly note: "Base price. An option with no level-1 price is reported by the sync rather than written as $0.";
|
|
3651
|
+
};
|
|
3652
|
+
readonly sellingPoints: {
|
|
3653
|
+
readonly before: "salesdescription";
|
|
3654
|
+
readonly target: "description";
|
|
3655
|
+
readonly policy: "always";
|
|
3656
|
+
readonly conditional: true;
|
|
3657
|
+
readonly note: string;
|
|
3658
|
+
};
|
|
3659
|
+
readonly detail: {
|
|
3660
|
+
readonly before: "storedetaileddescription";
|
|
3661
|
+
readonly target: "longDescription";
|
|
3662
|
+
readonly policy: "always";
|
|
3663
|
+
readonly conditional: true;
|
|
3664
|
+
readonly note: string;
|
|
3665
|
+
};
|
|
3666
|
+
readonly priceBand: {
|
|
3667
|
+
readonly before: "featureddescription";
|
|
3668
|
+
readonly target: "appliesFromPrice / appliesToPrice";
|
|
3669
|
+
readonly policy: "always";
|
|
3670
|
+
readonly conditional: true;
|
|
3671
|
+
readonly note: string;
|
|
3672
|
+
};
|
|
3673
|
+
readonly eligibilityGate: {
|
|
3674
|
+
readonly before: "custitem520";
|
|
3675
|
+
readonly target: "AddonGroup.netsuite.requiresField";
|
|
3676
|
+
readonly policy: "seed";
|
|
3677
|
+
readonly note: string;
|
|
3678
|
+
};
|
|
3679
|
+
}>, NetsuiteFieldProvider<{
|
|
3680
|
+
readonly name: {
|
|
3681
|
+
readonly before: "commercecategory.name";
|
|
3682
|
+
readonly after: "item.manufacturer";
|
|
3683
|
+
readonly target: "name";
|
|
3684
|
+
readonly policy: "always";
|
|
3685
|
+
};
|
|
3686
|
+
readonly online: {
|
|
3687
|
+
readonly before: "isonline";
|
|
3688
|
+
readonly after: "custitem_display_online";
|
|
3689
|
+
readonly target: "isOnline";
|
|
3690
|
+
readonly policy: "always";
|
|
3691
|
+
};
|
|
3692
|
+
readonly netsuiteId: {
|
|
3693
|
+
readonly before: "commercecategory.id";
|
|
3694
|
+
readonly target: "netsuiteId";
|
|
3695
|
+
readonly policy: "always";
|
|
3696
|
+
readonly conditional: true;
|
|
3697
|
+
readonly note: "No successor. The manufacturer name becomes the key.";
|
|
3698
|
+
};
|
|
3699
|
+
readonly slug: {
|
|
3700
|
+
readonly before: "commercecategory.urlfragment";
|
|
3701
|
+
readonly target: "slug";
|
|
3702
|
+
readonly policy: "seed";
|
|
3703
|
+
readonly identity: true;
|
|
3704
|
+
readonly note: string;
|
|
3705
|
+
readonly caution: string;
|
|
3706
|
+
};
|
|
3707
|
+
readonly logo: {
|
|
3708
|
+
readonly before: "thumbnail";
|
|
3709
|
+
readonly target: "logo";
|
|
3710
|
+
readonly policy: "always";
|
|
3711
|
+
readonly conditional: true;
|
|
3712
|
+
readonly note: "No successor. custrecord35 holds the same logo as a plain URL on all 52 brands.";
|
|
3713
|
+
};
|
|
3714
|
+
readonly description: {
|
|
3715
|
+
readonly before: "commercecategory.description";
|
|
3716
|
+
readonly target: "description";
|
|
3717
|
+
readonly policy: "always";
|
|
3718
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3719
|
+
};
|
|
3720
|
+
readonly sortOrder: {
|
|
3721
|
+
readonly before: "sequencenumber";
|
|
3722
|
+
readonly target: "sortOrder";
|
|
3723
|
+
readonly policy: "always";
|
|
3724
|
+
readonly conditional: true;
|
|
3725
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3726
|
+
};
|
|
3727
|
+
readonly seoTitle: {
|
|
3728
|
+
readonly before: "pagetitle";
|
|
3729
|
+
readonly target: "seoMetaData.title";
|
|
3730
|
+
readonly policy: "always";
|
|
3731
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3732
|
+
};
|
|
3733
|
+
readonly seoDescription: {
|
|
3734
|
+
readonly before: "metadescription";
|
|
3735
|
+
readonly target: "seoMetaData.description";
|
|
3736
|
+
readonly policy: "always";
|
|
3737
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3738
|
+
};
|
|
3739
|
+
readonly seoKeywords: {
|
|
3740
|
+
readonly before: "metakeywords";
|
|
3741
|
+
readonly target: "seoMetaData.keywords";
|
|
3742
|
+
readonly policy: "always";
|
|
3743
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3744
|
+
};
|
|
3745
|
+
readonly status: {
|
|
3746
|
+
readonly before: "isinactive + displayinsite";
|
|
3747
|
+
readonly target: "status";
|
|
3748
|
+
readonly policy: "always";
|
|
3749
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3750
|
+
};
|
|
3751
|
+
readonly headerTag: {
|
|
3752
|
+
readonly before: "pageheading";
|
|
3753
|
+
readonly target: "seoMetaData.headerTag";
|
|
3754
|
+
readonly policy: "always";
|
|
3755
|
+
readonly note: string;
|
|
3756
|
+
};
|
|
3757
|
+
readonly banners: {
|
|
3758
|
+
readonly before: "pagebanner";
|
|
3759
|
+
readonly target: "banners";
|
|
3760
|
+
readonly policy: "seed";
|
|
3761
|
+
readonly note: string;
|
|
3762
|
+
};
|
|
3763
|
+
readonly logoUrl: {
|
|
3764
|
+
readonly before: "custrecord35";
|
|
3765
|
+
readonly target: "logo";
|
|
3766
|
+
readonly policy: "seed";
|
|
3767
|
+
readonly pending: true;
|
|
3768
|
+
readonly note: "A plain logo URL on all 52 brands, needing no file lookup. Never imported.";
|
|
3769
|
+
};
|
|
3770
|
+
}>, NetsuiteFieldProvider<{
|
|
3771
|
+
readonly name: {
|
|
3772
|
+
readonly before: "commercecategory.name";
|
|
3773
|
+
readonly after: "custitem_category";
|
|
3774
|
+
readonly target: "name";
|
|
3775
|
+
readonly policy: "always";
|
|
3776
|
+
readonly note: "After is a flat string stamped on the item, not a record.";
|
|
3777
|
+
};
|
|
3778
|
+
readonly online: {
|
|
3779
|
+
readonly before: "isonline";
|
|
3780
|
+
readonly after: "custitem_display_online";
|
|
3781
|
+
readonly target: "isOnline";
|
|
3782
|
+
readonly policy: "always";
|
|
3783
|
+
};
|
|
3784
|
+
readonly netsuiteId: {
|
|
3785
|
+
readonly before: "commercecategory.id";
|
|
3786
|
+
readonly target: "netsuiteId";
|
|
3787
|
+
readonly policy: "always";
|
|
3788
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3789
|
+
};
|
|
3790
|
+
readonly slug: {
|
|
3791
|
+
readonly before: "urlfragment";
|
|
3792
|
+
readonly target: "slug";
|
|
3793
|
+
readonly policy: "seed";
|
|
3794
|
+
readonly identity: true;
|
|
3795
|
+
readonly note: string;
|
|
3796
|
+
readonly caution: string;
|
|
3797
|
+
};
|
|
3798
|
+
readonly image: {
|
|
3799
|
+
readonly before: "thumbnail";
|
|
3800
|
+
readonly target: "image";
|
|
3801
|
+
readonly policy: "always";
|
|
3802
|
+
readonly note: "No successor. custrecord35 holds 3,735 of these as plain URLs.";
|
|
3803
|
+
};
|
|
3804
|
+
readonly description: {
|
|
3805
|
+
readonly before: "commercecategory.description";
|
|
3806
|
+
readonly target: "description";
|
|
3807
|
+
readonly policy: "always";
|
|
3808
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3809
|
+
};
|
|
3810
|
+
readonly sortOrder: {
|
|
3811
|
+
readonly before: "sequencenumber";
|
|
3812
|
+
readonly target: "sortOrder";
|
|
3813
|
+
readonly policy: "always";
|
|
3814
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3815
|
+
};
|
|
3816
|
+
readonly seoTitle: {
|
|
3817
|
+
readonly before: "pagetitle";
|
|
3818
|
+
readonly target: "seoMetaData.title";
|
|
3819
|
+
readonly policy: "always";
|
|
3820
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3821
|
+
};
|
|
3822
|
+
readonly seoDescription: {
|
|
3823
|
+
readonly before: "metadescription";
|
|
3824
|
+
readonly target: "seoMetaData.description";
|
|
3825
|
+
readonly policy: "always";
|
|
3826
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3827
|
+
};
|
|
3828
|
+
readonly seoKeywords: {
|
|
3829
|
+
readonly before: "metakeywords";
|
|
3830
|
+
readonly target: "seoMetaData.keywords";
|
|
3831
|
+
readonly policy: "always";
|
|
3832
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3833
|
+
};
|
|
3834
|
+
readonly status: {
|
|
3835
|
+
readonly before: "isinactive + displayinsite";
|
|
3836
|
+
readonly target: "status";
|
|
3837
|
+
readonly policy: "always";
|
|
3838
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
3839
|
+
};
|
|
3840
|
+
readonly parent: {
|
|
3841
|
+
readonly before: "primaryparent";
|
|
3842
|
+
readonly after: "custitem_primary_category";
|
|
3843
|
+
readonly target: "parent";
|
|
3844
|
+
readonly policy: "always";
|
|
3845
|
+
readonly note: "The single primary parent. Mirrors NetSuite on every sync, so a parent changed here is overwritten. After is populated on only 3,150 items.";
|
|
3846
|
+
};
|
|
3847
|
+
readonly subcategories: {
|
|
3848
|
+
readonly before: "commercecategoryassociation.subcategory";
|
|
3849
|
+
readonly target: "subcategories";
|
|
3850
|
+
readonly policy: "always";
|
|
3851
|
+
readonly note: "The children list, rebuilt from the association table on every sync — NetSuite categories are multi-parent, so 23% of them sit under more than one. `primaryparent` alone misses those. Edits here are overwritten.";
|
|
3852
|
+
readonly caution: "The association row also carries nameoverride / urlfragmentoverride / thumbnailoverride per parent, so the same category is labelled differently under each. Those overrides are applied for the primary parent only.";
|
|
3853
|
+
};
|
|
3854
|
+
readonly headerTag: {
|
|
3855
|
+
readonly before: "pageheading";
|
|
3856
|
+
readonly target: "seoMetaData.headerTag";
|
|
3857
|
+
readonly policy: "always";
|
|
3858
|
+
readonly note: "The H1, on 4,789 categories. addtohead is head markup and is not a substitute.";
|
|
3859
|
+
};
|
|
3860
|
+
readonly banners: {
|
|
3861
|
+
readonly before: "pagebanner";
|
|
3862
|
+
readonly target: "banners";
|
|
3863
|
+
readonly policy: "seed";
|
|
3864
|
+
readonly note: "Seeded from pagebanner on first import; 50 categories carry one. Edits here are never overwritten.";
|
|
3865
|
+
};
|
|
3866
|
+
readonly imageUrl: {
|
|
3867
|
+
readonly before: "custrecord35";
|
|
3868
|
+
readonly target: "image";
|
|
3869
|
+
readonly policy: "seed";
|
|
3870
|
+
readonly pending: true;
|
|
3871
|
+
readonly note: "A plain image URL on 3,735 categories, needing no file lookup. Never imported.";
|
|
3872
|
+
};
|
|
3873
|
+
readonly faq: {
|
|
3874
|
+
readonly before: "custrecord_faq_q1";
|
|
3875
|
+
readonly target: "metaData.faq";
|
|
3876
|
+
readonly policy: "seed";
|
|
3877
|
+
readonly pending: true;
|
|
3878
|
+
readonly note: "Ten question and answer pairs on 34 categories. Editorial copy held nowhere else.";
|
|
3879
|
+
};
|
|
3880
|
+
}>, NetsuiteFieldProvider<{
|
|
3881
|
+
readonly accessories: {
|
|
3882
|
+
readonly after: "custitem_accessories";
|
|
3883
|
+
readonly target: "relationGroups.accessories";
|
|
3884
|
+
readonly policy: "seed";
|
|
3885
|
+
readonly pending: true;
|
|
3886
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
3887
|
+
};
|
|
3888
|
+
readonly toolKits: {
|
|
3889
|
+
readonly after: "custitem_tool_kits";
|
|
3890
|
+
readonly target: "relationGroups.tool-kits";
|
|
3891
|
+
readonly policy: "seed";
|
|
3892
|
+
readonly pending: true;
|
|
3893
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
3894
|
+
};
|
|
3895
|
+
readonly parts: {
|
|
3896
|
+
readonly after: "custitem_parts";
|
|
3897
|
+
readonly target: "relationGroups.parts";
|
|
3898
|
+
readonly policy: "seed";
|
|
3899
|
+
readonly pending: true;
|
|
3900
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
3901
|
+
};
|
|
3902
|
+
readonly similarProducts: {
|
|
3903
|
+
readonly after: "custitem_similiar_products";
|
|
3904
|
+
readonly target: "relationGroups.similar-products";
|
|
3905
|
+
readonly policy: "seed";
|
|
3906
|
+
readonly pending: true;
|
|
3907
|
+
readonly note: "The scriptid misspells Similar. That spelling is the real identifier.";
|
|
3908
|
+
};
|
|
3909
|
+
readonly frequentlyBought: {
|
|
3910
|
+
readonly before: "itemcorrelateditem";
|
|
3911
|
+
readonly after: "custitem_frequently_bought";
|
|
3912
|
+
readonly target: "relationGroups.frequently-bought-together";
|
|
3913
|
+
readonly policy: "seed";
|
|
3914
|
+
readonly pending: true;
|
|
3915
|
+
readonly note: "Before is NetSuite's own correlation feed, 894 rows, derived from SuiteCommerce traffic.";
|
|
3916
|
+
};
|
|
3917
|
+
readonly includedItems: {
|
|
3918
|
+
readonly after: "custitem_included_items";
|
|
3919
|
+
readonly target: "relationGroups.kit-contents";
|
|
3920
|
+
readonly policy: "seed";
|
|
3921
|
+
readonly pending: true;
|
|
3922
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
3923
|
+
};
|
|
3924
|
+
readonly modelsAvailable: {
|
|
3925
|
+
readonly after: "custitem_models_available";
|
|
3926
|
+
readonly target: "relationGroups.models-available";
|
|
3927
|
+
readonly policy: "seed";
|
|
3928
|
+
readonly pending: true;
|
|
3929
|
+
readonly note: "Populated on 1,365 items. No relation group is seeded for it yet.";
|
|
3930
|
+
};
|
|
3931
|
+
}>, NetsuiteFieldProvider<{
|
|
3932
|
+
netsuiteId: {
|
|
3933
|
+
before: string;
|
|
3934
|
+
target: string;
|
|
3935
|
+
policy: "always";
|
|
3936
|
+
conditional: true;
|
|
3937
|
+
note: string;
|
|
3938
|
+
};
|
|
3939
|
+
netsuitePostId: {
|
|
3940
|
+
before: string;
|
|
3941
|
+
target: string;
|
|
3942
|
+
policy: "always";
|
|
3943
|
+
conditional: true;
|
|
3944
|
+
note: string;
|
|
3945
|
+
};
|
|
3946
|
+
title: {
|
|
3947
|
+
before: string;
|
|
3948
|
+
target: string;
|
|
3949
|
+
policy: "always";
|
|
3950
|
+
conditional: true;
|
|
3951
|
+
note: string;
|
|
3952
|
+
};
|
|
3953
|
+
slug: {
|
|
3954
|
+
before: string;
|
|
3955
|
+
target: string;
|
|
3956
|
+
policy: "always";
|
|
3957
|
+
conditional: true;
|
|
3958
|
+
note: string;
|
|
3959
|
+
caution: string;
|
|
3960
|
+
};
|
|
3961
|
+
subtitle: {
|
|
3962
|
+
before: string;
|
|
3963
|
+
target: string;
|
|
3964
|
+
policy: "always";
|
|
3965
|
+
conditional: true;
|
|
3966
|
+
note: string;
|
|
3967
|
+
};
|
|
3968
|
+
content: {
|
|
3969
|
+
before: string;
|
|
3970
|
+
target: string;
|
|
3971
|
+
policy: "always";
|
|
3972
|
+
conditional: true;
|
|
3973
|
+
note: string;
|
|
3974
|
+
};
|
|
3975
|
+
publishedAt: {
|
|
3976
|
+
before: string;
|
|
3977
|
+
target: string;
|
|
3978
|
+
policy: "always";
|
|
3979
|
+
conditional: true;
|
|
3980
|
+
note: string;
|
|
3981
|
+
};
|
|
3982
|
+
author: {
|
|
3983
|
+
before: string;
|
|
3984
|
+
target: string;
|
|
3985
|
+
policy: "always";
|
|
3986
|
+
conditional: true;
|
|
3987
|
+
note: string;
|
|
3988
|
+
};
|
|
3989
|
+
category: {
|
|
3990
|
+
before: string;
|
|
3991
|
+
target: string;
|
|
3992
|
+
policy: "always";
|
|
3993
|
+
conditional: true;
|
|
3994
|
+
note: string;
|
|
3995
|
+
};
|
|
3996
|
+
headerImage: {
|
|
3997
|
+
before: string;
|
|
3998
|
+
target: string;
|
|
3999
|
+
policy: "always";
|
|
4000
|
+
conditional: true;
|
|
4001
|
+
note: string;
|
|
4002
|
+
};
|
|
4003
|
+
headerImageAlt: {
|
|
4004
|
+
before: string;
|
|
4005
|
+
target: string;
|
|
4006
|
+
policy: "always";
|
|
4007
|
+
conditional: true;
|
|
4008
|
+
note: string;
|
|
4009
|
+
};
|
|
4010
|
+
thumbnail: {
|
|
4011
|
+
before: string;
|
|
4012
|
+
target: string;
|
|
4013
|
+
policy: "always";
|
|
4014
|
+
conditional: true;
|
|
4015
|
+
note: string;
|
|
4016
|
+
};
|
|
4017
|
+
thumbnailAlt: {
|
|
4018
|
+
before: string;
|
|
4019
|
+
target: string;
|
|
4020
|
+
policy: "always";
|
|
4021
|
+
conditional: true;
|
|
4022
|
+
note: string;
|
|
4023
|
+
};
|
|
4024
|
+
excerpt: {
|
|
4025
|
+
before: string;
|
|
4026
|
+
target: string;
|
|
4027
|
+
policy: "always";
|
|
4028
|
+
conditional: true;
|
|
4029
|
+
note: string;
|
|
4030
|
+
};
|
|
4031
|
+
tags: {
|
|
4032
|
+
before: string;
|
|
4033
|
+
target: string;
|
|
4034
|
+
policy: "always";
|
|
4035
|
+
conditional: true;
|
|
4036
|
+
note: string;
|
|
4037
|
+
};
|
|
4038
|
+
pinnedTo: {
|
|
4039
|
+
before: string;
|
|
4040
|
+
target: string;
|
|
4041
|
+
policy: "always";
|
|
4042
|
+
conditional: true;
|
|
4043
|
+
note: string;
|
|
4044
|
+
};
|
|
4045
|
+
status: {
|
|
4046
|
+
before: string;
|
|
4047
|
+
target: string;
|
|
4048
|
+
policy: "always";
|
|
4049
|
+
conditional: true;
|
|
4050
|
+
note: string;
|
|
4051
|
+
};
|
|
4052
|
+
seoTitle: {
|
|
4053
|
+
before: string;
|
|
4054
|
+
target: string;
|
|
4055
|
+
policy: "always";
|
|
4056
|
+
conditional: true;
|
|
4057
|
+
note: string;
|
|
4058
|
+
};
|
|
4059
|
+
seoDescription: {
|
|
4060
|
+
before: string;
|
|
4061
|
+
target: string;
|
|
4062
|
+
policy: "always";
|
|
4063
|
+
conditional: true;
|
|
4064
|
+
note: string;
|
|
4065
|
+
};
|
|
4066
|
+
seoKeywords: {
|
|
4067
|
+
before: string;
|
|
4068
|
+
target: string;
|
|
4069
|
+
policy: "always";
|
|
4070
|
+
conditional: true;
|
|
4071
|
+
note: string;
|
|
4072
|
+
};
|
|
4073
|
+
headerTag: {
|
|
4074
|
+
before: string;
|
|
4075
|
+
target: string;
|
|
4076
|
+
policy: "always";
|
|
4077
|
+
conditional: true;
|
|
4078
|
+
note: string;
|
|
4079
|
+
};
|
|
4080
|
+
readingMinutes: {
|
|
4081
|
+
target: string;
|
|
4082
|
+
policy: "seed";
|
|
4083
|
+
note: string;
|
|
4084
|
+
};
|
|
4085
|
+
relatedProducts: {
|
|
4086
|
+
target: string;
|
|
4087
|
+
policy: "seed";
|
|
4088
|
+
note: string;
|
|
4089
|
+
};
|
|
4090
|
+
stores: {
|
|
4091
|
+
target: string;
|
|
4092
|
+
policy: "seed";
|
|
4093
|
+
note: string;
|
|
4094
|
+
};
|
|
4095
|
+
}>, NetsuiteFieldProvider<{
|
|
4096
|
+
netsuiteId: {
|
|
4097
|
+
before: string;
|
|
4098
|
+
target: string;
|
|
4099
|
+
policy: "always";
|
|
4100
|
+
conditional: true;
|
|
4101
|
+
note: string;
|
|
4102
|
+
};
|
|
4103
|
+
name: {
|
|
4104
|
+
before: string;
|
|
4105
|
+
target: string;
|
|
4106
|
+
policy: "always";
|
|
4107
|
+
conditional: true;
|
|
4108
|
+
note: string;
|
|
4109
|
+
};
|
|
4110
|
+
status: {
|
|
4111
|
+
before: string;
|
|
4112
|
+
target: string;
|
|
4113
|
+
policy: "always";
|
|
4114
|
+
conditional: true;
|
|
4115
|
+
note: string;
|
|
4116
|
+
};
|
|
4117
|
+
slug: {
|
|
4118
|
+
target: string;
|
|
4119
|
+
policy: "seed";
|
|
4120
|
+
identity: true;
|
|
4121
|
+
note: string;
|
|
4122
|
+
caution: string;
|
|
4123
|
+
};
|
|
4124
|
+
bio: {
|
|
4125
|
+
target: string;
|
|
4126
|
+
policy: "seed";
|
|
4127
|
+
note: string;
|
|
4128
|
+
};
|
|
4129
|
+
seoTitle: {
|
|
4130
|
+
target: string;
|
|
4131
|
+
policy: "seed";
|
|
4132
|
+
note: string;
|
|
4133
|
+
};
|
|
4134
|
+
seoDescription: {
|
|
4135
|
+
target: string;
|
|
4136
|
+
policy: "seed";
|
|
4137
|
+
note: string;
|
|
4138
|
+
};
|
|
4139
|
+
seoKeywords: {
|
|
4140
|
+
target: string;
|
|
4141
|
+
policy: "seed";
|
|
4142
|
+
note: string;
|
|
4143
|
+
};
|
|
4144
|
+
role: {
|
|
4145
|
+
target: string;
|
|
4146
|
+
policy: "seed";
|
|
4147
|
+
note: string;
|
|
4148
|
+
};
|
|
4149
|
+
avatar: {
|
|
4150
|
+
target: string;
|
|
4151
|
+
policy: "seed";
|
|
4152
|
+
note: string;
|
|
4153
|
+
};
|
|
4154
|
+
}>, NetsuiteFieldProvider<{
|
|
4155
|
+
netsuiteId: {
|
|
4156
|
+
before: string;
|
|
4157
|
+
target: string;
|
|
4158
|
+
policy: "always";
|
|
4159
|
+
conditional: true;
|
|
4160
|
+
note: string;
|
|
4161
|
+
};
|
|
4162
|
+
name: {
|
|
4163
|
+
before: string;
|
|
4164
|
+
target: string;
|
|
4165
|
+
policy: "always";
|
|
4166
|
+
conditional: true;
|
|
4167
|
+
note: string;
|
|
4168
|
+
};
|
|
4169
|
+
status: {
|
|
4170
|
+
before: string;
|
|
4171
|
+
target: string;
|
|
4172
|
+
policy: "always";
|
|
4173
|
+
conditional: true;
|
|
4174
|
+
note: string;
|
|
4175
|
+
};
|
|
4176
|
+
slug: {
|
|
4177
|
+
target: string;
|
|
4178
|
+
policy: "seed";
|
|
4179
|
+
identity: true;
|
|
4180
|
+
note: string;
|
|
4181
|
+
caution: string;
|
|
4182
|
+
};
|
|
4183
|
+
description: {
|
|
4184
|
+
target: string;
|
|
4185
|
+
policy: "seed";
|
|
4186
|
+
note: string;
|
|
4187
|
+
};
|
|
4188
|
+
seoTitle: {
|
|
4189
|
+
target: string;
|
|
4190
|
+
policy: "seed";
|
|
4191
|
+
note: string;
|
|
4192
|
+
};
|
|
4193
|
+
seoDescription: {
|
|
4194
|
+
target: string;
|
|
4195
|
+
policy: "seed";
|
|
4196
|
+
note: string;
|
|
4197
|
+
};
|
|
4198
|
+
seoKeywords: {
|
|
4199
|
+
target: string;
|
|
4200
|
+
policy: "seed";
|
|
4201
|
+
note: string;
|
|
4202
|
+
};
|
|
4203
|
+
image: {
|
|
4204
|
+
target: string;
|
|
4205
|
+
policy: "seed";
|
|
4206
|
+
note: string;
|
|
4207
|
+
};
|
|
4208
|
+
sortOrder: {
|
|
4209
|
+
target: string;
|
|
4210
|
+
policy: "seed";
|
|
4211
|
+
note: string;
|
|
4212
|
+
};
|
|
4213
|
+
}>, NetsuiteFieldProvider<{
|
|
4214
|
+
promotionId: {
|
|
4215
|
+
before: string;
|
|
4216
|
+
target: string;
|
|
4217
|
+
policy: "always";
|
|
4218
|
+
conditional: true;
|
|
4219
|
+
note: string;
|
|
4220
|
+
};
|
|
4221
|
+
title: {
|
|
4222
|
+
before: string;
|
|
4223
|
+
target: string;
|
|
4224
|
+
policy: "always";
|
|
4225
|
+
conditional: true;
|
|
4226
|
+
note: string;
|
|
4227
|
+
};
|
|
4228
|
+
promotionName: {
|
|
4229
|
+
before: string;
|
|
4230
|
+
target: string;
|
|
4231
|
+
policy: "always";
|
|
4232
|
+
conditional: true;
|
|
4233
|
+
note: string;
|
|
4234
|
+
};
|
|
4235
|
+
couponCode: {
|
|
4236
|
+
before: string;
|
|
4237
|
+
target: string;
|
|
4238
|
+
policy: "always";
|
|
4239
|
+
identity: true;
|
|
4240
|
+
note: string;
|
|
4241
|
+
caution: string;
|
|
4242
|
+
};
|
|
4243
|
+
discountType: {
|
|
4244
|
+
before: string;
|
|
4245
|
+
target: string;
|
|
4246
|
+
policy: "always";
|
|
4247
|
+
conditional: true;
|
|
4248
|
+
note: string;
|
|
4249
|
+
};
|
|
4250
|
+
discountValue: {
|
|
4251
|
+
before: string;
|
|
4252
|
+
target: string;
|
|
4253
|
+
policy: "always";
|
|
4254
|
+
conditional: true;
|
|
4255
|
+
note: string;
|
|
4256
|
+
};
|
|
4257
|
+
startTime: {
|
|
4258
|
+
before: string;
|
|
4259
|
+
target: string;
|
|
4260
|
+
policy: "always";
|
|
4261
|
+
conditional: true;
|
|
4262
|
+
note: string;
|
|
4263
|
+
};
|
|
4264
|
+
endTime: {
|
|
4265
|
+
before: string;
|
|
4266
|
+
target: string;
|
|
4267
|
+
policy: "always";
|
|
4268
|
+
conditional: true;
|
|
4269
|
+
note: string;
|
|
4270
|
+
};
|
|
4271
|
+
status: {
|
|
4272
|
+
before: string;
|
|
4273
|
+
target: string;
|
|
4274
|
+
policy: "always";
|
|
4275
|
+
conditional: true;
|
|
4276
|
+
note: string;
|
|
4277
|
+
};
|
|
4278
|
+
discountItemId: {
|
|
4279
|
+
before: string;
|
|
4280
|
+
target: string;
|
|
4281
|
+
policy: "always";
|
|
4282
|
+
conditional: true;
|
|
4283
|
+
note: string;
|
|
4284
|
+
};
|
|
4285
|
+
discountItemName: {
|
|
4286
|
+
before: string;
|
|
4287
|
+
target: string;
|
|
4288
|
+
policy: "always";
|
|
4289
|
+
conditional: true;
|
|
4290
|
+
note: string;
|
|
4291
|
+
};
|
|
4292
|
+
discountReducesTax: {
|
|
4293
|
+
before: string;
|
|
4294
|
+
target: string;
|
|
4295
|
+
policy: "always";
|
|
4296
|
+
conditional: true;
|
|
4297
|
+
note: string;
|
|
4298
|
+
};
|
|
4299
|
+
applyDiscountTo: {
|
|
4300
|
+
before: string;
|
|
4301
|
+
target: string;
|
|
4302
|
+
policy: "always";
|
|
4303
|
+
conditional: true;
|
|
4304
|
+
note: string;
|
|
4305
|
+
};
|
|
4306
|
+
freeShipping: {
|
|
4307
|
+
before: string;
|
|
4308
|
+
target: string;
|
|
4309
|
+
policy: "always";
|
|
4310
|
+
conditional: true;
|
|
4311
|
+
note: string;
|
|
4312
|
+
};
|
|
4313
|
+
description: {
|
|
4314
|
+
before: string;
|
|
4315
|
+
target: string;
|
|
4316
|
+
policy: "always";
|
|
4317
|
+
conditional: true;
|
|
4318
|
+
note: string;
|
|
4319
|
+
};
|
|
4320
|
+
isPromotional: {
|
|
4321
|
+
before: string;
|
|
4322
|
+
target: string;
|
|
4323
|
+
policy: "always";
|
|
4324
|
+
conditional: true;
|
|
4325
|
+
note: string;
|
|
4326
|
+
};
|
|
4327
|
+
singleUse: {
|
|
4328
|
+
before: string;
|
|
4329
|
+
target: string;
|
|
4330
|
+
policy: "always";
|
|
4331
|
+
conditional: true;
|
|
4332
|
+
note: string;
|
|
4333
|
+
};
|
|
4334
|
+
itemRestrictions: {
|
|
4335
|
+
before: string;
|
|
4336
|
+
target: string;
|
|
4337
|
+
policy: "always";
|
|
4338
|
+
conditional: true;
|
|
4339
|
+
note: string;
|
|
4340
|
+
};
|
|
4341
|
+
minimumAmount: {
|
|
4342
|
+
before: string;
|
|
4343
|
+
target: string;
|
|
4344
|
+
policy: "always";
|
|
4345
|
+
conditional: true;
|
|
4346
|
+
note: string;
|
|
4347
|
+
};
|
|
4348
|
+
stores: {
|
|
4349
|
+
target: string;
|
|
4350
|
+
policy: "seed";
|
|
4351
|
+
note: string;
|
|
4352
|
+
};
|
|
4353
|
+
}>, NetsuiteFieldProvider<{
|
|
4354
|
+
guid: {
|
|
4355
|
+
before: string;
|
|
4356
|
+
target: string;
|
|
4357
|
+
policy: "always";
|
|
4358
|
+
conditional: true;
|
|
4359
|
+
note: string;
|
|
4360
|
+
};
|
|
4361
|
+
title: {
|
|
4362
|
+
before: string;
|
|
4363
|
+
target: string;
|
|
4364
|
+
policy: "always";
|
|
4365
|
+
conditional: true;
|
|
4366
|
+
note: string;
|
|
4367
|
+
};
|
|
4368
|
+
slug: {
|
|
4369
|
+
target: string;
|
|
4370
|
+
policy: "seed";
|
|
4371
|
+
identity: true;
|
|
4372
|
+
note: string;
|
|
4373
|
+
caution: string;
|
|
4374
|
+
};
|
|
4375
|
+
summary: {
|
|
4376
|
+
before: string;
|
|
4377
|
+
target: string;
|
|
4378
|
+
policy: "always";
|
|
4379
|
+
conditional: true;
|
|
4380
|
+
note: string;
|
|
4381
|
+
};
|
|
4382
|
+
showNotes: {
|
|
4383
|
+
before: string;
|
|
4384
|
+
target: string;
|
|
4385
|
+
policy: "always";
|
|
4386
|
+
conditional: true;
|
|
4387
|
+
note: string;
|
|
4388
|
+
};
|
|
4389
|
+
audioUrl: {
|
|
4390
|
+
before: string;
|
|
4391
|
+
target: string;
|
|
4392
|
+
policy: "always";
|
|
4393
|
+
conditional: true;
|
|
4394
|
+
note: string;
|
|
4395
|
+
};
|
|
4396
|
+
artwork: {
|
|
4397
|
+
before: string;
|
|
4398
|
+
target: string;
|
|
4399
|
+
policy: "always";
|
|
4400
|
+
conditional: true;
|
|
4401
|
+
note: string;
|
|
4402
|
+
};
|
|
4403
|
+
durationSeconds: {
|
|
4404
|
+
before: string;
|
|
4405
|
+
target: string;
|
|
4406
|
+
policy: "always";
|
|
4407
|
+
conditional: true;
|
|
4408
|
+
note: string;
|
|
4409
|
+
};
|
|
4410
|
+
episodeNumber: {
|
|
4411
|
+
before: string;
|
|
4412
|
+
target: string;
|
|
4413
|
+
policy: "always";
|
|
4414
|
+
conditional: true;
|
|
4415
|
+
note: string;
|
|
4416
|
+
};
|
|
4417
|
+
seasonNumber: {
|
|
4418
|
+
before: string;
|
|
4419
|
+
target: string;
|
|
4420
|
+
policy: "always";
|
|
4421
|
+
conditional: true;
|
|
4422
|
+
note: string;
|
|
4423
|
+
};
|
|
4424
|
+
publishedAt: {
|
|
4425
|
+
before: string;
|
|
4426
|
+
target: string;
|
|
4427
|
+
policy: "always";
|
|
4428
|
+
conditional: true;
|
|
4429
|
+
note: string;
|
|
4430
|
+
};
|
|
4431
|
+
externalUrl: {
|
|
4432
|
+
before: string;
|
|
4433
|
+
target: string;
|
|
4434
|
+
policy: "always";
|
|
4435
|
+
conditional: true;
|
|
4436
|
+
note: string;
|
|
4437
|
+
};
|
|
4438
|
+
seoTitle: {
|
|
4439
|
+
before: string;
|
|
4440
|
+
target: string;
|
|
4441
|
+
policy: "always";
|
|
4442
|
+
conditional: true;
|
|
4443
|
+
note: string;
|
|
4444
|
+
};
|
|
4445
|
+
seoDescription: {
|
|
4446
|
+
before: string;
|
|
4447
|
+
target: string;
|
|
4448
|
+
policy: "always";
|
|
4449
|
+
conditional: true;
|
|
4450
|
+
note: string;
|
|
4451
|
+
};
|
|
4452
|
+
transcript: {
|
|
4453
|
+
target: string;
|
|
4454
|
+
policy: "seed";
|
|
4455
|
+
note: string;
|
|
4456
|
+
};
|
|
4457
|
+
relatedProducts: {
|
|
4458
|
+
target: string;
|
|
4459
|
+
policy: "seed";
|
|
4460
|
+
note: string;
|
|
4461
|
+
};
|
|
4462
|
+
stores: {
|
|
4463
|
+
target: string;
|
|
4464
|
+
policy: "seed";
|
|
4465
|
+
note: string;
|
|
4466
|
+
};
|
|
4467
|
+
status: {
|
|
4468
|
+
target: string;
|
|
4469
|
+
policy: "seed";
|
|
4470
|
+
note: string;
|
|
4471
|
+
};
|
|
4472
|
+
isOnline: {
|
|
4473
|
+
target: string;
|
|
4474
|
+
policy: "seed";
|
|
4475
|
+
note: string;
|
|
4476
|
+
};
|
|
4477
|
+
}>];
|
|
4478
|
+
declare const BY_ENTITY: {
|
|
4479
|
+
readonly product: NetsuiteFieldProvider<{
|
|
4480
|
+
readonly netsuiteId: {
|
|
4481
|
+
readonly before: "item.id";
|
|
4482
|
+
readonly target: "netsuiteId";
|
|
4483
|
+
readonly policy: "always";
|
|
4484
|
+
readonly conditional: true;
|
|
4485
|
+
readonly note: string;
|
|
4486
|
+
};
|
|
4487
|
+
readonly sku: {
|
|
4488
|
+
readonly before: "item.itemid";
|
|
4489
|
+
readonly target: "sku";
|
|
4490
|
+
readonly policy: "always";
|
|
4491
|
+
readonly conditional: true;
|
|
4492
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
4493
|
+
};
|
|
4494
|
+
readonly originalPrice: {
|
|
4495
|
+
readonly before: "itemprice at the Base Price level (1)";
|
|
4496
|
+
readonly target: "price.originalPrice";
|
|
4497
|
+
readonly policy: "always";
|
|
4498
|
+
readonly conditional: true;
|
|
4499
|
+
readonly note: string;
|
|
4500
|
+
};
|
|
4501
|
+
readonly discount: {
|
|
4502
|
+
readonly before: "derived from Base Price vs Online Price";
|
|
4503
|
+
readonly target: "price.discount";
|
|
4504
|
+
readonly policy: "always";
|
|
4505
|
+
readonly conditional: true;
|
|
4506
|
+
readonly note: string;
|
|
4507
|
+
};
|
|
4508
|
+
readonly weight: {
|
|
4509
|
+
readonly before: "weight + weightunit";
|
|
4510
|
+
readonly target: "shipping.weightLb";
|
|
4511
|
+
readonly policy: "always";
|
|
4512
|
+
readonly conditional: true;
|
|
4513
|
+
readonly note: "weight is on 299,354 items, weightunit on 107,131. Converted to lb and kg on import.";
|
|
4514
|
+
};
|
|
4515
|
+
readonly dimensions: {
|
|
4516
|
+
readonly target: "shipping.lengthIn";
|
|
4517
|
+
readonly policy: "seed";
|
|
4518
|
+
readonly note: string;
|
|
4519
|
+
};
|
|
4520
|
+
readonly price: {
|
|
4521
|
+
readonly before: "itemprice at the online price level";
|
|
4522
|
+
readonly target: "price";
|
|
4523
|
+
readonly policy: "always";
|
|
4524
|
+
readonly conditional: true;
|
|
4525
|
+
readonly note: string;
|
|
4526
|
+
};
|
|
4527
|
+
readonly quantity: {
|
|
4528
|
+
readonly before: "quantityavailable";
|
|
4529
|
+
readonly target: "quantity";
|
|
4530
|
+
readonly policy: "always";
|
|
4531
|
+
readonly conditional: true;
|
|
4532
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
4533
|
+
};
|
|
4534
|
+
readonly minimumQuantity: {
|
|
4535
|
+
readonly before: "minimumquantity";
|
|
4536
|
+
readonly target: "minimumQuantity";
|
|
4537
|
+
readonly policy: "always";
|
|
4538
|
+
readonly conditional: true;
|
|
4539
|
+
readonly note: string;
|
|
4540
|
+
};
|
|
4541
|
+
readonly maximumQuantity: {
|
|
4542
|
+
readonly before: "maximumquantity";
|
|
4543
|
+
readonly target: "maximumQuantity";
|
|
4544
|
+
readonly policy: "always";
|
|
4545
|
+
readonly conditional: true;
|
|
4546
|
+
readonly note: string;
|
|
4547
|
+
};
|
|
4548
|
+
readonly enforceMinimum: {
|
|
4549
|
+
readonly before: "enforceminqtyinternally";
|
|
4550
|
+
readonly target: "enforceMinimum";
|
|
4551
|
+
readonly policy: "always";
|
|
4552
|
+
readonly conditional: true;
|
|
4553
|
+
readonly note: string;
|
|
4554
|
+
};
|
|
4555
|
+
readonly isSparePart: {
|
|
4556
|
+
readonly before: "custitem303";
|
|
4557
|
+
readonly target: "isSparePart";
|
|
4558
|
+
readonly policy: "always";
|
|
4559
|
+
readonly conditional: true;
|
|
4560
|
+
readonly note: string;
|
|
4561
|
+
};
|
|
4562
|
+
readonly itemType: {
|
|
4563
|
+
readonly before: "itemtype";
|
|
4564
|
+
readonly target: "itemType";
|
|
4565
|
+
readonly policy: "always";
|
|
4566
|
+
readonly conditional: true;
|
|
4567
|
+
readonly note: string;
|
|
4568
|
+
};
|
|
4569
|
+
readonly stockDescription: {
|
|
4570
|
+
readonly before: "stockdescription";
|
|
4571
|
+
readonly target: "stockDescription";
|
|
4572
|
+
readonly policy: "always";
|
|
4573
|
+
readonly conditional: true;
|
|
4574
|
+
readonly note: string;
|
|
4575
|
+
};
|
|
4576
|
+
readonly noPriceMessage: {
|
|
4577
|
+
readonly before: "nopricemessage";
|
|
4578
|
+
readonly target: "noPriceMessage";
|
|
4579
|
+
readonly policy: "always";
|
|
4580
|
+
readonly conditional: true;
|
|
4581
|
+
readonly note: string;
|
|
4582
|
+
};
|
|
4583
|
+
readonly isSeriesComponent: {
|
|
4584
|
+
readonly before: "custitem40";
|
|
4585
|
+
readonly target: "isSeriesComponent";
|
|
4586
|
+
readonly policy: "always";
|
|
4587
|
+
readonly conditional: true;
|
|
4588
|
+
readonly note: string;
|
|
4589
|
+
};
|
|
4590
|
+
readonly flexWarrantyEligible: {
|
|
4591
|
+
readonly before: "custitem520";
|
|
4592
|
+
readonly target: "flexWarrantyEligible";
|
|
4593
|
+
readonly policy: "always";
|
|
4594
|
+
readonly conditional: true;
|
|
4595
|
+
readonly note: string;
|
|
4596
|
+
};
|
|
4597
|
+
readonly inventoryPolicy: {
|
|
4598
|
+
readonly before: "outofstockbehavior";
|
|
4599
|
+
readonly target: "inventoryPolicy";
|
|
4600
|
+
readonly policy: "always";
|
|
4601
|
+
readonly conditional: true;
|
|
4602
|
+
readonly note: string;
|
|
4603
|
+
};
|
|
4604
|
+
readonly status: {
|
|
4605
|
+
readonly before: "isinactive";
|
|
4606
|
+
readonly target: "status";
|
|
4607
|
+
readonly policy: "always";
|
|
4608
|
+
readonly conditional: true;
|
|
4609
|
+
readonly note: "A native item field, not a SuiteCommerce one, so it survives the cutover unchanged.";
|
|
4610
|
+
};
|
|
4611
|
+
readonly shipping: {
|
|
4612
|
+
readonly before: "weight + weightunit";
|
|
4613
|
+
readonly target: "shipping";
|
|
4614
|
+
readonly policy: "always";
|
|
4615
|
+
readonly conditional: true;
|
|
4616
|
+
readonly note: string;
|
|
4617
|
+
};
|
|
4618
|
+
readonly slug: {
|
|
4619
|
+
readonly before: "urlcomponent";
|
|
4620
|
+
readonly after: "custitem_slug";
|
|
4621
|
+
readonly target: "slug";
|
|
4622
|
+
readonly policy: "seed";
|
|
4623
|
+
readonly identity: true;
|
|
4624
|
+
readonly note: "The storefront URL never moves once a product exists.";
|
|
4625
|
+
readonly caution: "The sync matches on netsuiteId first and falls back to slug. Changing it on a product NetSuite has never supplied makes the next run miss it and insert a second one.";
|
|
4626
|
+
};
|
|
4627
|
+
readonly name: {
|
|
4628
|
+
readonly before: "storedisplayname";
|
|
4629
|
+
readonly after: "custitem_product_name";
|
|
4630
|
+
readonly target: "name";
|
|
4631
|
+
readonly policy: "always";
|
|
4632
|
+
readonly conditional: true;
|
|
4633
|
+
readonly note: string;
|
|
4634
|
+
};
|
|
4635
|
+
readonly featured: {
|
|
4636
|
+
readonly before: "featureddescription";
|
|
4637
|
+
readonly after: "custitem_product_featured_description";
|
|
4638
|
+
readonly target: "description";
|
|
4639
|
+
readonly policy: "always";
|
|
4640
|
+
readonly conditional: true;
|
|
4641
|
+
readonly note: string;
|
|
4642
|
+
};
|
|
4643
|
+
readonly overview: {
|
|
4644
|
+
readonly before: "storedetaileddescription";
|
|
4645
|
+
readonly after: "custitem_product_description";
|
|
4646
|
+
readonly target: "overview";
|
|
4647
|
+
readonly policy: "always";
|
|
4648
|
+
readonly conditional: true;
|
|
4649
|
+
};
|
|
4650
|
+
readonly pageTitle: {
|
|
4651
|
+
readonly before: "pagetitle";
|
|
4652
|
+
readonly after: "custitem_page_title";
|
|
4653
|
+
readonly target: "seoMetaData.title";
|
|
4654
|
+
readonly policy: "always";
|
|
4655
|
+
readonly conditional: true;
|
|
4656
|
+
};
|
|
4657
|
+
readonly online: {
|
|
4658
|
+
readonly before: "isonline";
|
|
4659
|
+
readonly after: "custitem_display_online";
|
|
4660
|
+
readonly target: "isOnline";
|
|
4661
|
+
readonly policy: "always";
|
|
4662
|
+
readonly conditional: true;
|
|
4663
|
+
readonly note: string;
|
|
4664
|
+
};
|
|
4665
|
+
readonly saleType: {
|
|
4666
|
+
readonly before: "dontshowprice";
|
|
4667
|
+
readonly after: "custitem_quote_only";
|
|
4668
|
+
readonly target: "saleType";
|
|
4669
|
+
readonly policy: "always";
|
|
4670
|
+
readonly conditional: true;
|
|
4671
|
+
readonly note: "Derived from the quote-only flag and the price by saleTypeOf, so it is recomputed on every refresh.";
|
|
4672
|
+
};
|
|
4673
|
+
readonly quoteOnly: {
|
|
4674
|
+
readonly before: "dontshowprice";
|
|
4675
|
+
readonly after: "custitem_quote_only";
|
|
4676
|
+
readonly target: "metaData.quoteOnly";
|
|
4677
|
+
readonly policy: "seed";
|
|
4678
|
+
readonly note: "Written only at creation, so a later flip in NetSuite is never picked up.";
|
|
4679
|
+
};
|
|
4680
|
+
readonly image: {
|
|
4681
|
+
readonly before: "storedisplayimage";
|
|
4682
|
+
readonly after: "custitem_itemimages";
|
|
4683
|
+
readonly target: "images";
|
|
4684
|
+
readonly policy: "always";
|
|
4685
|
+
readonly conditional: true;
|
|
4686
|
+
readonly note: "Before is a file id needing a lookup; after is a ready CDN URL.";
|
|
4687
|
+
};
|
|
4688
|
+
readonly category: {
|
|
4689
|
+
readonly before: "commercecategoryitemassociation.category";
|
|
4690
|
+
readonly after: "custitem_primary_category";
|
|
4691
|
+
readonly target: "category";
|
|
4692
|
+
readonly policy: "always";
|
|
4693
|
+
readonly conditional: true;
|
|
4694
|
+
readonly note: string;
|
|
4695
|
+
};
|
|
4696
|
+
readonly seoDescription: {
|
|
4697
|
+
readonly before: "metataghtml";
|
|
4698
|
+
readonly after: "custitem_meta_description";
|
|
4699
|
+
readonly target: "seoMetaData.description";
|
|
4700
|
+
readonly policy: "always";
|
|
4701
|
+
readonly conditional: true;
|
|
4702
|
+
readonly note: "The replacement exists but carries no data yet.";
|
|
4703
|
+
};
|
|
4704
|
+
readonly brand: {
|
|
4705
|
+
readonly before: "manufacturer";
|
|
4706
|
+
readonly target: "brand";
|
|
4707
|
+
readonly policy: "always";
|
|
4708
|
+
readonly conditional: true;
|
|
4709
|
+
readonly note: string;
|
|
4710
|
+
};
|
|
4711
|
+
readonly googleCategory: {
|
|
4712
|
+
readonly after: "custitemproducttype";
|
|
4713
|
+
readonly target: "googleCategory";
|
|
4714
|
+
readonly policy: "always";
|
|
4715
|
+
readonly conditional: true;
|
|
4716
|
+
readonly note: string;
|
|
4717
|
+
};
|
|
4718
|
+
readonly department: {
|
|
4719
|
+
readonly after: "custitemfas_product_category";
|
|
4720
|
+
readonly target: "department";
|
|
4721
|
+
readonly policy: "always";
|
|
4722
|
+
readonly conditional: true;
|
|
4723
|
+
readonly note: string;
|
|
4724
|
+
};
|
|
4725
|
+
readonly imageAlt: {
|
|
4726
|
+
readonly after: "custitemaltimgtext";
|
|
4727
|
+
readonly target: "images.alt";
|
|
4728
|
+
readonly policy: "always";
|
|
4729
|
+
readonly conditional: true;
|
|
4730
|
+
readonly note: string;
|
|
4731
|
+
};
|
|
4732
|
+
readonly family: {
|
|
4733
|
+
readonly after: "custitem_family";
|
|
4734
|
+
readonly target: "metaData.family";
|
|
4735
|
+
readonly policy: "seed";
|
|
4736
|
+
readonly pending: true;
|
|
4737
|
+
readonly note: "Populated on 17,552 items. No storefront field consumes it yet.";
|
|
4738
|
+
};
|
|
4739
|
+
readonly primaryCategory: {
|
|
4740
|
+
readonly before: "commercecategoryitemassociation.primarycategory";
|
|
4741
|
+
readonly after: "custitem_primary_category";
|
|
4742
|
+
readonly target: "metaData.primaryCategory";
|
|
4743
|
+
readonly policy: "seed";
|
|
4744
|
+
readonly note: string;
|
|
4745
|
+
};
|
|
4746
|
+
readonly additionalCategories: {
|
|
4747
|
+
readonly sourceTable: "commercecategoryitemassociation";
|
|
4748
|
+
readonly after: "custitem_additional_categories";
|
|
4749
|
+
readonly target: "categories";
|
|
4750
|
+
readonly policy: "always";
|
|
4751
|
+
readonly note: string;
|
|
4752
|
+
readonly caution: string;
|
|
4753
|
+
};
|
|
4754
|
+
readonly micrositeDescription: {
|
|
4755
|
+
readonly after: "custitem_microsite_description";
|
|
4756
|
+
readonly target: "metaData.micrositeDescription";
|
|
4757
|
+
readonly policy: "seed";
|
|
4758
|
+
readonly pending: true;
|
|
4759
|
+
readonly note: "Populated on 2,284 items.";
|
|
4760
|
+
};
|
|
4761
|
+
readonly features: {
|
|
4762
|
+
readonly after: "custitem_features";
|
|
4763
|
+
readonly target: "metaData.features";
|
|
4764
|
+
readonly policy: "seed";
|
|
4765
|
+
readonly pending: true;
|
|
4766
|
+
readonly note: "Field exists in NetSuite and carries no data yet.";
|
|
4767
|
+
};
|
|
4768
|
+
readonly childStoreOnly: {
|
|
4769
|
+
readonly after: "custitem_child_store_only";
|
|
4770
|
+
readonly target: "childOnly";
|
|
4771
|
+
readonly policy: "seed";
|
|
4772
|
+
readonly pending: true;
|
|
4773
|
+
readonly note: "Nothing is flagged yet. Our stores[] array already covers this.";
|
|
4774
|
+
};
|
|
4775
|
+
}>;
|
|
4776
|
+
readonly addon: NetsuiteFieldProvider<{
|
|
4777
|
+
readonly netsuiteItemId: {
|
|
4778
|
+
readonly before: "item.id";
|
|
4779
|
+
readonly target: "netsuite.itemId";
|
|
4780
|
+
readonly policy: "always";
|
|
4781
|
+
readonly conditional: true;
|
|
4782
|
+
readonly note: string;
|
|
4783
|
+
};
|
|
4784
|
+
readonly netsuiteItemName: {
|
|
4785
|
+
readonly before: "item.itemid";
|
|
4786
|
+
readonly target: "netsuite.itemName";
|
|
4787
|
+
readonly policy: "always";
|
|
4788
|
+
readonly conditional: true;
|
|
4789
|
+
readonly note: "A native NetSuite item field, not a SuiteCommerce one, so it survives the cutover.";
|
|
4790
|
+
};
|
|
4791
|
+
readonly groupAndOption: {
|
|
4792
|
+
readonly before: "storedisplayname";
|
|
4793
|
+
readonly target: "name";
|
|
4794
|
+
readonly policy: "always";
|
|
4795
|
+
readonly conditional: true;
|
|
4796
|
+
readonly identity: true;
|
|
4797
|
+
readonly note: string;
|
|
4798
|
+
};
|
|
4799
|
+
readonly key: {
|
|
4800
|
+
readonly before: "urlcomponent";
|
|
4801
|
+
readonly target: "key";
|
|
4802
|
+
readonly policy: "always";
|
|
4803
|
+
readonly identity: true;
|
|
4804
|
+
readonly note: string;
|
|
4805
|
+
readonly caution: "Changing urlcomponent in NetSuite orphans the existing add-on and creates a new one.";
|
|
4806
|
+
};
|
|
4807
|
+
readonly active: {
|
|
4808
|
+
readonly before: "isinactive";
|
|
4809
|
+
readonly target: "status";
|
|
4810
|
+
readonly policy: "always";
|
|
4811
|
+
readonly conditional: true;
|
|
4812
|
+
readonly note: string;
|
|
4813
|
+
};
|
|
4814
|
+
readonly visible: {
|
|
4815
|
+
readonly before: "isonline";
|
|
4816
|
+
readonly target: "isVisible";
|
|
4817
|
+
readonly policy: "always";
|
|
4818
|
+
readonly conditional: true;
|
|
4819
|
+
readonly note: string;
|
|
4820
|
+
};
|
|
4821
|
+
readonly pricingType: {
|
|
4822
|
+
readonly target: "pricingType";
|
|
4823
|
+
readonly policy: "seed";
|
|
4824
|
+
readonly note: string;
|
|
4825
|
+
};
|
|
4826
|
+
readonly price: {
|
|
4827
|
+
readonly before: "itemprice at price level 1";
|
|
4828
|
+
readonly target: "price";
|
|
4829
|
+
readonly policy: "always";
|
|
4830
|
+
readonly conditional: true;
|
|
4831
|
+
readonly note: "Base price. An option with no level-1 price is reported by the sync rather than written as $0.";
|
|
4832
|
+
};
|
|
4833
|
+
readonly sellingPoints: {
|
|
4834
|
+
readonly before: "salesdescription";
|
|
4835
|
+
readonly target: "description";
|
|
4836
|
+
readonly policy: "always";
|
|
4837
|
+
readonly conditional: true;
|
|
4838
|
+
readonly note: string;
|
|
4839
|
+
};
|
|
4840
|
+
readonly detail: {
|
|
4841
|
+
readonly before: "storedetaileddescription";
|
|
4842
|
+
readonly target: "longDescription";
|
|
4843
|
+
readonly policy: "always";
|
|
4844
|
+
readonly conditional: true;
|
|
4845
|
+
readonly note: string;
|
|
4846
|
+
};
|
|
4847
|
+
readonly priceBand: {
|
|
4848
|
+
readonly before: "featureddescription";
|
|
4849
|
+
readonly target: "appliesFromPrice / appliesToPrice";
|
|
4850
|
+
readonly policy: "always";
|
|
4851
|
+
readonly conditional: true;
|
|
4852
|
+
readonly note: string;
|
|
4853
|
+
};
|
|
4854
|
+
readonly eligibilityGate: {
|
|
4855
|
+
readonly before: "custitem520";
|
|
4856
|
+
readonly target: "AddonGroup.netsuite.requiresField";
|
|
4857
|
+
readonly policy: "seed";
|
|
4858
|
+
readonly note: string;
|
|
4859
|
+
};
|
|
4860
|
+
}>;
|
|
4861
|
+
readonly brand: NetsuiteFieldProvider<{
|
|
4862
|
+
readonly name: {
|
|
4863
|
+
readonly before: "commercecategory.name";
|
|
4864
|
+
readonly after: "item.manufacturer";
|
|
4865
|
+
readonly target: "name";
|
|
4866
|
+
readonly policy: "always";
|
|
4867
|
+
};
|
|
4868
|
+
readonly online: {
|
|
4869
|
+
readonly before: "isonline";
|
|
4870
|
+
readonly after: "custitem_display_online";
|
|
4871
|
+
readonly target: "isOnline";
|
|
4872
|
+
readonly policy: "always";
|
|
4873
|
+
};
|
|
4874
|
+
readonly netsuiteId: {
|
|
4875
|
+
readonly before: "commercecategory.id";
|
|
4876
|
+
readonly target: "netsuiteId";
|
|
4877
|
+
readonly policy: "always";
|
|
4878
|
+
readonly conditional: true;
|
|
4879
|
+
readonly note: "No successor. The manufacturer name becomes the key.";
|
|
4880
|
+
};
|
|
4881
|
+
readonly slug: {
|
|
4882
|
+
readonly before: "commercecategory.urlfragment";
|
|
4883
|
+
readonly target: "slug";
|
|
4884
|
+
readonly policy: "seed";
|
|
4885
|
+
readonly identity: true;
|
|
4886
|
+
readonly note: string;
|
|
4887
|
+
readonly caution: string;
|
|
4888
|
+
};
|
|
4889
|
+
readonly logo: {
|
|
4890
|
+
readonly before: "thumbnail";
|
|
4891
|
+
readonly target: "logo";
|
|
4892
|
+
readonly policy: "always";
|
|
4893
|
+
readonly conditional: true;
|
|
4894
|
+
readonly note: "No successor. custrecord35 holds the same logo as a plain URL on all 52 brands.";
|
|
4895
|
+
};
|
|
4896
|
+
readonly description: {
|
|
4897
|
+
readonly before: "commercecategory.description";
|
|
4898
|
+
readonly target: "description";
|
|
4899
|
+
readonly policy: "always";
|
|
4900
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
4901
|
+
};
|
|
4902
|
+
readonly sortOrder: {
|
|
4903
|
+
readonly before: "sequencenumber";
|
|
4904
|
+
readonly target: "sortOrder";
|
|
4905
|
+
readonly policy: "always";
|
|
4906
|
+
readonly conditional: true;
|
|
4907
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
4908
|
+
};
|
|
4909
|
+
readonly seoTitle: {
|
|
4910
|
+
readonly before: "pagetitle";
|
|
4911
|
+
readonly target: "seoMetaData.title";
|
|
4912
|
+
readonly policy: "always";
|
|
4913
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
4914
|
+
};
|
|
4915
|
+
readonly seoDescription: {
|
|
4916
|
+
readonly before: "metadescription";
|
|
4917
|
+
readonly target: "seoMetaData.description";
|
|
4918
|
+
readonly policy: "always";
|
|
4919
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
4920
|
+
};
|
|
4921
|
+
readonly seoKeywords: {
|
|
4922
|
+
readonly before: "metakeywords";
|
|
4923
|
+
readonly target: "seoMetaData.keywords";
|
|
4924
|
+
readonly policy: "always";
|
|
4925
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
4926
|
+
};
|
|
4927
|
+
readonly status: {
|
|
4928
|
+
readonly before: "isinactive + displayinsite";
|
|
4929
|
+
readonly target: "status";
|
|
4930
|
+
readonly policy: "always";
|
|
4931
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
4932
|
+
};
|
|
4933
|
+
readonly headerTag: {
|
|
4934
|
+
readonly before: "pageheading";
|
|
4935
|
+
readonly target: "seoMetaData.headerTag";
|
|
4936
|
+
readonly policy: "always";
|
|
4937
|
+
readonly note: string;
|
|
4938
|
+
};
|
|
4939
|
+
readonly banners: {
|
|
4940
|
+
readonly before: "pagebanner";
|
|
4941
|
+
readonly target: "banners";
|
|
4942
|
+
readonly policy: "seed";
|
|
4943
|
+
readonly note: string;
|
|
4944
|
+
};
|
|
4945
|
+
readonly logoUrl: {
|
|
4946
|
+
readonly before: "custrecord35";
|
|
4947
|
+
readonly target: "logo";
|
|
4948
|
+
readonly policy: "seed";
|
|
4949
|
+
readonly pending: true;
|
|
4950
|
+
readonly note: "A plain logo URL on all 52 brands, needing no file lookup. Never imported.";
|
|
4951
|
+
};
|
|
4952
|
+
}>;
|
|
4953
|
+
readonly category: NetsuiteFieldProvider<{
|
|
4954
|
+
readonly name: {
|
|
4955
|
+
readonly before: "commercecategory.name";
|
|
4956
|
+
readonly after: "custitem_category";
|
|
4957
|
+
readonly target: "name";
|
|
4958
|
+
readonly policy: "always";
|
|
4959
|
+
readonly note: "After is a flat string stamped on the item, not a record.";
|
|
4960
|
+
};
|
|
4961
|
+
readonly online: {
|
|
4962
|
+
readonly before: "isonline";
|
|
4963
|
+
readonly after: "custitem_display_online";
|
|
4964
|
+
readonly target: "isOnline";
|
|
4965
|
+
readonly policy: "always";
|
|
4966
|
+
};
|
|
4967
|
+
readonly netsuiteId: {
|
|
4968
|
+
readonly before: "commercecategory.id";
|
|
4969
|
+
readonly target: "netsuiteId";
|
|
4970
|
+
readonly policy: "always";
|
|
4971
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
4972
|
+
};
|
|
4973
|
+
readonly slug: {
|
|
4974
|
+
readonly before: "urlfragment";
|
|
4975
|
+
readonly target: "slug";
|
|
4976
|
+
readonly policy: "seed";
|
|
4977
|
+
readonly identity: true;
|
|
4978
|
+
readonly note: string;
|
|
4979
|
+
readonly caution: string;
|
|
4980
|
+
};
|
|
4981
|
+
readonly image: {
|
|
4982
|
+
readonly before: "thumbnail";
|
|
4983
|
+
readonly target: "image";
|
|
4984
|
+
readonly policy: "always";
|
|
4985
|
+
readonly note: "No successor. custrecord35 holds 3,735 of these as plain URLs.";
|
|
4986
|
+
};
|
|
4987
|
+
readonly description: {
|
|
4988
|
+
readonly before: "commercecategory.description";
|
|
4989
|
+
readonly target: "description";
|
|
4990
|
+
readonly policy: "always";
|
|
4991
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
4992
|
+
};
|
|
4993
|
+
readonly sortOrder: {
|
|
4994
|
+
readonly before: "sequencenumber";
|
|
4995
|
+
readonly target: "sortOrder";
|
|
4996
|
+
readonly policy: "always";
|
|
4997
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
4998
|
+
};
|
|
4999
|
+
readonly seoTitle: {
|
|
5000
|
+
readonly before: "pagetitle";
|
|
5001
|
+
readonly target: "seoMetaData.title";
|
|
5002
|
+
readonly policy: "always";
|
|
5003
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
5004
|
+
};
|
|
5005
|
+
readonly seoDescription: {
|
|
5006
|
+
readonly before: "metadescription";
|
|
5007
|
+
readonly target: "seoMetaData.description";
|
|
5008
|
+
readonly policy: "always";
|
|
5009
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
5010
|
+
};
|
|
5011
|
+
readonly seoKeywords: {
|
|
5012
|
+
readonly before: "metakeywords";
|
|
5013
|
+
readonly target: "seoMetaData.keywords";
|
|
5014
|
+
readonly policy: "always";
|
|
5015
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
5016
|
+
};
|
|
5017
|
+
readonly status: {
|
|
5018
|
+
readonly before: "isinactive + displayinsite";
|
|
5019
|
+
readonly target: "status";
|
|
5020
|
+
readonly policy: "always";
|
|
5021
|
+
readonly note: "No successor. Snapshot it before SuiteCommerce is retired, then it is ours.";
|
|
5022
|
+
};
|
|
5023
|
+
readonly parent: {
|
|
5024
|
+
readonly before: "primaryparent";
|
|
5025
|
+
readonly after: "custitem_primary_category";
|
|
5026
|
+
readonly target: "parent";
|
|
5027
|
+
readonly policy: "always";
|
|
5028
|
+
readonly note: "The single primary parent. Mirrors NetSuite on every sync, so a parent changed here is overwritten. After is populated on only 3,150 items.";
|
|
5029
|
+
};
|
|
5030
|
+
readonly subcategories: {
|
|
5031
|
+
readonly before: "commercecategoryassociation.subcategory";
|
|
5032
|
+
readonly target: "subcategories";
|
|
5033
|
+
readonly policy: "always";
|
|
5034
|
+
readonly note: "The children list, rebuilt from the association table on every sync — NetSuite categories are multi-parent, so 23% of them sit under more than one. `primaryparent` alone misses those. Edits here are overwritten.";
|
|
5035
|
+
readonly caution: "The association row also carries nameoverride / urlfragmentoverride / thumbnailoverride per parent, so the same category is labelled differently under each. Those overrides are applied for the primary parent only.";
|
|
5036
|
+
};
|
|
5037
|
+
readonly headerTag: {
|
|
5038
|
+
readonly before: "pageheading";
|
|
5039
|
+
readonly target: "seoMetaData.headerTag";
|
|
5040
|
+
readonly policy: "always";
|
|
5041
|
+
readonly note: "The H1, on 4,789 categories. addtohead is head markup and is not a substitute.";
|
|
5042
|
+
};
|
|
5043
|
+
readonly banners: {
|
|
5044
|
+
readonly before: "pagebanner";
|
|
5045
|
+
readonly target: "banners";
|
|
5046
|
+
readonly policy: "seed";
|
|
5047
|
+
readonly note: "Seeded from pagebanner on first import; 50 categories carry one. Edits here are never overwritten.";
|
|
5048
|
+
};
|
|
5049
|
+
readonly imageUrl: {
|
|
5050
|
+
readonly before: "custrecord35";
|
|
5051
|
+
readonly target: "image";
|
|
5052
|
+
readonly policy: "seed";
|
|
5053
|
+
readonly pending: true;
|
|
5054
|
+
readonly note: "A plain image URL on 3,735 categories, needing no file lookup. Never imported.";
|
|
5055
|
+
};
|
|
5056
|
+
readonly faq: {
|
|
5057
|
+
readonly before: "custrecord_faq_q1";
|
|
5058
|
+
readonly target: "metaData.faq";
|
|
5059
|
+
readonly policy: "seed";
|
|
5060
|
+
readonly pending: true;
|
|
5061
|
+
readonly note: "Ten question and answer pairs on 34 categories. Editorial copy held nowhere else.";
|
|
5062
|
+
};
|
|
5063
|
+
}>;
|
|
5064
|
+
readonly coupon: NetsuiteFieldProvider<{
|
|
5065
|
+
promotionId: {
|
|
5066
|
+
before: string;
|
|
5067
|
+
target: string;
|
|
5068
|
+
policy: "always";
|
|
5069
|
+
conditional: true;
|
|
5070
|
+
note: string;
|
|
5071
|
+
};
|
|
5072
|
+
title: {
|
|
5073
|
+
before: string;
|
|
5074
|
+
target: string;
|
|
5075
|
+
policy: "always";
|
|
5076
|
+
conditional: true;
|
|
5077
|
+
note: string;
|
|
5078
|
+
};
|
|
5079
|
+
promotionName: {
|
|
5080
|
+
before: string;
|
|
5081
|
+
target: string;
|
|
5082
|
+
policy: "always";
|
|
5083
|
+
conditional: true;
|
|
5084
|
+
note: string;
|
|
5085
|
+
};
|
|
5086
|
+
couponCode: {
|
|
5087
|
+
before: string;
|
|
5088
|
+
target: string;
|
|
5089
|
+
policy: "always";
|
|
5090
|
+
identity: true;
|
|
5091
|
+
note: string;
|
|
5092
|
+
caution: string;
|
|
5093
|
+
};
|
|
5094
|
+
discountType: {
|
|
5095
|
+
before: string;
|
|
5096
|
+
target: string;
|
|
5097
|
+
policy: "always";
|
|
5098
|
+
conditional: true;
|
|
5099
|
+
note: string;
|
|
5100
|
+
};
|
|
5101
|
+
discountValue: {
|
|
5102
|
+
before: string;
|
|
5103
|
+
target: string;
|
|
5104
|
+
policy: "always";
|
|
5105
|
+
conditional: true;
|
|
5106
|
+
note: string;
|
|
5107
|
+
};
|
|
5108
|
+
startTime: {
|
|
5109
|
+
before: string;
|
|
5110
|
+
target: string;
|
|
5111
|
+
policy: "always";
|
|
5112
|
+
conditional: true;
|
|
5113
|
+
note: string;
|
|
5114
|
+
};
|
|
5115
|
+
endTime: {
|
|
5116
|
+
before: string;
|
|
5117
|
+
target: string;
|
|
5118
|
+
policy: "always";
|
|
5119
|
+
conditional: true;
|
|
5120
|
+
note: string;
|
|
5121
|
+
};
|
|
5122
|
+
status: {
|
|
5123
|
+
before: string;
|
|
5124
|
+
target: string;
|
|
5125
|
+
policy: "always";
|
|
5126
|
+
conditional: true;
|
|
5127
|
+
note: string;
|
|
5128
|
+
};
|
|
5129
|
+
discountItemId: {
|
|
5130
|
+
before: string;
|
|
5131
|
+
target: string;
|
|
5132
|
+
policy: "always";
|
|
5133
|
+
conditional: true;
|
|
5134
|
+
note: string;
|
|
5135
|
+
};
|
|
5136
|
+
discountItemName: {
|
|
5137
|
+
before: string;
|
|
5138
|
+
target: string;
|
|
5139
|
+
policy: "always";
|
|
5140
|
+
conditional: true;
|
|
5141
|
+
note: string;
|
|
5142
|
+
};
|
|
5143
|
+
discountReducesTax: {
|
|
5144
|
+
before: string;
|
|
5145
|
+
target: string;
|
|
5146
|
+
policy: "always";
|
|
5147
|
+
conditional: true;
|
|
5148
|
+
note: string;
|
|
5149
|
+
};
|
|
5150
|
+
applyDiscountTo: {
|
|
5151
|
+
before: string;
|
|
5152
|
+
target: string;
|
|
5153
|
+
policy: "always";
|
|
5154
|
+
conditional: true;
|
|
5155
|
+
note: string;
|
|
5156
|
+
};
|
|
5157
|
+
freeShipping: {
|
|
5158
|
+
before: string;
|
|
5159
|
+
target: string;
|
|
5160
|
+
policy: "always";
|
|
5161
|
+
conditional: true;
|
|
5162
|
+
note: string;
|
|
5163
|
+
};
|
|
5164
|
+
description: {
|
|
5165
|
+
before: string;
|
|
5166
|
+
target: string;
|
|
5167
|
+
policy: "always";
|
|
5168
|
+
conditional: true;
|
|
5169
|
+
note: string;
|
|
5170
|
+
};
|
|
5171
|
+
isPromotional: {
|
|
5172
|
+
before: string;
|
|
5173
|
+
target: string;
|
|
5174
|
+
policy: "always";
|
|
5175
|
+
conditional: true;
|
|
5176
|
+
note: string;
|
|
5177
|
+
};
|
|
5178
|
+
singleUse: {
|
|
5179
|
+
before: string;
|
|
5180
|
+
target: string;
|
|
5181
|
+
policy: "always";
|
|
5182
|
+
conditional: true;
|
|
5183
|
+
note: string;
|
|
5184
|
+
};
|
|
5185
|
+
itemRestrictions: {
|
|
5186
|
+
before: string;
|
|
5187
|
+
target: string;
|
|
5188
|
+
policy: "always";
|
|
5189
|
+
conditional: true;
|
|
5190
|
+
note: string;
|
|
5191
|
+
};
|
|
5192
|
+
minimumAmount: {
|
|
5193
|
+
before: string;
|
|
5194
|
+
target: string;
|
|
5195
|
+
policy: "always";
|
|
5196
|
+
conditional: true;
|
|
5197
|
+
note: string;
|
|
5198
|
+
};
|
|
5199
|
+
stores: {
|
|
5200
|
+
target: string;
|
|
5201
|
+
policy: "seed";
|
|
5202
|
+
note: string;
|
|
5203
|
+
};
|
|
5204
|
+
}>;
|
|
5205
|
+
readonly podcast: NetsuiteFieldProvider<{
|
|
5206
|
+
guid: {
|
|
5207
|
+
before: string;
|
|
5208
|
+
target: string;
|
|
5209
|
+
policy: "always";
|
|
5210
|
+
conditional: true;
|
|
5211
|
+
note: string;
|
|
5212
|
+
};
|
|
5213
|
+
title: {
|
|
5214
|
+
before: string;
|
|
5215
|
+
target: string;
|
|
5216
|
+
policy: "always";
|
|
5217
|
+
conditional: true;
|
|
5218
|
+
note: string;
|
|
5219
|
+
};
|
|
5220
|
+
slug: {
|
|
5221
|
+
target: string;
|
|
5222
|
+
policy: "seed";
|
|
5223
|
+
identity: true;
|
|
5224
|
+
note: string;
|
|
5225
|
+
caution: string;
|
|
5226
|
+
};
|
|
5227
|
+
summary: {
|
|
5228
|
+
before: string;
|
|
5229
|
+
target: string;
|
|
5230
|
+
policy: "always";
|
|
5231
|
+
conditional: true;
|
|
5232
|
+
note: string;
|
|
5233
|
+
};
|
|
5234
|
+
showNotes: {
|
|
5235
|
+
before: string;
|
|
5236
|
+
target: string;
|
|
5237
|
+
policy: "always";
|
|
5238
|
+
conditional: true;
|
|
5239
|
+
note: string;
|
|
5240
|
+
};
|
|
5241
|
+
audioUrl: {
|
|
5242
|
+
before: string;
|
|
5243
|
+
target: string;
|
|
5244
|
+
policy: "always";
|
|
5245
|
+
conditional: true;
|
|
5246
|
+
note: string;
|
|
5247
|
+
};
|
|
5248
|
+
artwork: {
|
|
5249
|
+
before: string;
|
|
5250
|
+
target: string;
|
|
5251
|
+
policy: "always";
|
|
5252
|
+
conditional: true;
|
|
5253
|
+
note: string;
|
|
5254
|
+
};
|
|
5255
|
+
durationSeconds: {
|
|
5256
|
+
before: string;
|
|
5257
|
+
target: string;
|
|
5258
|
+
policy: "always";
|
|
5259
|
+
conditional: true;
|
|
5260
|
+
note: string;
|
|
5261
|
+
};
|
|
5262
|
+
episodeNumber: {
|
|
5263
|
+
before: string;
|
|
5264
|
+
target: string;
|
|
5265
|
+
policy: "always";
|
|
5266
|
+
conditional: true;
|
|
5267
|
+
note: string;
|
|
5268
|
+
};
|
|
5269
|
+
seasonNumber: {
|
|
5270
|
+
before: string;
|
|
5271
|
+
target: string;
|
|
5272
|
+
policy: "always";
|
|
5273
|
+
conditional: true;
|
|
5274
|
+
note: string;
|
|
5275
|
+
};
|
|
5276
|
+
publishedAt: {
|
|
5277
|
+
before: string;
|
|
5278
|
+
target: string;
|
|
5279
|
+
policy: "always";
|
|
5280
|
+
conditional: true;
|
|
5281
|
+
note: string;
|
|
5282
|
+
};
|
|
5283
|
+
externalUrl: {
|
|
5284
|
+
before: string;
|
|
5285
|
+
target: string;
|
|
5286
|
+
policy: "always";
|
|
5287
|
+
conditional: true;
|
|
5288
|
+
note: string;
|
|
5289
|
+
};
|
|
5290
|
+
seoTitle: {
|
|
5291
|
+
before: string;
|
|
5292
|
+
target: string;
|
|
5293
|
+
policy: "always";
|
|
5294
|
+
conditional: true;
|
|
5295
|
+
note: string;
|
|
5296
|
+
};
|
|
5297
|
+
seoDescription: {
|
|
5298
|
+
before: string;
|
|
5299
|
+
target: string;
|
|
5300
|
+
policy: "always";
|
|
5301
|
+
conditional: true;
|
|
5302
|
+
note: string;
|
|
5303
|
+
};
|
|
5304
|
+
transcript: {
|
|
5305
|
+
target: string;
|
|
5306
|
+
policy: "seed";
|
|
5307
|
+
note: string;
|
|
5308
|
+
};
|
|
5309
|
+
relatedProducts: {
|
|
5310
|
+
target: string;
|
|
5311
|
+
policy: "seed";
|
|
5312
|
+
note: string;
|
|
5313
|
+
};
|
|
5314
|
+
stores: {
|
|
5315
|
+
target: string;
|
|
5316
|
+
policy: "seed";
|
|
5317
|
+
note: string;
|
|
5318
|
+
};
|
|
5319
|
+
status: {
|
|
5320
|
+
target: string;
|
|
5321
|
+
policy: "seed";
|
|
5322
|
+
note: string;
|
|
5323
|
+
};
|
|
5324
|
+
isOnline: {
|
|
5325
|
+
target: string;
|
|
5326
|
+
policy: "seed";
|
|
5327
|
+
note: string;
|
|
5328
|
+
};
|
|
5329
|
+
}>;
|
|
5330
|
+
readonly blog: NetsuiteFieldProvider<{
|
|
5331
|
+
netsuiteId: {
|
|
5332
|
+
before: string;
|
|
5333
|
+
target: string;
|
|
5334
|
+
policy: "always";
|
|
5335
|
+
conditional: true;
|
|
5336
|
+
note: string;
|
|
5337
|
+
};
|
|
5338
|
+
netsuitePostId: {
|
|
5339
|
+
before: string;
|
|
5340
|
+
target: string;
|
|
5341
|
+
policy: "always";
|
|
5342
|
+
conditional: true;
|
|
5343
|
+
note: string;
|
|
5344
|
+
};
|
|
5345
|
+
title: {
|
|
5346
|
+
before: string;
|
|
5347
|
+
target: string;
|
|
5348
|
+
policy: "always";
|
|
5349
|
+
conditional: true;
|
|
5350
|
+
note: string;
|
|
5351
|
+
};
|
|
5352
|
+
slug: {
|
|
5353
|
+
before: string;
|
|
5354
|
+
target: string;
|
|
5355
|
+
policy: "always";
|
|
5356
|
+
conditional: true;
|
|
5357
|
+
note: string;
|
|
5358
|
+
caution: string;
|
|
5359
|
+
};
|
|
5360
|
+
subtitle: {
|
|
5361
|
+
before: string;
|
|
5362
|
+
target: string;
|
|
5363
|
+
policy: "always";
|
|
5364
|
+
conditional: true;
|
|
5365
|
+
note: string;
|
|
5366
|
+
};
|
|
5367
|
+
content: {
|
|
5368
|
+
before: string;
|
|
5369
|
+
target: string;
|
|
5370
|
+
policy: "always";
|
|
5371
|
+
conditional: true;
|
|
5372
|
+
note: string;
|
|
5373
|
+
};
|
|
5374
|
+
publishedAt: {
|
|
5375
|
+
before: string;
|
|
5376
|
+
target: string;
|
|
5377
|
+
policy: "always";
|
|
5378
|
+
conditional: true;
|
|
5379
|
+
note: string;
|
|
5380
|
+
};
|
|
5381
|
+
author: {
|
|
5382
|
+
before: string;
|
|
5383
|
+
target: string;
|
|
5384
|
+
policy: "always";
|
|
5385
|
+
conditional: true;
|
|
5386
|
+
note: string;
|
|
5387
|
+
};
|
|
5388
|
+
category: {
|
|
5389
|
+
before: string;
|
|
5390
|
+
target: string;
|
|
5391
|
+
policy: "always";
|
|
5392
|
+
conditional: true;
|
|
5393
|
+
note: string;
|
|
5394
|
+
};
|
|
5395
|
+
headerImage: {
|
|
5396
|
+
before: string;
|
|
5397
|
+
target: string;
|
|
5398
|
+
policy: "always";
|
|
5399
|
+
conditional: true;
|
|
5400
|
+
note: string;
|
|
5401
|
+
};
|
|
5402
|
+
headerImageAlt: {
|
|
5403
|
+
before: string;
|
|
5404
|
+
target: string;
|
|
5405
|
+
policy: "always";
|
|
5406
|
+
conditional: true;
|
|
5407
|
+
note: string;
|
|
5408
|
+
};
|
|
5409
|
+
thumbnail: {
|
|
5410
|
+
before: string;
|
|
5411
|
+
target: string;
|
|
5412
|
+
policy: "always";
|
|
5413
|
+
conditional: true;
|
|
5414
|
+
note: string;
|
|
5415
|
+
};
|
|
5416
|
+
thumbnailAlt: {
|
|
5417
|
+
before: string;
|
|
5418
|
+
target: string;
|
|
5419
|
+
policy: "always";
|
|
5420
|
+
conditional: true;
|
|
5421
|
+
note: string;
|
|
5422
|
+
};
|
|
5423
|
+
excerpt: {
|
|
5424
|
+
before: string;
|
|
5425
|
+
target: string;
|
|
5426
|
+
policy: "always";
|
|
5427
|
+
conditional: true;
|
|
5428
|
+
note: string;
|
|
5429
|
+
};
|
|
5430
|
+
tags: {
|
|
5431
|
+
before: string;
|
|
5432
|
+
target: string;
|
|
5433
|
+
policy: "always";
|
|
5434
|
+
conditional: true;
|
|
5435
|
+
note: string;
|
|
5436
|
+
};
|
|
5437
|
+
pinnedTo: {
|
|
5438
|
+
before: string;
|
|
5439
|
+
target: string;
|
|
5440
|
+
policy: "always";
|
|
5441
|
+
conditional: true;
|
|
5442
|
+
note: string;
|
|
5443
|
+
};
|
|
5444
|
+
status: {
|
|
5445
|
+
before: string;
|
|
5446
|
+
target: string;
|
|
5447
|
+
policy: "always";
|
|
5448
|
+
conditional: true;
|
|
5449
|
+
note: string;
|
|
5450
|
+
};
|
|
5451
|
+
seoTitle: {
|
|
5452
|
+
before: string;
|
|
5453
|
+
target: string;
|
|
5454
|
+
policy: "always";
|
|
5455
|
+
conditional: true;
|
|
5456
|
+
note: string;
|
|
5457
|
+
};
|
|
5458
|
+
seoDescription: {
|
|
5459
|
+
before: string;
|
|
5460
|
+
target: string;
|
|
5461
|
+
policy: "always";
|
|
5462
|
+
conditional: true;
|
|
5463
|
+
note: string;
|
|
5464
|
+
};
|
|
5465
|
+
seoKeywords: {
|
|
5466
|
+
before: string;
|
|
5467
|
+
target: string;
|
|
5468
|
+
policy: "always";
|
|
5469
|
+
conditional: true;
|
|
5470
|
+
note: string;
|
|
5471
|
+
};
|
|
5472
|
+
headerTag: {
|
|
5473
|
+
before: string;
|
|
5474
|
+
target: string;
|
|
5475
|
+
policy: "always";
|
|
5476
|
+
conditional: true;
|
|
5477
|
+
note: string;
|
|
5478
|
+
};
|
|
5479
|
+
readingMinutes: {
|
|
5480
|
+
target: string;
|
|
5481
|
+
policy: "seed";
|
|
5482
|
+
note: string;
|
|
5483
|
+
};
|
|
5484
|
+
relatedProducts: {
|
|
5485
|
+
target: string;
|
|
5486
|
+
policy: "seed";
|
|
5487
|
+
note: string;
|
|
5488
|
+
};
|
|
5489
|
+
stores: {
|
|
5490
|
+
target: string;
|
|
5491
|
+
policy: "seed";
|
|
5492
|
+
note: string;
|
|
5493
|
+
};
|
|
5494
|
+
}>;
|
|
5495
|
+
readonly 'blog-author': NetsuiteFieldProvider<{
|
|
5496
|
+
netsuiteId: {
|
|
5497
|
+
before: string;
|
|
5498
|
+
target: string;
|
|
5499
|
+
policy: "always";
|
|
5500
|
+
conditional: true;
|
|
5501
|
+
note: string;
|
|
5502
|
+
};
|
|
5503
|
+
name: {
|
|
5504
|
+
before: string;
|
|
5505
|
+
target: string;
|
|
5506
|
+
policy: "always";
|
|
5507
|
+
conditional: true;
|
|
5508
|
+
note: string;
|
|
5509
|
+
};
|
|
5510
|
+
status: {
|
|
5511
|
+
before: string;
|
|
5512
|
+
target: string;
|
|
5513
|
+
policy: "always";
|
|
5514
|
+
conditional: true;
|
|
5515
|
+
note: string;
|
|
5516
|
+
};
|
|
5517
|
+
slug: {
|
|
5518
|
+
target: string;
|
|
5519
|
+
policy: "seed";
|
|
5520
|
+
identity: true;
|
|
5521
|
+
note: string;
|
|
5522
|
+
caution: string;
|
|
5523
|
+
};
|
|
5524
|
+
bio: {
|
|
5525
|
+
target: string;
|
|
5526
|
+
policy: "seed";
|
|
5527
|
+
note: string;
|
|
5528
|
+
};
|
|
5529
|
+
seoTitle: {
|
|
5530
|
+
target: string;
|
|
5531
|
+
policy: "seed";
|
|
5532
|
+
note: string;
|
|
5533
|
+
};
|
|
5534
|
+
seoDescription: {
|
|
5535
|
+
target: string;
|
|
5536
|
+
policy: "seed";
|
|
5537
|
+
note: string;
|
|
5538
|
+
};
|
|
5539
|
+
seoKeywords: {
|
|
5540
|
+
target: string;
|
|
5541
|
+
policy: "seed";
|
|
5542
|
+
note: string;
|
|
5543
|
+
};
|
|
5544
|
+
role: {
|
|
5545
|
+
target: string;
|
|
5546
|
+
policy: "seed";
|
|
5547
|
+
note: string;
|
|
5548
|
+
};
|
|
5549
|
+
avatar: {
|
|
5550
|
+
target: string;
|
|
5551
|
+
policy: "seed";
|
|
5552
|
+
note: string;
|
|
5553
|
+
};
|
|
5554
|
+
}>;
|
|
5555
|
+
readonly 'blog-category': NetsuiteFieldProvider<{
|
|
5556
|
+
netsuiteId: {
|
|
5557
|
+
before: string;
|
|
5558
|
+
target: string;
|
|
5559
|
+
policy: "always";
|
|
5560
|
+
conditional: true;
|
|
5561
|
+
note: string;
|
|
5562
|
+
};
|
|
5563
|
+
name: {
|
|
5564
|
+
before: string;
|
|
5565
|
+
target: string;
|
|
5566
|
+
policy: "always";
|
|
5567
|
+
conditional: true;
|
|
5568
|
+
note: string;
|
|
5569
|
+
};
|
|
5570
|
+
status: {
|
|
5571
|
+
before: string;
|
|
5572
|
+
target: string;
|
|
5573
|
+
policy: "always";
|
|
5574
|
+
conditional: true;
|
|
5575
|
+
note: string;
|
|
5576
|
+
};
|
|
5577
|
+
slug: {
|
|
5578
|
+
target: string;
|
|
5579
|
+
policy: "seed";
|
|
5580
|
+
identity: true;
|
|
5581
|
+
note: string;
|
|
5582
|
+
caution: string;
|
|
5583
|
+
};
|
|
5584
|
+
description: {
|
|
5585
|
+
target: string;
|
|
5586
|
+
policy: "seed";
|
|
5587
|
+
note: string;
|
|
5588
|
+
};
|
|
5589
|
+
seoTitle: {
|
|
5590
|
+
target: string;
|
|
5591
|
+
policy: "seed";
|
|
5592
|
+
note: string;
|
|
5593
|
+
};
|
|
5594
|
+
seoDescription: {
|
|
5595
|
+
target: string;
|
|
5596
|
+
policy: "seed";
|
|
5597
|
+
note: string;
|
|
5598
|
+
};
|
|
5599
|
+
seoKeywords: {
|
|
5600
|
+
target: string;
|
|
5601
|
+
policy: "seed";
|
|
5602
|
+
note: string;
|
|
5603
|
+
};
|
|
5604
|
+
image: {
|
|
5605
|
+
target: string;
|
|
5606
|
+
policy: "seed";
|
|
5607
|
+
note: string;
|
|
5608
|
+
};
|
|
5609
|
+
sortOrder: {
|
|
5610
|
+
target: string;
|
|
5611
|
+
policy: "seed";
|
|
5612
|
+
note: string;
|
|
5613
|
+
};
|
|
5614
|
+
}>;
|
|
5615
|
+
};
|
|
5616
|
+
type NetsuiteOwnedEntity = keyof typeof BY_ENTITY;
|
|
5617
|
+
declare const NETSUITE_OWNED_FIELDS: Record<NetsuiteOwnedEntity, readonly string[]>;
|
|
5618
|
+
declare const isNetsuiteOwned: (entity: NetsuiteOwnedEntity, field: string) => boolean;
|
|
5619
|
+
type SyncRisk = 'overwritten' | 'identity' | 'seeded' | 'ours';
|
|
5620
|
+
declare const netsuiteFieldRisk: (entity: NetsuiteOwnedEntity, field: string, linked?: boolean) => SyncRisk;
|
|
5621
|
+
declare const netsuiteFieldConditional: (entity: NetsuiteOwnedEntity, field: string) => boolean;
|
|
5622
|
+
interface FieldSource {
|
|
5623
|
+
now?: string;
|
|
5624
|
+
after?: string;
|
|
5625
|
+
}
|
|
5626
|
+
declare const netsuiteFieldSource: (entity: NetsuiteOwnedEntity, field: string) => FieldSource | undefined;
|
|
5627
|
+
declare const netsuiteFieldNote: (entity: NetsuiteOwnedEntity, field: string) => string | undefined;
|
|
5628
|
+
declare const netsuiteFieldCaution: (entity: NetsuiteOwnedEntity, field: string) => string | undefined;
|
|
5629
|
+
interface NetsuiteRelationSource {
|
|
5630
|
+
field: string;
|
|
5631
|
+
note?: string;
|
|
5632
|
+
}
|
|
5633
|
+
declare const netsuiteRelationSource: (groupKey: string) => NetsuiteRelationSource | undefined;
|
|
5634
|
+
declare const NETSUITE_RELATION_GROUPS: readonly string[];
|
|
5635
|
+
|
|
5636
|
+
/**
|
|
5637
|
+
* Which system owns an entity's data. Everything is NetSuite except the podcast, which is pulled from
|
|
5638
|
+
* the Apple Podcasts lookup feed — the flag must name the real owner, not "NetSuite".
|
|
5639
|
+
*/
|
|
5640
|
+
declare const syncOwnerFor: (entity: NetsuiteOwnedEntity) => string;
|
|
5641
|
+
|
|
1447
5642
|
interface CheckoutAddressInput {
|
|
1448
5643
|
addressLine1: string;
|
|
1449
5644
|
addressLine2?: string;
|
|
@@ -1501,7 +5696,7 @@ declare const NotificationTypeEnum: {
|
|
|
1501
5696
|
readonly QUOTE_REQUESTED: "QUOTE_REQUESTED";
|
|
1502
5697
|
};
|
|
1503
5698
|
type NotificationTypeEnum = (typeof NotificationTypeEnum)[keyof typeof NotificationTypeEnum];
|
|
1504
|
-
declare const NOTIFICATION_TYPE_VALUES: ("REFUND" | "
|
|
5699
|
+
declare const NOTIFICATION_TYPE_VALUES: ("REFUND" | "PAYMENT_FAILED" | "QUOTE_REQUESTED" | "ORDER_RECEIVED" | "ORDER_CANCELLED" | "PAYMENT_SUCCEEDED" | "ORDER_STATUS")[];
|
|
1505
5700
|
interface INotification extends BaseEntity {
|
|
1506
5701
|
type: NotificationTypeEnum;
|
|
1507
5702
|
title: string;
|
|
@@ -1524,4 +5719,4 @@ interface IWishlist extends BaseEntity {
|
|
|
1524
5719
|
items: IWishlistItem[];
|
|
1525
5720
|
}
|
|
1526
5721
|
|
|
1527
|
-
export { ACTIVE_SUBSCRIPTION_CHANNELS, ADMIN_ACTIONS, ADMIN_AUDIT_ACTIONS, ADMIN_RESOURCES, ADMIN_RESOURCE_LIST, ALL_STORES, AWAITING_PAYMENT_STATUSES, type AddonAmountInput, type AddonSelectionRef, type ApiResponse, type BaseEntity, CAMPAIGN_RECIPIENT_STATUS_VALUES, CAMPAIGN_STATUS_VALUES, CART_STATUS_VALUES, CONFIGURATOR_CONDITION_TYPE_VALUES, CONFIGURATOR_EFFECT_TYPE_VALUES, CONFIGURATOR_SELECT_MODE_VALUES, CONFIGURATOR_SOURCE_VALUES, CampaignRecipientStatusEnum, CampaignStatusEnum, type CartIssue, type CartIssueType, CartIssueTypes, CartStatusEnum, type CartValidation, type CheckoutAddressInput, type CheckoutPayload, type CheckoutResult, ConfiguratorConditionTypeEnum, ConfiguratorEffectTypeEnum, ConfiguratorErrorCodeEnum, type ConfiguratorEvalContext, type ConfiguratorEvalError, type ConfiguratorEvalResult, ConfiguratorSelectModeEnum, type ConfiguratorSelections, ConfiguratorSourceEnum, DEFAULT_SUBSCRIPTION_TOPICS, DiscountTypeEnum, EMAIL_TEMPLATE_EVENT_VALUES, EMAIL_TEMPLATE_VARIABLES_BY_EVENT, EMPTY_ACCESS, type EffectiveAccess, EmailTemplateEventEnum, FEE_APPLIES_TO_VALUES, FeeAppliesToEnum, type IAddonConfig, type IAddonGroup, type IAddress, type IAdmin, type IAdminAction, type IAdminAuditAction, type IAdminAuditLog, type IAdminBaseAction, type IAdminPermission, type IAdminResource, type IAdminRole, type IAdminRoleCreate, type IAdminSafe, type IAdminStoreAccess, type IAppliedFee, type IBannerSlide, type IBlogAuthor, type IBlogCategory, type
|
|
5722
|
+
export { ACTIVE_SUBSCRIPTION_CHANNELS, ADMIN_ACTIONS, ADMIN_AUDIT_ACTIONS, ADMIN_RESOURCES, ADMIN_RESOURCE_LIST, ALL_STORES, AWAITING_PAYMENT_STATUSES, type AddonAmountInput, type AddonGroupNetsuiteLink, type AddonNetsuiteLink, type AddonSelectionRef, type ApiResponse, type AppliedTax, BRAND_FIELDS, type BaseEntity, CAMPAIGN_RECIPIENT_STATUS_VALUES, CAMPAIGN_STATUS_VALUES, CART_STATUS_VALUES, CATEGORY_FIELDS, CONFIGURATOR_CONDITION_TYPE_VALUES, CONFIGURATOR_EFFECT_TYPE_VALUES, CONFIGURATOR_SELECT_MODE_VALUES, CONFIGURATOR_SOURCE_VALUES, CampaignRecipientStatusEnum, CampaignStatusEnum, type CartIssue, type CartIssueType, CartIssueTypes, CartStatusEnum, type CartValidation, type CheckoutAddressInput, type CheckoutPayload, type CheckoutResult, ConfiguratorConditionTypeEnum, ConfiguratorEffectTypeEnum, ConfiguratorErrorCodeEnum, type ConfiguratorEvalContext, type ConfiguratorEvalError, type ConfiguratorEvalResult, ConfiguratorSelectModeEnum, type ConfiguratorSelections, ConfiguratorSourceEnum, type CouponNetsuiteLink, DEFAULT_SUBSCRIPTION_TOPICS, DISCOUNT_TYPE_VALUES, DiscountTypeEnum, EMAIL_TEMPLATE_EVENT_VALUES, EMAIL_TEMPLATE_VARIABLES_BY_EVENT, EMPTY_ACCESS, type EffectiveAccess, EmailTemplateEventEnum, FEE_APPLIES_TO_VALUES, FeeAppliesToEnum, type FieldMap, type FieldMapping, type FieldSource, type IAddonConfig, type IAddonGroup, type IAddress, type IAdmin, type IAdminAction, type IAdminAuditAction, type IAdminAuditLog, type IAdminBaseAction, type IAdminPermission, type IAdminResource, type IAdminRole, type IAdminRoleCreate, type IAdminSafe, type IAdminStoreAccess, type IAppliedFee, type IBannerSlide, type IBlogAuthor, type IBlogCategory, type IBlogPost, type IBrand, type ICampaign, type ICampaignRecipient, type ICampaignStats, type ICart, type ICartItem, type ICategory, type ICategorySubcategory, type IConfigurator, type IConfiguratorCondition, type IConfiguratorEffect, type IConfiguratorFacet, type IConfiguratorFacetValue, type IConfiguratorOption, type IConfiguratorPriceAdjustment, type IConfiguratorQuery, type IConfiguratorRule, type IConfiguratorSection, type IConfiguratorStep, type IConfiguratorTarget, type IContact, type ICountry, type ICoupon, type ICurrency, type ICustomer, type IDiscountType, type IEmailTemplate, type IFaq, type IFaqCategory, type IKeyValue, type ILinePricing, type IMediaAsset, INVENTORY_POLICY_VALUES, type INetsuiteOrderLink, type INotification, type IOrder, type IOrderItem, type IOrderLog, type IOrderShipment, type IOrderTransaction, type IPaymentLink, type IPodcastEpisode, type IPrice, type IProduct, type IProductDailyStat, type IProductRelationGroup, type IProductTechnicalSpec, type IProductTechnicalSpecTable, type IProductVariantFields, type IProductVariantOptionGroup, type IProductVariantOptionMatrix, type IProductVariantOptionValue, type IRedirect, type IRedirectSuggestion, type IRefundTransaction, type IRelationGroup, type ISEOMetaData, type ISelectableFee, type IShipFromAddress, type IShipping, type IShippingRate, type IState, type IStock, type IStore, type IStoreFee, type IStoreSettings, type ISubscriber, type ISubscriberConsent, type ISubscription, type ISummaryPricing, type ITechnicalSpecColumn, type ITechnicalSpecGroup, type ITransactionBase, type IUnmatched404, type IVariant, type IVariantOptionSelection, type IWishlist, type IWishlistItem, type Id, type InventoryPolicy, InventoryPolicyEnum, type Metadata, NETSUITE_OWNED_FIELDS, NETSUITE_RELATION_GROUPS, NOTIFICATION_TYPE_VALUES, NetsuiteFieldProvider, type NetsuiteOwnedEntity, type NetsuiteRelationSource, NotificationTypeEnum, OPEN_ORDER_STATUSES, ORDER_LOG_TYPE_VALUES, ORDER_STATUS_VALUES, type OfferedAddon, type OfferedAddonGroup, OrderLogTypeEnum, OrderStatusEnum, PAYMENT_GATEWAY_VALUES, PAYMENT_LINK_STATUS_VALUES, PAYMENT_METHOD_VALUES, PAYMENT_STATUS_VALUES, PRICING_TYPE_VALUES, PRODUCT_FIELDS, PRODUCT_VARIANT_TYPE_VALUES, PROVIDERS, PURCHASE_ORDER_STATUSES, PaymentGatewayEnum, PaymentLinkStatusEnum, PaymentMethodEnum, PaymentStatusEnum, type PricedLineLike, type PricingType, PricingTypeEnum, type ProductAddonScope, ProductEventTypeEnum, type ProductVariantType, ProductVariantTypeEnum, QUOTE_ORDER_STATUSES, RELATION_FIELDS, RESOURCE_OPERATIONS, RETIRED_CART_STATUSES, type RedirectTargetType, type ResolveAccessInput, type ResolvedAddonSelection, SALE_TYPE_VALUES, SUBSCRIPTION_CHANNEL_VALUES, SUBSCRIPTION_TOPIC_LABELS, SUBSCRIPTION_TOPIC_VALUES, type SaleType, SaleTypeEnum, type SaleTypedLike, type SelectedShippingMethod, type StockDemandLine, type StockStatus, StockStatusEnum, type StockVerdict, StockVerdictEnum, type StoreAccessCheckInput, type StoreScopeInput, SubscriptionChannelEnum, SubscriptionTopicEnum, type SyncPolicy, type SyncRisk, TRANSACTION_TYPE_VALUES, TransactionTypeEnum, type VariantOptionMode, WIRED_EMAIL_TEMPLATE_EVENTS, actionsForResource, addonFields, addonUnitAmount, addonsOfLine, addonsUnitAmount, adjustmentsFor, applyPriceAdjustments, baseUnitPriceOfLine, blogAuthorFields, blogCategoryFields, blogPostFields, brandFields, can, canAny, canonicalizePath, canonicalizeSlug, categoryFields, conditionHolds, couponFields, demandByKey, evaluateConfigurator, feeHint, formatMoney, grantedPermissions, groupHasDefaultAddon, hasStoreAccess, isConfigurationValid, isNetsuiteOwned, isNonEmptyString, isQuoteOnlyItem, isValidAction, isValidEmail, missingGrants, netsuiteFieldCaution, netsuiteFieldConditional, netsuiteFieldNote, netsuiteFieldRisk, netsuiteFieldSource, netsuiteRelationSource, normalizeLineQuantity, normalizeNumber, normalizePath, orderLogTypeColorMap, paymentLinkStatusColorMap, paymentMethodColorMap, paymentStatusColorMap, podcastFields, productFields, readMapped, resolveAddonSelections, resolveEffectivePermissions, resolveProductAddonGroups, resolveStoreScope, roundMoney, saleTypeOf, statusColors, stockVerdict, syncOwnerFor, toIdString, typeColorMap };
|