@mamindom/contracts 1.0.103 → 1.0.105
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/gen/bundle.d.ts +51 -0
- package/dist/gen/bundle.js +13 -1
- package/dist/proto/bundle.proto +50 -0
- package/gen/bundle.ts +74 -0
- package/package.json +1 -1
- package/proto/bundle.proto +50 -0
package/dist/gen/bundle.d.ts
CHANGED
|
@@ -39,6 +39,14 @@ export declare enum RuleOperator {
|
|
|
39
39
|
RULE_OPERATOR_ALL = 1,
|
|
40
40
|
UNRECOGNIZED = -1
|
|
41
41
|
}
|
|
42
|
+
export declare enum BundleRelatedType {
|
|
43
|
+
BUNDLE_RELATED_TYPE_UNSPECIFIED = 0,
|
|
44
|
+
BUNDLE_RELATED_TYPE_CROSS_SELL = 1,
|
|
45
|
+
BUNDLE_RELATED_TYPE_UP_SELL = 2,
|
|
46
|
+
BUNDLE_RELATED_TYPE_BOUGHT_TOGETHER = 3,
|
|
47
|
+
BUNDLE_RELATED_TYPE_POPULAR = 4,
|
|
48
|
+
UNRECOGNIZED = -1
|
|
49
|
+
}
|
|
42
50
|
export interface GetBundlesRequest {
|
|
43
51
|
pagination: PaginationRequest | undefined;
|
|
44
52
|
search?: string | undefined;
|
|
@@ -207,6 +215,7 @@ export interface ApplyBundleRulesRequest {
|
|
|
207
215
|
export interface GetBundlesByProductRequest {
|
|
208
216
|
productId: string;
|
|
209
217
|
status?: BundleStatus | undefined;
|
|
218
|
+
placement?: string | undefined;
|
|
210
219
|
}
|
|
211
220
|
export interface BulkUpdateBundleStatusRequest {
|
|
212
221
|
bundleIds: string[];
|
|
@@ -398,6 +407,42 @@ export interface BundleLookupResult {
|
|
|
398
407
|
export interface BulkLookupBundlesResponse {
|
|
399
408
|
results: BundleLookupResult[];
|
|
400
409
|
}
|
|
410
|
+
export interface BundleRelatedItem {
|
|
411
|
+
productId: string;
|
|
412
|
+
sku: string;
|
|
413
|
+
slug: string;
|
|
414
|
+
name: {
|
|
415
|
+
[key: string]: string;
|
|
416
|
+
};
|
|
417
|
+
mainImage: string;
|
|
418
|
+
price: number;
|
|
419
|
+
totalStock: number;
|
|
420
|
+
type: BundleRelatedType;
|
|
421
|
+
}
|
|
422
|
+
export interface BundleRelatedItem_NameEntry {
|
|
423
|
+
key: string;
|
|
424
|
+
value: string;
|
|
425
|
+
}
|
|
426
|
+
export interface GetBundleRelatedProductsRequest {
|
|
427
|
+
bundleId: string;
|
|
428
|
+
type?: BundleRelatedType | undefined;
|
|
429
|
+
}
|
|
430
|
+
export interface GetBundleRelatedProductsResponse {
|
|
431
|
+
crossSell: BundleRelatedItem[];
|
|
432
|
+
upSell: BundleRelatedItem[];
|
|
433
|
+
boughtTogether: BundleRelatedItem[];
|
|
434
|
+
popular: BundleRelatedItem[];
|
|
435
|
+
}
|
|
436
|
+
export interface SetBundleRelatedProductsRequest {
|
|
437
|
+
bundleId: string;
|
|
438
|
+
type: BundleRelatedType;
|
|
439
|
+
relatedProductIds: string[];
|
|
440
|
+
}
|
|
441
|
+
export interface RemoveBundleRelatedProductRequest {
|
|
442
|
+
bundleId: string;
|
|
443
|
+
relatedProductId: string;
|
|
444
|
+
type: BundleRelatedType;
|
|
445
|
+
}
|
|
401
446
|
export declare const CATALOG_V1_PACKAGE_NAME = "catalog.v1";
|
|
402
447
|
export interface BundleServiceClient {
|
|
403
448
|
getBundles(request: GetBundlesRequest): Observable<GetBundlesResponse>;
|
|
@@ -421,6 +466,9 @@ export interface BundleServiceClient {
|
|
|
421
466
|
addCrossSellLink(request: AddCrossSellLinkRequest): Observable<SuccessResponse>;
|
|
422
467
|
generateBundleCollage(request: GenerateBundleCollageRequest): Observable<GenerateBundleCollageResponse>;
|
|
423
468
|
bulkLookupBundles(request: BulkLookupBundlesRequest): Observable<BulkLookupBundlesResponse>;
|
|
469
|
+
getBundleRelatedProducts(request: GetBundleRelatedProductsRequest): Observable<GetBundleRelatedProductsResponse>;
|
|
470
|
+
setBundleRelatedProducts(request: SetBundleRelatedProductsRequest): Observable<SuccessResponse>;
|
|
471
|
+
removeBundleRelatedProduct(request: RemoveBundleRelatedProductRequest): Observable<SuccessResponse>;
|
|
424
472
|
}
|
|
425
473
|
export interface BundleServiceController {
|
|
426
474
|
getBundles(request: GetBundlesRequest): Promise<GetBundlesResponse> | Observable<GetBundlesResponse> | GetBundlesResponse;
|
|
@@ -444,6 +492,9 @@ export interface BundleServiceController {
|
|
|
444
492
|
addCrossSellLink(request: AddCrossSellLinkRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
445
493
|
generateBundleCollage(request: GenerateBundleCollageRequest): Promise<GenerateBundleCollageResponse> | Observable<GenerateBundleCollageResponse> | GenerateBundleCollageResponse;
|
|
446
494
|
bulkLookupBundles(request: BulkLookupBundlesRequest): Promise<BulkLookupBundlesResponse> | Observable<BulkLookupBundlesResponse> | BulkLookupBundlesResponse;
|
|
495
|
+
getBundleRelatedProducts(request: GetBundleRelatedProductsRequest): Promise<GetBundleRelatedProductsResponse> | Observable<GetBundleRelatedProductsResponse> | GetBundleRelatedProductsResponse;
|
|
496
|
+
setBundleRelatedProducts(request: SetBundleRelatedProductsRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
497
|
+
removeBundleRelatedProduct(request: RemoveBundleRelatedProductRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
447
498
|
}
|
|
448
499
|
export declare function BundleServiceControllerMethods(): (constructor: Function) => void;
|
|
449
500
|
export declare const BUNDLE_SERVICE_NAME = "BundleService";
|
package/dist/gen/bundle.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// protoc v3.21.12
|
|
6
6
|
// source: bundle.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.BUNDLE_SERVICE_NAME = exports.CATALOG_V1_PACKAGE_NAME = exports.RuleOperator = exports.BundleType = exports.PriceMode = exports.DisplayPlacement = exports.DiscountType = exports.BundleStatus = exports.protobufPackage = void 0;
|
|
8
|
+
exports.BUNDLE_SERVICE_NAME = exports.CATALOG_V1_PACKAGE_NAME = exports.BundleRelatedType = exports.RuleOperator = exports.BundleType = exports.PriceMode = exports.DisplayPlacement = exports.DiscountType = exports.BundleStatus = exports.protobufPackage = void 0;
|
|
9
9
|
exports.BundleServiceControllerMethods = BundleServiceControllerMethods;
|
|
10
10
|
/* eslint-disable */
|
|
11
11
|
const microservices_1 = require("@nestjs/microservices");
|
|
@@ -54,6 +54,15 @@ var RuleOperator;
|
|
|
54
54
|
RuleOperator[RuleOperator["RULE_OPERATOR_ALL"] = 1] = "RULE_OPERATOR_ALL";
|
|
55
55
|
RuleOperator[RuleOperator["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
56
56
|
})(RuleOperator || (exports.RuleOperator = RuleOperator = {}));
|
|
57
|
+
var BundleRelatedType;
|
|
58
|
+
(function (BundleRelatedType) {
|
|
59
|
+
BundleRelatedType[BundleRelatedType["BUNDLE_RELATED_TYPE_UNSPECIFIED"] = 0] = "BUNDLE_RELATED_TYPE_UNSPECIFIED";
|
|
60
|
+
BundleRelatedType[BundleRelatedType["BUNDLE_RELATED_TYPE_CROSS_SELL"] = 1] = "BUNDLE_RELATED_TYPE_CROSS_SELL";
|
|
61
|
+
BundleRelatedType[BundleRelatedType["BUNDLE_RELATED_TYPE_UP_SELL"] = 2] = "BUNDLE_RELATED_TYPE_UP_SELL";
|
|
62
|
+
BundleRelatedType[BundleRelatedType["BUNDLE_RELATED_TYPE_BOUGHT_TOGETHER"] = 3] = "BUNDLE_RELATED_TYPE_BOUGHT_TOGETHER";
|
|
63
|
+
BundleRelatedType[BundleRelatedType["BUNDLE_RELATED_TYPE_POPULAR"] = 4] = "BUNDLE_RELATED_TYPE_POPULAR";
|
|
64
|
+
BundleRelatedType[BundleRelatedType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
65
|
+
})(BundleRelatedType || (exports.BundleRelatedType = BundleRelatedType = {}));
|
|
57
66
|
exports.CATALOG_V1_PACKAGE_NAME = "catalog.v1";
|
|
58
67
|
function BundleServiceControllerMethods() {
|
|
59
68
|
return function (constructor) {
|
|
@@ -79,6 +88,9 @@ function BundleServiceControllerMethods() {
|
|
|
79
88
|
"addCrossSellLink",
|
|
80
89
|
"generateBundleCollage",
|
|
81
90
|
"bulkLookupBundles",
|
|
91
|
+
"getBundleRelatedProducts",
|
|
92
|
+
"setBundleRelatedProducts",
|
|
93
|
+
"removeBundleRelatedProduct",
|
|
82
94
|
];
|
|
83
95
|
for (const method of grpcMethods) {
|
|
84
96
|
const descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
package/dist/proto/bundle.proto
CHANGED
|
@@ -35,6 +35,10 @@ service BundleService {
|
|
|
35
35
|
rpc GenerateBundleCollage (GenerateBundleCollageRequest) returns (GenerateBundleCollageResponse);
|
|
36
36
|
|
|
37
37
|
rpc BulkLookupBundles (BulkLookupBundlesRequest) returns (BulkLookupBundlesResponse);
|
|
38
|
+
|
|
39
|
+
rpc GetBundleRelatedProducts (GetBundleRelatedProductsRequest) returns (GetBundleRelatedProductsResponse);
|
|
40
|
+
rpc SetBundleRelatedProducts (SetBundleRelatedProductsRequest) returns (SuccessResponse);
|
|
41
|
+
rpc RemoveBundleRelatedProduct (RemoveBundleRelatedProductRequest) returns (SuccessResponse);
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
|
|
@@ -216,6 +220,7 @@ message ApplyBundleRulesRequest {
|
|
|
216
220
|
message GetBundlesByProductRequest {
|
|
217
221
|
string product_id = 1;
|
|
218
222
|
optional BundleStatus status = 2;
|
|
223
|
+
optional string placement = 3;
|
|
219
224
|
}
|
|
220
225
|
|
|
221
226
|
message BulkUpdateBundleStatusRequest {
|
|
@@ -390,3 +395,48 @@ message BundleLookupResult {
|
|
|
390
395
|
message BulkLookupBundlesResponse {
|
|
391
396
|
repeated BundleLookupResult results = 1;
|
|
392
397
|
}
|
|
398
|
+
|
|
399
|
+
// ── Bundle Related Products ──────────────────────────────────────────────────
|
|
400
|
+
|
|
401
|
+
enum BundleRelatedType {
|
|
402
|
+
BUNDLE_RELATED_TYPE_UNSPECIFIED = 0;
|
|
403
|
+
BUNDLE_RELATED_TYPE_CROSS_SELL = 1;
|
|
404
|
+
BUNDLE_RELATED_TYPE_UP_SELL = 2;
|
|
405
|
+
BUNDLE_RELATED_TYPE_BOUGHT_TOGETHER = 3;
|
|
406
|
+
BUNDLE_RELATED_TYPE_POPULAR = 4;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
message BundleRelatedItem {
|
|
410
|
+
string product_id = 1;
|
|
411
|
+
string sku = 2;
|
|
412
|
+
string slug = 3;
|
|
413
|
+
map<string, string> name = 4;
|
|
414
|
+
string main_image = 5;
|
|
415
|
+
double price = 6;
|
|
416
|
+
int32 total_stock = 7;
|
|
417
|
+
BundleRelatedType type = 8;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
message GetBundleRelatedProductsRequest {
|
|
421
|
+
string bundle_id = 1;
|
|
422
|
+
optional BundleRelatedType type = 2;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
message GetBundleRelatedProductsResponse {
|
|
426
|
+
repeated BundleRelatedItem cross_sell = 1;
|
|
427
|
+
repeated BundleRelatedItem up_sell = 2;
|
|
428
|
+
repeated BundleRelatedItem bought_together = 3;
|
|
429
|
+
repeated BundleRelatedItem popular = 4;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
message SetBundleRelatedProductsRequest {
|
|
433
|
+
string bundle_id = 1;
|
|
434
|
+
BundleRelatedType type = 2;
|
|
435
|
+
repeated string related_product_ids = 3;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
message RemoveBundleRelatedProductRequest {
|
|
439
|
+
string bundle_id = 1;
|
|
440
|
+
string related_product_id = 2;
|
|
441
|
+
BundleRelatedType type = 3;
|
|
442
|
+
}
|
package/gen/bundle.ts
CHANGED
|
@@ -55,6 +55,15 @@ export enum RuleOperator {
|
|
|
55
55
|
UNRECOGNIZED = -1,
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
export enum BundleRelatedType {
|
|
59
|
+
BUNDLE_RELATED_TYPE_UNSPECIFIED = 0,
|
|
60
|
+
BUNDLE_RELATED_TYPE_CROSS_SELL = 1,
|
|
61
|
+
BUNDLE_RELATED_TYPE_UP_SELL = 2,
|
|
62
|
+
BUNDLE_RELATED_TYPE_BOUGHT_TOGETHER = 3,
|
|
63
|
+
BUNDLE_RELATED_TYPE_POPULAR = 4,
|
|
64
|
+
UNRECOGNIZED = -1,
|
|
65
|
+
}
|
|
66
|
+
|
|
58
67
|
export interface GetBundlesRequest {
|
|
59
68
|
pagination: PaginationRequest | undefined;
|
|
60
69
|
search?: string | undefined;
|
|
@@ -226,6 +235,7 @@ export interface ApplyBundleRulesRequest {
|
|
|
226
235
|
export interface GetBundlesByProductRequest {
|
|
227
236
|
productId: string;
|
|
228
237
|
status?: BundleStatus | undefined;
|
|
238
|
+
placement?: string | undefined;
|
|
229
239
|
}
|
|
230
240
|
|
|
231
241
|
export interface BulkUpdateBundleStatusRequest {
|
|
@@ -431,6 +441,46 @@ export interface BulkLookupBundlesResponse {
|
|
|
431
441
|
results: BundleLookupResult[];
|
|
432
442
|
}
|
|
433
443
|
|
|
444
|
+
export interface BundleRelatedItem {
|
|
445
|
+
productId: string;
|
|
446
|
+
sku: string;
|
|
447
|
+
slug: string;
|
|
448
|
+
name: { [key: string]: string };
|
|
449
|
+
mainImage: string;
|
|
450
|
+
price: number;
|
|
451
|
+
totalStock: number;
|
|
452
|
+
type: BundleRelatedType;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
export interface BundleRelatedItem_NameEntry {
|
|
456
|
+
key: string;
|
|
457
|
+
value: string;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
export interface GetBundleRelatedProductsRequest {
|
|
461
|
+
bundleId: string;
|
|
462
|
+
type?: BundleRelatedType | undefined;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
export interface GetBundleRelatedProductsResponse {
|
|
466
|
+
crossSell: BundleRelatedItem[];
|
|
467
|
+
upSell: BundleRelatedItem[];
|
|
468
|
+
boughtTogether: BundleRelatedItem[];
|
|
469
|
+
popular: BundleRelatedItem[];
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
export interface SetBundleRelatedProductsRequest {
|
|
473
|
+
bundleId: string;
|
|
474
|
+
type: BundleRelatedType;
|
|
475
|
+
relatedProductIds: string[];
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
export interface RemoveBundleRelatedProductRequest {
|
|
479
|
+
bundleId: string;
|
|
480
|
+
relatedProductId: string;
|
|
481
|
+
type: BundleRelatedType;
|
|
482
|
+
}
|
|
483
|
+
|
|
434
484
|
export const CATALOG_V1_PACKAGE_NAME = "catalog.v1";
|
|
435
485
|
|
|
436
486
|
export interface BundleServiceClient {
|
|
@@ -475,6 +525,12 @@ export interface BundleServiceClient {
|
|
|
475
525
|
generateBundleCollage(request: GenerateBundleCollageRequest): Observable<GenerateBundleCollageResponse>;
|
|
476
526
|
|
|
477
527
|
bulkLookupBundles(request: BulkLookupBundlesRequest): Observable<BulkLookupBundlesResponse>;
|
|
528
|
+
|
|
529
|
+
getBundleRelatedProducts(request: GetBundleRelatedProductsRequest): Observable<GetBundleRelatedProductsResponse>;
|
|
530
|
+
|
|
531
|
+
setBundleRelatedProducts(request: SetBundleRelatedProductsRequest): Observable<SuccessResponse>;
|
|
532
|
+
|
|
533
|
+
removeBundleRelatedProduct(request: RemoveBundleRelatedProductRequest): Observable<SuccessResponse>;
|
|
478
534
|
}
|
|
479
535
|
|
|
480
536
|
export interface BundleServiceController {
|
|
@@ -559,6 +615,21 @@ export interface BundleServiceController {
|
|
|
559
615
|
bulkLookupBundles(
|
|
560
616
|
request: BulkLookupBundlesRequest,
|
|
561
617
|
): Promise<BulkLookupBundlesResponse> | Observable<BulkLookupBundlesResponse> | BulkLookupBundlesResponse;
|
|
618
|
+
|
|
619
|
+
getBundleRelatedProducts(
|
|
620
|
+
request: GetBundleRelatedProductsRequest,
|
|
621
|
+
):
|
|
622
|
+
| Promise<GetBundleRelatedProductsResponse>
|
|
623
|
+
| Observable<GetBundleRelatedProductsResponse>
|
|
624
|
+
| GetBundleRelatedProductsResponse;
|
|
625
|
+
|
|
626
|
+
setBundleRelatedProducts(
|
|
627
|
+
request: SetBundleRelatedProductsRequest,
|
|
628
|
+
): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
629
|
+
|
|
630
|
+
removeBundleRelatedProduct(
|
|
631
|
+
request: RemoveBundleRelatedProductRequest,
|
|
632
|
+
): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
562
633
|
}
|
|
563
634
|
|
|
564
635
|
export function BundleServiceControllerMethods() {
|
|
@@ -585,6 +656,9 @@ export function BundleServiceControllerMethods() {
|
|
|
585
656
|
"addCrossSellLink",
|
|
586
657
|
"generateBundleCollage",
|
|
587
658
|
"bulkLookupBundles",
|
|
659
|
+
"getBundleRelatedProducts",
|
|
660
|
+
"setBundleRelatedProducts",
|
|
661
|
+
"removeBundleRelatedProduct",
|
|
588
662
|
];
|
|
589
663
|
for (const method of grpcMethods) {
|
|
590
664
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
package/package.json
CHANGED
package/proto/bundle.proto
CHANGED
|
@@ -35,6 +35,10 @@ service BundleService {
|
|
|
35
35
|
rpc GenerateBundleCollage (GenerateBundleCollageRequest) returns (GenerateBundleCollageResponse);
|
|
36
36
|
|
|
37
37
|
rpc BulkLookupBundles (BulkLookupBundlesRequest) returns (BulkLookupBundlesResponse);
|
|
38
|
+
|
|
39
|
+
rpc GetBundleRelatedProducts (GetBundleRelatedProductsRequest) returns (GetBundleRelatedProductsResponse);
|
|
40
|
+
rpc SetBundleRelatedProducts (SetBundleRelatedProductsRequest) returns (SuccessResponse);
|
|
41
|
+
rpc RemoveBundleRelatedProduct (RemoveBundleRelatedProductRequest) returns (SuccessResponse);
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
|
|
@@ -216,6 +220,7 @@ message ApplyBundleRulesRequest {
|
|
|
216
220
|
message GetBundlesByProductRequest {
|
|
217
221
|
string product_id = 1;
|
|
218
222
|
optional BundleStatus status = 2;
|
|
223
|
+
optional string placement = 3;
|
|
219
224
|
}
|
|
220
225
|
|
|
221
226
|
message BulkUpdateBundleStatusRequest {
|
|
@@ -390,3 +395,48 @@ message BundleLookupResult {
|
|
|
390
395
|
message BulkLookupBundlesResponse {
|
|
391
396
|
repeated BundleLookupResult results = 1;
|
|
392
397
|
}
|
|
398
|
+
|
|
399
|
+
// ── Bundle Related Products ──────────────────────────────────────────────────
|
|
400
|
+
|
|
401
|
+
enum BundleRelatedType {
|
|
402
|
+
BUNDLE_RELATED_TYPE_UNSPECIFIED = 0;
|
|
403
|
+
BUNDLE_RELATED_TYPE_CROSS_SELL = 1;
|
|
404
|
+
BUNDLE_RELATED_TYPE_UP_SELL = 2;
|
|
405
|
+
BUNDLE_RELATED_TYPE_BOUGHT_TOGETHER = 3;
|
|
406
|
+
BUNDLE_RELATED_TYPE_POPULAR = 4;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
message BundleRelatedItem {
|
|
410
|
+
string product_id = 1;
|
|
411
|
+
string sku = 2;
|
|
412
|
+
string slug = 3;
|
|
413
|
+
map<string, string> name = 4;
|
|
414
|
+
string main_image = 5;
|
|
415
|
+
double price = 6;
|
|
416
|
+
int32 total_stock = 7;
|
|
417
|
+
BundleRelatedType type = 8;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
message GetBundleRelatedProductsRequest {
|
|
421
|
+
string bundle_id = 1;
|
|
422
|
+
optional BundleRelatedType type = 2;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
message GetBundleRelatedProductsResponse {
|
|
426
|
+
repeated BundleRelatedItem cross_sell = 1;
|
|
427
|
+
repeated BundleRelatedItem up_sell = 2;
|
|
428
|
+
repeated BundleRelatedItem bought_together = 3;
|
|
429
|
+
repeated BundleRelatedItem popular = 4;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
message SetBundleRelatedProductsRequest {
|
|
433
|
+
string bundle_id = 1;
|
|
434
|
+
BundleRelatedType type = 2;
|
|
435
|
+
repeated string related_product_ids = 3;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
message RemoveBundleRelatedProductRequest {
|
|
439
|
+
string bundle_id = 1;
|
|
440
|
+
string related_product_id = 2;
|
|
441
|
+
BundleRelatedType type = 3;
|
|
442
|
+
}
|