@google-shopping/lfp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/LICENSE +202 -0
- package/README.md +200 -0
- package/build/protos/google/shopping/merchant/lfp/v1beta/lfpinventory.proto +149 -0
- package/build/protos/google/shopping/merchant/lfp/v1beta/lfpsale.proto +122 -0
- package/build/protos/google/shopping/merchant/lfp/v1beta/lfpstore.proto +249 -0
- package/build/protos/google/shopping/type/types.proto +169 -0
- package/build/protos/protos.d.ts +8673 -0
- package/build/protos/protos.js +23511 -0
- package/build/protos/protos.json +2617 -0
- package/build/src/index.d.ts +17 -0
- package/build/src/index.js +37 -0
- package/build/src/index.js.map +1 -0
- package/build/src/v1beta/index.d.ts +3 -0
- package/build/src/v1beta/index.js +27 -0
- package/build/src/v1beta/index.js.map +1 -0
- package/build/src/v1beta/lfp_inventory_service_client.d.ts +267 -0
- package/build/src/v1beta/lfp_inventory_service_client.js +472 -0
- package/build/src/v1beta/lfp_inventory_service_client.js.map +1 -0
- package/build/src/v1beta/lfp_inventory_service_client_config.json +43 -0
- package/build/src/v1beta/lfp_sale_service_client.d.ts +250 -0
- package/build/src/v1beta/lfp_sale_service_client.js +450 -0
- package/build/src/v1beta/lfp_sale_service_client.js.map +1 -0
- package/build/src/v1beta/lfp_sale_service_client_config.json +43 -0
- package/build/src/v1beta/lfp_store_service_client.d.ts +430 -0
- package/build/src/v1beta/lfp_store_service_client.js +645 -0
- package/build/src/v1beta/lfp_store_service_client.js.map +1 -0
- package/build/src/v1beta/lfp_store_service_client_config.json +58 -0
- package/package.json +70 -0
@@ -0,0 +1,122 @@
|
|
1
|
+
// Copyright 2023 Google LLC
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
syntax = "proto3";
|
16
|
+
|
17
|
+
package google.shopping.merchant.lfp.v1beta;
|
18
|
+
|
19
|
+
import "google/api/annotations.proto";
|
20
|
+
import "google/api/client.proto";
|
21
|
+
import "google/api/field_behavior.proto";
|
22
|
+
import "google/api/field_info.proto";
|
23
|
+
import "google/api/resource.proto";
|
24
|
+
import "google/protobuf/timestamp.proto";
|
25
|
+
import "google/shopping/type/types.proto";
|
26
|
+
|
27
|
+
option go_package = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb;lfppb";
|
28
|
+
option java_multiple_files = true;
|
29
|
+
option java_outer_classname = "LfpSaleProto";
|
30
|
+
option java_package = "com.google.shopping.merchant.lfp.v1beta";
|
31
|
+
|
32
|
+
// Service for a [LFP
|
33
|
+
// partner](https://support.google.com/merchants/answer/7676652) to submit sales
|
34
|
+
// data for a merchant.
|
35
|
+
service LfpSaleService {
|
36
|
+
option (google.api.default_host) = "merchantapi.googleapis.com";
|
37
|
+
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content";
|
38
|
+
|
39
|
+
// Inserts a `LfpSale` for the given merchant.
|
40
|
+
rpc InsertLfpSale(InsertLfpSaleRequest) returns (LfpSale) {
|
41
|
+
option (google.api.http) = {
|
42
|
+
post: "/lfp/v1beta/{parent=accounts/*}/lfpSales:insert"
|
43
|
+
body: "lfp_sale"
|
44
|
+
};
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
// A sale for the merchant.
|
49
|
+
message LfpSale {
|
50
|
+
option (google.api.resource) = {
|
51
|
+
type: "merchantapi.googleapis.com/LfpSale"
|
52
|
+
pattern: "accounts/{account}/lfpSales/{sale}"
|
53
|
+
plural: "lfpSales"
|
54
|
+
singular: "lfpSale"
|
55
|
+
};
|
56
|
+
|
57
|
+
// Output only. Identifier. The name of the `LfpSale` resource.
|
58
|
+
// Format:
|
59
|
+
// `accounts/{account}/lfpSales/{sale}`
|
60
|
+
string name = 1 [
|
61
|
+
(google.api.field_behavior) = OUTPUT_ONLY,
|
62
|
+
(google.api.field_behavior) = IDENTIFIER
|
63
|
+
];
|
64
|
+
|
65
|
+
// Required. The Merchant Center ID of the merchant to submit the sale for.
|
66
|
+
int64 target_account = 2 [(google.api.field_behavior) = REQUIRED];
|
67
|
+
|
68
|
+
// Required. The identifier of the merchant's store. Either a `storeCode`
|
69
|
+
// inserted through the API or the code of the store in the Business Profile.
|
70
|
+
string store_code = 3 [(google.api.field_behavior) = REQUIRED];
|
71
|
+
|
72
|
+
// Required. A unique identifier for the product. If both inventories and
|
73
|
+
// sales are submitted for a merchant, this id should match for the same
|
74
|
+
// product.
|
75
|
+
//
|
76
|
+
// **Note**: if the merchant sells the same product new and used, they should
|
77
|
+
// have different IDs.
|
78
|
+
string offer_id = 4 [(google.api.field_behavior) = REQUIRED];
|
79
|
+
|
80
|
+
// Required. The [CLDR territory
|
81
|
+
// code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml)
|
82
|
+
// for the country where the product is sold.
|
83
|
+
string region_code = 5 [(google.api.field_behavior) = REQUIRED];
|
84
|
+
|
85
|
+
// Required. The two-letter ISO 639-1 language code for the item.
|
86
|
+
string content_language = 6 [(google.api.field_behavior) = REQUIRED];
|
87
|
+
|
88
|
+
// Required. The Global Trade Item Number of the sold product.
|
89
|
+
string gtin = 7 [(google.api.field_behavior) = REQUIRED];
|
90
|
+
|
91
|
+
// Required. The unit price of the product.
|
92
|
+
google.shopping.type.Price price = 8 [(google.api.field_behavior) = REQUIRED];
|
93
|
+
|
94
|
+
// Required. The relative change of the available quantity. Negative for items
|
95
|
+
// returned.
|
96
|
+
int64 quantity = 9 [(google.api.field_behavior) = REQUIRED];
|
97
|
+
|
98
|
+
// Required. The timestamp for the sale.
|
99
|
+
google.protobuf.Timestamp sale_time = 10
|
100
|
+
[(google.api.field_behavior) = REQUIRED];
|
101
|
+
|
102
|
+
// Output only. System generated globally unique ID for the `LfpSale`.
|
103
|
+
optional string uid = 11 [
|
104
|
+
(google.api.field_info).format = UUID4,
|
105
|
+
(google.api.field_behavior) = OUTPUT_ONLY
|
106
|
+
];
|
107
|
+
|
108
|
+
// Optional. The [feed
|
109
|
+
// label](https://developers.google.com/shopping-content/guides/products/feed-labels)
|
110
|
+
// for the product. If this is not set, it will default to `regionCode`.
|
111
|
+
optional string feed_label = 12 [(google.api.field_behavior) = OPTIONAL];
|
112
|
+
}
|
113
|
+
|
114
|
+
// Request message for the InsertLfpSale method.
|
115
|
+
message InsertLfpSaleRequest {
|
116
|
+
// Required. The LFP provider account.
|
117
|
+
// Format: `accounts/{lfp_partner}`
|
118
|
+
string parent = 1 [(google.api.field_behavior) = REQUIRED];
|
119
|
+
|
120
|
+
// Required. The sale to insert.
|
121
|
+
LfpSale lfp_sale = 2 [(google.api.field_behavior) = REQUIRED];
|
122
|
+
}
|
@@ -0,0 +1,249 @@
|
|
1
|
+
// Copyright 2023 Google LLC
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
syntax = "proto3";
|
16
|
+
|
17
|
+
package google.shopping.merchant.lfp.v1beta;
|
18
|
+
|
19
|
+
import "google/api/annotations.proto";
|
20
|
+
import "google/api/client.proto";
|
21
|
+
import "google/api/field_behavior.proto";
|
22
|
+
import "google/api/resource.proto";
|
23
|
+
import "google/protobuf/empty.proto";
|
24
|
+
|
25
|
+
option go_package = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb;lfppb";
|
26
|
+
option java_multiple_files = true;
|
27
|
+
option java_outer_classname = "LfpStoreProto";
|
28
|
+
option java_package = "com.google.shopping.merchant.lfp.v1beta";
|
29
|
+
|
30
|
+
// Service for a [LFP
|
31
|
+
// partner](https://support.google.com/merchants/answer/7676652) to submit local
|
32
|
+
// stores for a merchant.
|
33
|
+
service LfpStoreService {
|
34
|
+
option (google.api.default_host) = "merchantapi.googleapis.com";
|
35
|
+
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content";
|
36
|
+
|
37
|
+
// Retrieves information about a store.
|
38
|
+
rpc GetLfpStore(GetLfpStoreRequest) returns (LfpStore) {
|
39
|
+
option (google.api.http) = {
|
40
|
+
get: "/lfp/v1beta/{name=accounts/*/lfpStores/*}"
|
41
|
+
};
|
42
|
+
option (google.api.method_signature) = "name";
|
43
|
+
}
|
44
|
+
|
45
|
+
// Inserts a store for the target merchant. If the store with the same store
|
46
|
+
// code already exists, it will be replaced.
|
47
|
+
rpc InsertLfpStore(InsertLfpStoreRequest) returns (LfpStore) {
|
48
|
+
option (google.api.http) = {
|
49
|
+
post: "/lfp/v1beta/{parent=accounts/*}/lfpStores:insert"
|
50
|
+
body: "lfp_store"
|
51
|
+
};
|
52
|
+
option (google.api.method_signature) = "parent,lfp_store";
|
53
|
+
}
|
54
|
+
|
55
|
+
// Deletes a store for a target merchant.
|
56
|
+
rpc DeleteLfpStore(DeleteLfpStoreRequest) returns (google.protobuf.Empty) {
|
57
|
+
option (google.api.http) = {
|
58
|
+
delete: "/lfp/v1beta/{name=accounts/*/lfpStores/*}"
|
59
|
+
};
|
60
|
+
option (google.api.method_signature) = "name";
|
61
|
+
}
|
62
|
+
|
63
|
+
// Lists the stores of the target merchant, specified by the filter in
|
64
|
+
// `ListLfpStoresRequest`.
|
65
|
+
rpc ListLfpStores(ListLfpStoresRequest) returns (ListLfpStoresResponse) {
|
66
|
+
option (google.api.http) = {
|
67
|
+
get: "/lfp/v1beta/{parent=accounts/*}/lfpStores"
|
68
|
+
};
|
69
|
+
option (google.api.method_signature) = "parent";
|
70
|
+
}
|
71
|
+
}
|
72
|
+
|
73
|
+
// A store for the merchant. This will be used to match to a Google Business
|
74
|
+
// Profile listing for the target merchant. If a matching listing can't be
|
75
|
+
// found, the inventories or sales submitted with the store code will not be
|
76
|
+
// used.
|
77
|
+
message LfpStore {
|
78
|
+
option (google.api.resource) = {
|
79
|
+
type: "merchantapi.googleapis.com/LfpStore"
|
80
|
+
pattern: "accounts/{account}/lfpStores/{target_merchant}~{store_code}"
|
81
|
+
plural: "lfpStores"
|
82
|
+
singular: "lfpStore"
|
83
|
+
};
|
84
|
+
|
85
|
+
// The state of matching `LfpStore` to a Google Business Profile listing.
|
86
|
+
enum StoreMatchingState {
|
87
|
+
// Store matching state unspecified.
|
88
|
+
STORE_MATCHING_STATE_UNSPECIFIED = 0;
|
89
|
+
|
90
|
+
// The `LfpStore` is successfully matched with a Google Business Profile
|
91
|
+
// store.
|
92
|
+
STORE_MATCHING_STATE_MATCHED = 1;
|
93
|
+
|
94
|
+
// The `LfpStore` is not matched with a Google Business Profile store.
|
95
|
+
STORE_MATCHING_STATE_FAILED = 2;
|
96
|
+
}
|
97
|
+
|
98
|
+
// Output only. Identifier. The name of the `LfpStore` resource.
|
99
|
+
// Format: `accounts/{account}/lfpStores/{target_merchant}~{store_code}`
|
100
|
+
string name = 1 [
|
101
|
+
(google.api.field_behavior) = OUTPUT_ONLY,
|
102
|
+
(google.api.field_behavior) = IDENTIFIER
|
103
|
+
];
|
104
|
+
|
105
|
+
// Required. The Merchant Center id of the merchant to submit the store for.
|
106
|
+
int64 target_account = 2 [(google.api.field_behavior) = REQUIRED];
|
107
|
+
|
108
|
+
// Required. Immutable. A store identifier that is unique for the target
|
109
|
+
// merchant.
|
110
|
+
string store_code = 3 [
|
111
|
+
(google.api.field_behavior) = REQUIRED,
|
112
|
+
(google.api.field_behavior) = IMMUTABLE
|
113
|
+
];
|
114
|
+
|
115
|
+
// Required. The street address of the store.
|
116
|
+
// Example: 1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA.
|
117
|
+
string store_address = 4 [(google.api.field_behavior) = REQUIRED];
|
118
|
+
|
119
|
+
// Optional. The merchant or store name.
|
120
|
+
optional string store_name = 5 [(google.api.field_behavior) = OPTIONAL];
|
121
|
+
|
122
|
+
// Optional. The store phone number in
|
123
|
+
// [E.164](https://en.wikipedia.org/wiki/E.164) format. Example:
|
124
|
+
// `+15556767888`
|
125
|
+
optional string phone_number = 6 [(google.api.field_behavior) = OPTIONAL];
|
126
|
+
|
127
|
+
// Optional. The website URL for the store or merchant.
|
128
|
+
optional string website_uri = 7 [(google.api.field_behavior) = OPTIONAL];
|
129
|
+
|
130
|
+
// Optional. [Google My Business category
|
131
|
+
// id](https://gcid-explorer.corp.google.com/static/gcid.html).
|
132
|
+
repeated string gcid_category = 8 [(google.api.field_behavior) = OPTIONAL];
|
133
|
+
|
134
|
+
// Optional. The [Google Place
|
135
|
+
// Id](https://developers.google.com/maps/documentation/places/web-service/place-id#id-overview)
|
136
|
+
// of the store location.
|
137
|
+
optional string place_id = 9 [(google.api.field_behavior) = OPTIONAL];
|
138
|
+
|
139
|
+
// Optional. Output only. The state of matching to a Google Business Profile
|
140
|
+
// listing. See
|
141
|
+
// [matchingStateHint][google.shopping.merchant.lfp.v1beta.LfpStore.matching_state_hint]
|
142
|
+
// for further details if no match is found.
|
143
|
+
StoreMatchingState matching_state = 10 [
|
144
|
+
(google.api.field_behavior) = OPTIONAL,
|
145
|
+
(google.api.field_behavior) = OUTPUT_ONLY
|
146
|
+
];
|
147
|
+
|
148
|
+
// Optional. Output only. The hint of why the matching has failed. This is
|
149
|
+
// only set when
|
150
|
+
// [matchingState][google.shopping.merchant.lfp.v1beta.LfpStore.matching_state]=`STORE_MATCHING_STATE_FAILED`.
|
151
|
+
//
|
152
|
+
// Possible values are:
|
153
|
+
//
|
154
|
+
// - "`linked-store-not-found`": There aren't any Google Business
|
155
|
+
// Profile stores available for matching.
|
156
|
+
// - "`store-match-not-found`": The provided `LfpStore` couldn't be matched to
|
157
|
+
// any of the connected Google Business Profile stores. Merchant Center
|
158
|
+
// account is connected correctly and stores are available on Google Business
|
159
|
+
// Profile, but the `LfpStore` location address does not match with Google
|
160
|
+
// Business Profile stores' addresses. Update the `LfpStore` address or Google
|
161
|
+
// Business Profile store address to match correctly.
|
162
|
+
// - "`store-match-unverified`": The provided `LfpStore` couldn't be matched
|
163
|
+
// to any of the connected Google Business Profile stores, as the matched
|
164
|
+
// Google Business Profile store is unverified. Go through the Google Business
|
165
|
+
// Profile verification process to match correctly.
|
166
|
+
optional string matching_state_hint = 11 [
|
167
|
+
(google.api.field_behavior) = OPTIONAL,
|
168
|
+
(google.api.field_behavior) = OUTPUT_ONLY
|
169
|
+
];
|
170
|
+
}
|
171
|
+
|
172
|
+
// Request message for the `GetLfpStore` method.
|
173
|
+
message GetLfpStoreRequest {
|
174
|
+
// Required. The name of the store to retrieve.
|
175
|
+
// Format: `accounts/{account}/lfpStores/{target_merchant}~{store_code}`
|
176
|
+
string name = 1 [
|
177
|
+
(google.api.field_behavior) = REQUIRED,
|
178
|
+
(google.api.resource_reference) = {
|
179
|
+
type: "merchantapi.googleapis.com/LfpStore"
|
180
|
+
}
|
181
|
+
];
|
182
|
+
}
|
183
|
+
|
184
|
+
// Request message for the InsertLfpStore method.
|
185
|
+
message InsertLfpStoreRequest {
|
186
|
+
// Required. The LFP provider account
|
187
|
+
// Format: `accounts/{account}`
|
188
|
+
string parent = 1 [
|
189
|
+
(google.api.field_behavior) = REQUIRED,
|
190
|
+
(google.api.resource_reference) = {
|
191
|
+
child_type: "merchantapi.googleapis.com/LfpStore"
|
192
|
+
}
|
193
|
+
];
|
194
|
+
|
195
|
+
// Required. The store to insert.
|
196
|
+
LfpStore lfp_store = 2 [(google.api.field_behavior) = REQUIRED];
|
197
|
+
}
|
198
|
+
|
199
|
+
// Request message for the DeleteLfpStore method.
|
200
|
+
message DeleteLfpStoreRequest {
|
201
|
+
// Required. The name of the store to delete for the target merchant account.
|
202
|
+
// Format: `accounts/{account}/lfpStores/{target_merchant}~{store_code}`
|
203
|
+
string name = 1 [
|
204
|
+
(google.api.field_behavior) = REQUIRED,
|
205
|
+
(google.api.resource_reference) = {
|
206
|
+
type: "merchantapi.googleapis.com/LfpStore"
|
207
|
+
}
|
208
|
+
];
|
209
|
+
}
|
210
|
+
|
211
|
+
// Request message for the ListLfpStores method.
|
212
|
+
message ListLfpStoresRequest {
|
213
|
+
// Required. The LFP partner.
|
214
|
+
// Format: `accounts/{account}`
|
215
|
+
string parent = 1 [
|
216
|
+
(google.api.field_behavior) = REQUIRED,
|
217
|
+
(google.api.resource_reference) = {
|
218
|
+
child_type: "merchantapi.googleapis.com/LfpStore"
|
219
|
+
}
|
220
|
+
];
|
221
|
+
|
222
|
+
// Required. The Merchant Center id of the merchant to list stores for.
|
223
|
+
int64 target_account = 2 [(google.api.field_behavior) = REQUIRED];
|
224
|
+
|
225
|
+
// Optional. The maximum number of `LfpStore` resources for the given account
|
226
|
+
// to return. The service returns fewer than this value if the number of
|
227
|
+
// stores for the given account is less than the `pageSize`. The default value
|
228
|
+
// is 250. The maximum value is 1000; If a value higher than the maximum is
|
229
|
+
// specified, then the `pageSize` will default to the maximum.
|
230
|
+
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
|
231
|
+
|
232
|
+
// Optional. A page token, received from a previous `ListLfpStoresRequest`
|
233
|
+
// call. Provide the page token to retrieve the subsequent page. When
|
234
|
+
// paginating, all other parameters provided to `ListLfpStoresRequest` must
|
235
|
+
// match the call that provided the page token. The token returned as
|
236
|
+
// [nextPageToken][google.shopping.merchant.lfp.v1beta.ListLfpStoresResponse.next_page_token]
|
237
|
+
// in the response to the previous request.
|
238
|
+
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
|
239
|
+
}
|
240
|
+
|
241
|
+
// Response message for the ListLfpStores method.
|
242
|
+
message ListLfpStoresResponse {
|
243
|
+
// The stores from the specified merchant.
|
244
|
+
repeated LfpStore lfp_stores = 1;
|
245
|
+
|
246
|
+
// A token, which can be sent as `pageToken` to retrieve the next page.
|
247
|
+
// If this field is omitted, there are no subsequent pages.
|
248
|
+
string next_page_token = 2;
|
249
|
+
}
|
@@ -0,0 +1,169 @@
|
|
1
|
+
// Copyright 2023 Google LLC
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
syntax = "proto3";
|
16
|
+
|
17
|
+
package google.shopping.type;
|
18
|
+
|
19
|
+
option csharp_namespace = "Google.Shopping.Type";
|
20
|
+
option go_package = "cloud.google.com/go/shopping/type/typepb;typepb";
|
21
|
+
option java_multiple_files = true;
|
22
|
+
option java_outer_classname = "TypesProto";
|
23
|
+
option java_package = "com.google.shopping.type";
|
24
|
+
|
25
|
+
// The price represented as a number and currency.
|
26
|
+
message Price {
|
27
|
+
// The price represented as a number in micros (1 million micros is an
|
28
|
+
// equivalent to one's currency standard unit, for example, 1 USD = 1000000
|
29
|
+
// micros).
|
30
|
+
// This field can also be set as infinity by setting to -1.
|
31
|
+
// This field only support -1 and positive value.
|
32
|
+
optional int64 amount_micros = 1;
|
33
|
+
|
34
|
+
// The currency of the price using three-letter acronyms according to [ISO
|
35
|
+
// 4217](http://en.wikipedia.org/wiki/ISO_4217).
|
36
|
+
optional string currency_code = 2;
|
37
|
+
}
|
38
|
+
|
39
|
+
// A message that represents custom attributes. Exactly one of `value` or
|
40
|
+
// `group_values` must not be empty.
|
41
|
+
message CustomAttribute {
|
42
|
+
// The name of the attribute.
|
43
|
+
optional string name = 1;
|
44
|
+
|
45
|
+
// The value of the attribute. If `value` is not empty, `group_values` must be
|
46
|
+
// empty.
|
47
|
+
optional string value = 2;
|
48
|
+
|
49
|
+
// Subattributes within this attribute group. If
|
50
|
+
// `group_values` is not empty, `value` must be empty.
|
51
|
+
repeated CustomAttribute group_values = 3;
|
52
|
+
}
|
53
|
+
|
54
|
+
// Destinations available for a product.
|
55
|
+
//
|
56
|
+
// Destinations are used in Merchant Center to allow you to control where the
|
57
|
+
// products from your data feed should be displayed.
|
58
|
+
//
|
59
|
+
message Destination {
|
60
|
+
// Destination values.
|
61
|
+
enum DestinationEnum {
|
62
|
+
// Not specified.
|
63
|
+
DESTINATION_ENUM_UNSPECIFIED = 0;
|
64
|
+
|
65
|
+
// [Shopping ads](https://support.google.com/google-ads/answer/2454022).
|
66
|
+
SHOPPING_ADS = 1;
|
67
|
+
|
68
|
+
// [Display ads](https://support.google.com/merchants/answer/6069387).
|
69
|
+
DISPLAY_ADS = 2;
|
70
|
+
|
71
|
+
// [Local inventory
|
72
|
+
// ads](https://support.google.com/merchants/answer/3057972).
|
73
|
+
LOCAL_INVENTORY_ADS = 3;
|
74
|
+
|
75
|
+
// [Free listings](https://support.google.com/merchants/answer/9199328).
|
76
|
+
FREE_LISTINGS = 4;
|
77
|
+
|
78
|
+
// [Free local product
|
79
|
+
// listings](https://support.google.com/merchants/answer/9825611).
|
80
|
+
FREE_LOCAL_LISTINGS = 5;
|
81
|
+
|
82
|
+
// [YouTube Shopping](https://support.google.com/merchants/answer/12362804).
|
83
|
+
YOUTUBE_SHOPPING = 6;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
// Reporting contexts that your account and product issues apply to.
|
88
|
+
//
|
89
|
+
// Reporting contexts are groups of surfaces and formats for product results on
|
90
|
+
// Google. They can represent the entire destination (for example, [Shopping
|
91
|
+
// ads](https://support.google.com/merchants/answer/6149970)) or a subset of
|
92
|
+
// formats within a destination (for example, [Demand Gen
|
93
|
+
// ads](https://support.google.com/merchants/answer/13389785)).
|
94
|
+
//
|
95
|
+
message ReportingContext {
|
96
|
+
// Reporting context values.
|
97
|
+
enum ReportingContextEnum {
|
98
|
+
// Not specified.
|
99
|
+
REPORTING_CONTEXT_ENUM_UNSPECIFIED = 0;
|
100
|
+
|
101
|
+
// [Shopping ads](https://support.google.com/merchants/answer/6149970).
|
102
|
+
SHOPPING_ADS = 1;
|
103
|
+
|
104
|
+
// Deprecated: Use `DEMAND_GEN_ADS` instead.
|
105
|
+
// [Discovery and Demand Gen
|
106
|
+
// ads](https://support.google.com/merchants/answer/13389785).
|
107
|
+
DISCOVERY_ADS = 2 [deprecated = true];
|
108
|
+
|
109
|
+
// [Demand Gen ads](https://support.google.com/merchants/answer/13389785).
|
110
|
+
DEMAND_GEN_ADS = 13;
|
111
|
+
|
112
|
+
// [Demand Gen ads on Discover
|
113
|
+
// surface](https://support.google.com/merchants/answer/13389785).
|
114
|
+
DEMAND_GEN_ADS_DISCOVER_SURFACE = 14;
|
115
|
+
|
116
|
+
// [Video ads](https://support.google.com/google-ads/answer/6340491).
|
117
|
+
VIDEO_ADS = 3;
|
118
|
+
|
119
|
+
// [Display ads](https://support.google.com/merchants/answer/6069387).
|
120
|
+
DISPLAY_ADS = 4;
|
121
|
+
|
122
|
+
// [Local inventory
|
123
|
+
// ads](https://support.google.com/merchants/answer/3271956).
|
124
|
+
LOCAL_INVENTORY_ADS = 5;
|
125
|
+
|
126
|
+
// [Vehicle inventory
|
127
|
+
// ads](https://support.google.com/merchants/answer/11544533).
|
128
|
+
VEHICLE_INVENTORY_ADS = 6;
|
129
|
+
|
130
|
+
// [Free product
|
131
|
+
// listings](https://support.google.com/merchants/answer/9199328).
|
132
|
+
FREE_LISTINGS = 7;
|
133
|
+
|
134
|
+
// [Free local product
|
135
|
+
// listings](https://support.google.com/merchants/answer/9825611).
|
136
|
+
FREE_LOCAL_LISTINGS = 8;
|
137
|
+
|
138
|
+
// [Free local vehicle
|
139
|
+
// listings](https://support.google.com/merchants/answer/11544533).
|
140
|
+
FREE_LOCAL_VEHICLE_LISTINGS = 9;
|
141
|
+
|
142
|
+
// [YouTube
|
143
|
+
// Shopping](https://support.google.com/merchants/answer/13478370).
|
144
|
+
YOUTUBE_SHOPPING = 10;
|
145
|
+
|
146
|
+
// [Cloud retail](https://cloud.google.com/solutions/retail).
|
147
|
+
CLOUD_RETAIL = 11;
|
148
|
+
|
149
|
+
// [Local cloud retail](https://cloud.google.com/solutions/retail).
|
150
|
+
LOCAL_CLOUD_RETAIL = 12;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
// [Channel](https://support.google.com/merchants/answer/7361332) of a product.
|
155
|
+
//
|
156
|
+
// Channel is used to distinguish between online and local products.
|
157
|
+
message Channel {
|
158
|
+
// Channel values.
|
159
|
+
enum ChannelEnum {
|
160
|
+
// Not specified.
|
161
|
+
CHANNEL_ENUM_UNSPECIFIED = 0;
|
162
|
+
|
163
|
+
// Online product.
|
164
|
+
ONLINE = 1;
|
165
|
+
|
166
|
+
// Local product.
|
167
|
+
LOCAL = 2;
|
168
|
+
}
|
169
|
+
}
|