Ưu đãi
Tính năng tích hợp ưu đãi cho phép bạn chuyển thông tin có cấu trúc về chương trình khuyến mãi và chiết khấu của người bán được áp dụng cho các dịch vụ cụ thể tại những thời điểm cụ thể. Ưu đãi bao gồm ưu đãi thực tế (giảm phần trăm, giảm giá theo số tiền ...), khoảng thời gian có hiệu lực (thời gian cụ thể, ngày trong tuần ...), và các trường hợp sử dụng áp dụng (ưu đãi chỉ có thể được sử dụng trên một số dịch vụ nhất định) cũng như các tổ hợp phức tạp của quy định hạn chế.
Ví dụ về ưu đãi:
- Giảm một nửa giá món khai vị vào thứ Tư và thứ Năm trong tháng 12, từ 12 giờ trưa đến 5 giờ chiều
- Mua một tặng một món tráng miệng miễn phí cho bữa tối nhân Ngày của Mẹ từ 18:00 đến 22:00
- Giảm 5 USD cho một món ăn trong bữa nửa buổi vào mỗi Chủ Nhật từ 10:00 đến 14:00
- Giảm giá 10% cho khách hàng đến trực tiếp, có thể kết hợp với ưu đãi giảm giá 5% cho người đăng ký gói Premium và giảm giá 5% nếu người dùng thanh toán qua ứng dụng của bạn.
Để được đưa vào quy trình tích hợp, ưu đãi cần phải phù hợp với mô hình dữ liệu kỹ thuật cũng như đáp ứng các yêu cầu của chúng tôi. Hãy nhớ xem chính sách về ưu đãi của chúng tôi để đảm bảo việc tích hợp của bạn tuân thủ chính sách và để biết hướng dẫn về cách xử lý những ưu đãi không đáp ứng các yêu cầu về kỹ thuật.
Cách triển khai ưu đãi
Việc tích hợp ưu đãi bao gồm 2 nguồn cấp dữ liệu sẽ được tải lên hằng ngày hoặc theo tần suất đảm bảo Độ chính xác cao (nghĩa là giảm tình trạng dữ liệu cũ):
- Một trong hai:
- Nguồn cấp dữ liệu của người bán (sử dụng cấu hình
Merchant) - Hoặc
Nguồn cấp dữ liệu thực thể
(sử dụng cấu hình
Generic)
- Nguồn cấp dữ liệu của người bán (sử dụng cấu hình
- Và
Nguồn cấp dữ liệu ưu đãi
(sử dụng cấu hình
Generic)
OfferFeed
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
data | mảng đối tượng(Offer) |
Ưu đãi
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
offer_id | chuỗi | Bắt buộc | Mã nhận dạng duy nhất của ưu đãi. Bắt buộc. |
entity_ids | mảng chuỗi | Danh sách người bán đang tham gia chương trình ưu đãi này. | |
add_on_offer_applicable_to_all_entities | boolean | Nếu đúng, ưu đãi này sẽ áp dụng cho tất cả các thực thể thuộc đơn vị tổng hợp. Chỉ áp dụng cho ưu đãi bổ sung. | |
offer_source | enum(OfferSource) | Bắt buộc | Ưu đãi có thể do đơn vị tổng hợp, một người bán riêng lẻ hoặc thậm chí là một bên thứ ba cung cấp dưới dạng tiện ích bổ sung. Bắt buộc. |
action_type | enum(ActionType) | Bắt buộc | Dịch vụ cung cấp ưu đãi. Một offer_id chỉ có thể thuộc về một action_type. Nếu một ưu đãi có thể được chia sẻ trên nhiều loại dịch vụ, thì bạn nên tạo các ưu đãi trùng lặp có mã nhận dạng duy nhất cho từng loại dịch vụ. Bắt buộc. |
offer_modes | mảng enum(OfferMode) | Bắt buộc | Các phương thức có thể sử dụng ưu đãi – đến trực tiếp, đặt chỗ, trực tuyến, v.v. Bắt buộc. |
offer_category | enum(OfferCategory) | Bắt buộc | Danh mục của ưu đãi. Bắt buộc. |
source_assigned_priority | số | Số nguyên không âm ([1-100], trong đó 1 là mức độ ưu tiên cao nhất) cho biết mức độ ưu tiên của sản phẩm do nguồn chỉ định. Khi có nhiều mặt hàng của cùng một người bán, đây sẽ là một tín hiệu để xếp hạng mặt hàng. 0 cho biết mức độ ưu tiên chưa được đặt. | |
offer_details | object(OfferDetails) | Bắt buộc | Thông tin chi tiết về ưu đãi, chẳng hạn như mức chiết khấu, chi phí đặt phòng, v.v. Bắt buộc. |
offer_restrictions | object(OfferRestrictions) | Bắt buộc | Mô tả cách hạn chế ưu đãi, tức là có cần gói thuê bao/phương thức thanh toán hay không, có thể kết hợp ưu đãi này với các ưu đãi khác (và loại nào) hay không, v.v. Bắt buộc. |
coupon | object(Coupon) | Thông tin chi tiết về một phiếu giảm giá. Bắt buộc đối với offer_category: OFFER_CATEGORY_ADD_ON_COUPON_OFFER. | |
payment_instrument | object(PaymentInstrument) | Thông tin chi tiết về một phương thức thanh toán. Bắt buộc đối với offer_category: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER. | |
subscription | object(Subscription) | Thông tin chi tiết về gói thuê bao. Bắt buộc đối với offer_category: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER. | |
terms | object(Terms) | Bắt buộc | Điều khoản và điều kiện của ưu đãi. Bắt buộc. |
validity_periods | mảng đối tượng(ValidityPeriod) | Bắt buộc | Giai đoạn hiệu lực của ưu đãi. Mô tả khoảng thời gian ưu đãi có hiệu lực, bao gồm thời gian bắt đầu và kết thúc, các ngày trong tuần, v.v. Bắt buộc. |
offer_url | chuỗi | URL đến trang ưu đãi của người bán. Bắt buộc đối với offer_category: OFFER_CATEGORY_BASE_OFFER. | |
tags | mảng enum(OfferTag) | Thẻ đặc biệt liên kết với ưu đãi. Thuộc tính này được dùng để xác định các ưu đãi đặc biệt như "Lễ hội", "Được xếp hạng cao nhất", "Được đặt nhiều nhất", v.v. | |
brand_id | chuỗi | Xác định thương hiệu được liên kết với mặt hàng. Nếu bạn không đặt, thương hiệu mặc định sẽ được sử dụng. | |
availability_level | enum(AvailabilityLevel) | Mức độ còn hàng của sản phẩm. |
OfferDetails
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
offer_display_text | chuỗi | Bắt buộc | Văn bản ưu đãi mà nhà cung cấp ưu đãi muốn hiển thị cho khách hàng trên trang kết quả tìm kiếm. Xin lưu ý rằng đây có thể không phải là nội dung chính xác mà người dùng nhìn thấy và chúng tôi có thể sử dụng siêu dữ liệu khác để viết lại/diễn đạt lại nội dung này. Bắt buộc. |
| oneOf(offer_specification) | Bắt buộc | Bạn chỉ có thể đặt một trong các trường trong oneOf này. |
max_discount_value | object(Money) | Mức chiết khấu tối đa có thể nhận được. Ví dụ: giảm giá 10% lên đến 100 USD. | |
min_spend_value | object(Money) | Mức chi tiêu tối thiểu để được hưởng chiết khấu. Ví dụ: giảm 10% khi tổng giá là 100 USD trở lên. | |
booking_cost | object(Money) | Chi phí để đặt ưu đãi này. Ví dụ: giảm 100 USD trên hoá đơn cuối cùng khi đặt bàn với giá 15 USD. | |
booking_cost_unit | enum(FeeUnit) | Đơn vị của chi phí đặt trước. Ví dụ: mỗi người, mỗi giao dịch. | |
convenience_fee | object(Fee) | ||
booking_cost_adjustable | boolean | Liệu chi phí đặt trước có thể điều chỉnh được hay không, tức là chi phí đặt trước được trừ vào hoá đơn cuối cùng. Ví dụ: Giảm 30% cho bữa tối khi đặt chỗ trước. Chi phí đặt trước là 15 USD và sẽ được áp dụng cho hoá đơn cuối cùng. Do đó, hoá đơn cuối cùng: Tổng số tiền đã chi tiêu – 30% – 15 đô la | |
additional_fees | mảng đối tượng(AdditionalFee) | Các khoản phí bổ sung mà người dùng phải trả. Ví dụ: phí tiện lợi, phí xử lý, phí giao hàng, phí đóng gói, phí dịch vụ, v.v. | |
offer_discount_type | enum(OfferDiscountType) | Loại chiết khấu. | |
gift_card_info | object(GiftCardInfo) | Thông tin chi tiết dành riêng cho ưu đãi về thẻ quà tặng. |
Tiền
Biểu thị số tiền theo loại đơn vị tiền tệ.
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
currency_code | chuỗi | Mã tiền tệ gồm 3 chữ cái được xác định trong ISO 4217. | |
units | số | Đơn vị số nguyên của số tiền.
Ví dụ: nếu currencyCode là "USD", thì 1 đơn vị là 1 đô la Mỹ. | |
nanos | số | Số đơn vị nano (10^-9) của số tiền.
Giá trị phải nằm trong khoảng từ -999.999.999 đến +999.999.999 (bao gồm cả hai giá trị này).
Nếu units là số dương, thì nanos phải là số dương hoặc 0.
Nếu units bằng 0, thì nanos có thể là số dương, số 0 hoặc số âm.
Nếu units là số âm, thì nanos phải là số âm hoặc bằng 0.
Ví dụ: -1,75 USD được biểu thị là units=-1 và nanos=-750.000.000. |
Phí
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
unit | enum(FeeUnit) | ||
type | enum(FeeType) | ||
| oneOf(cost) | Bạn chỉ có thể đặt một trong các trường trong oneOf này. |
MoneyRange
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
min_amount | object(Money) | ||
max_amount | object(Money) |
AdditionalFee
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
name | chuỗi | Bắt buộc | Tên của khoản phí bổ sung. Ví dụ: phí phụ thu, phí xử lý, v.v. Bắt buộc. |
fee | object(Fee) |
GiftCardInfo
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
| oneOf(denomination_type) | Chỉ có thể đặt một trong các trường trong oneOf này. |
FixedDenominations
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
amounts | mảng đối tượng(Money) | Danh sách tất cả các mệnh giá riêng biệt hiện có (ví dụ: [100, 500, 1000]). |
OfferRestrictions
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
combinable_with_other_offers | boolean | Liệu ưu đãi này có thể kết hợp với các ưu đãi khác hay không. Khi đúng, đối tác có thể chỉ định những ưu đãi mà ưu đãi này có thể kết hợp. Nếu bạn đặt cả combinable_offer_categories và combinable_offer_ids thì mọi ưu đãi đáp ứng một trong các điều kiện trên đều có thể kết hợp. | |
combinable_offer_categories | mảng enum(OfferCategory) | Danh sách các loại mặt hàng mà bạn có thể kết hợp với mặt hàng này. Ví dụ: bạn có thể kết hợp ưu đãi này với các Phiếu giảm giá khác. Nếu combinable_with_other_offers là true và trường này không được đặt, thì tất cả các loại đều có thể kết hợp được. | |
combinable_offer_ids | mảng chuỗi | Danh sách offer_id mà ưu đãi này có thể kết hợp. Một số ưu đãi chỉ có thể kết hợp với một số offer_id cụ thể khác (có thể coi là ưu đãi mẹ). Nếu combinable_with_other_offers là true và trường này không được đặt, thì tất cả mã ưu đãi đều có thể kết hợp được. | |
inclusions | mảng đối tượng(OfferCondition) | Danh sách các điều kiện phải đáp ứng để ưu đãi có hiệu lực (ví dụ: đồ uống không cồn, thực phẩm). | |
exclusions | mảng đối tượng(OfferCondition) | Danh sách các điều kiện sẽ làm mất hiệu lực ưu đãi (ví dụ: ưu đãi buffet, ưu đãi kết hợp và cocktail). | |
min_guest | số | Số người tối thiểu cần có để sử dụng ưu đãi. Lưu ý: Trường này chỉ áp dụng cho dịch vụ đặt chỗ ăn uống và không được dùng cho các ngành dọc khác. | |
food_offer_restrictions | object(FoodOfferRestrictions) | Các quy định hạn chế dành riêng cho mặt hàng thực phẩm. | |
max_redemption_count | số | Các quy định hạn chế cụ thể về số lần có thể sử dụng ưu đãi này. Giá trị 0 sẽ chỉ định rằng không có giới hạn. Ví dụ: giá trị là 3 có nghĩa là người dùng có thể sử dụng ưu đãi này 3 lần. | |
max_total_discount_value | object(Money) | Mức chiết khấu tối đa có thể nhận được trong nhiều giao dịch của ưu đãi này. | |
special_conditions | mảng chuỗi | Điều kiện đặc biệt cho ưu đãi này mà bạn phải cho người dùng thấy. Ví dụ: "Chỉ áp dụng cho thanh toán ở [khu vực]", "Không áp dụng cho thanh toán trực tuyến", "Bạn CÓ THỂ sử dụng Phiếu quà tặng trong thời gian diễn ra chương trình Giảm giá". |
OfferCondition
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
description | chuỗi |
FoodOfferRestrictions
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
meal_types | mảng enum(MealType) | Loại bữa ăn mà bạn có thể áp dụng ưu đãi, chẳng hạn như bữa trưa hoặc bữa tối. Nếu bạn không đặt, ưu đãi có thể áp dụng cho tất cả các loại bữa ăn. | |
restricted_to_certain_courses | boolean | Ưu đãi chỉ có thể áp dụng cho một số khoá học nhất định hay không. |
Phiếu giảm giá
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
text | chuỗi | Văn bản phiếu giảm giá mà nhà cung cấp ưu đãi muốn hiển thị cho người dùng. | |
code | chuỗi | Bắt buộc | Bạn phải có mã giảm giá để sử dụng ưu đãi. Bắt buộc. |
PaymentInstrument
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
items | mảng đối tượng(PaymentInstrumentItem) | Bắt buộc | Danh sách các phương thức thanh toán có thể dùng để sử dụng ưu đãi. Bắt buộc. |
provider_name | chuỗi | Tên của nhà cung cấp phương thức thanh toán. Có thể là đối tác ngân hàng, tên ngân hàng, v.v. Ví dụ: American Express, HDFC, ICICI. |
PaymentInstrumentItem
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
type | enum(PaymentInstrumentType) | Bắt buộc | Loại phương thức thanh toán. Bắt buộc. |
name | chuỗi | Bắt buộc | Tên của mục phương thức thanh toán, chẳng hạn như tên của thẻ tín dụng. Ví dụ: HDFC Infinia, American Express Platinum. Bắt buộc. |
Gói đăng ký
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
name | chuỗi | Bắt buộc | Tên của gói thuê bao. Bắt buộc. |
subscription_auto_added | boolean | Gói thuê bao có được tự động thêm khi người dùng sử dụng ưu đãi này hay không | |
cost | object(Money) | Bắt buộc | Chi phí của gói thuê bao. Bắt buộc. |
subscription_duration | object(Duration) | Bắt buộc | Thời hạn của gói thuê bao tại subscription_cost. Bắt buộc. |
terms_and_conditions_url | chuỗi | URL đến điều khoản và điều kiện của đối tác liên quan đến gói thuê bao này. |
Thời lượng
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
seconds | số | Số giây có dấu của khoảng thời gian. Phải nằm trong khoảng từ -315.576.000.000 đến +315.576.000.000. Lưu ý: các giới hạn này được tính từ: 60 giây/phút * 60 phút/giờ * 24 giờ/ngày * 365,25 ngày/năm * 10.000 năm | |
nanos | số | Phân số có dấu của một giây ở độ phân giải nano giây của khoảng thời gian. Khoảng thời gian dưới một giây được biểu thị bằng trường 0 seconds và trường nanos dương hoặc âm. Đối với khoảng thời gian từ một giây trở lên, giá trị khác 0 cho trường nanos phải có cùng dấu với trường seconds. Giá trị phải nằm trong khoảng từ -999.999.999 đến +999.999.999. |
Điều khoản
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
url | chuỗi | URL đến điều khoản và điều kiện của đối tác. | |
restricted_to_certain_users | boolean | Ưu đãi có bị giới hạn cho một số người dùng nhất định hay không. | |
terms_and_conditions | chuỗi | Văn bản điều khoản và điều kiện chính do đối tác cung cấp. | |
additional_terms_and_conditions | mảng chuỗi | Điều khoản và điều kiện bổ sung cho điều khoản và điều kiện chính của đối tác. |
ValidityPeriod
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
valid_period | object(ValidityRange) | Dấu thời gian bắt đầu và kết thúc mà ưu đãi có hiệu lực. Các thời gian này phải đại diện cho các ngày riêng biệt, tức là thời gian bắt đầu phải là 00:00 (bắt đầu ngày) và thời gian kết thúc phải là 00:00 (không bao gồm) vào ngày giai đoạn hiệu lực kết thúc. | |
time_of_day | mảng đối tượng(TimeOfDayWindow) | Chỉ định khoảng thời gian hợp lệ trong một ngày nhất định và những ngày có thể áp dụng ưu đãi. Đối với khung thời gian kéo dài qua nửa đêm (ví dụ: từ 22:00 đến 2:00), hãy sử dụng các khung giờ riêng biệt cho mỗi ngày: một khung giờ kết thúc lúc 23:59:59 và một khung giờ bắt đầu lúc 00:00 ngày hôm sau.
Ví dụ:
Thứ Hai: 10 giờ sáng đến 5 giờ chiều
Thứ Ba: 10 giờ sáng đến 2 giờ chiều
Thứ Ba: 5 giờ chiều đến 7 giờ tối
Thứ Tư, thứ Năm, thứ Sáu, thứ Bảy, Chủ Nhật: 3 giờ chiều đến 7 giờ tối
Nếu bạn không đặt giá trị nào, thì tức là ưu đãi này áp dụng cho mọi thời điểm trong
valid_period. | |
time_exceptions | mảng đối tượng(ValidTimeException) | Chỉ định các trường hợp ngoại lệ cho valid_period và valid_time_of_week ở trên | |
date_exceptions | mảng đối tượng(Date) | Chỉ định các trường hợp ngoại lệ trong ngày cho valid_period và time_of_day ở trên | |
validity_scope | enum(ValidityScope) | Chỉ định phạm vi của giai đoạn hiệu lực. | |
validity_duration_in_days | số | Khoảng thời gian (tính bằng ngày) mà phiếu giảm giá/mã giảm giá có hiệu lực sau khi được mua. |
ValidityRange
Phạm vi dấu thời gian đóng-mở.
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
valid_from_time | object(Timestamp) | Bắt buộc | Thời gian bắt đầu của phạm vi (bao gồm cả thời gian này). Bắt buộc. |
valid_through_time | object(Timestamp) | Thời gian kết thúc của phạm vi (không bao gồm). Nếu bạn không đặt, thì tức là khoảng thời gian này không bao giờ kết thúc. Không bắt buộc. |
Dấu thời gian
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
seconds | số | Biểu thị số giây theo giờ UTC kể từ thời gian Unix 1970-01-01T00:00:00Z. Phải nằm trong khoảng từ -62135596800 đến 253402300799 (tương ứng với 0001-01-01T00:00:00Z đến 9999-12-31T23:59:59Z). | |
nanos | số | Phân số không âm của một giây ở độ phân giải nano giây. Trường này là phần nano giây của thời lượng, không phải là giá trị thay thế cho giây. Giá trị giây âm có phân số vẫn phải có giá trị nano không âm tính theo thời gian. Phải nằm trong khoảng từ 0 đến 999.999.999. |
TimeOfDayWindow
Đối tượng TimeWindow là một thực thể tổng hợp mô tả danh sách các khoảng thời gian mà đơn đặt hàng của người dùng có thể được đặt hoặc thực hiện.
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
time_windows | object(TimeOfDayRange) | Bắt buộc | Khoảng thời gian có thể đặt/thực hiện đơn đặt hàng. Bắt buộc. |
day_of_week | mảng enum(DayOfWeek) | Danh sách các ngày trong tuần áp dụng khung giờ. Nếu bạn không đặt ngày nào, thì tức là chính sách này sẽ áp dụng cho tất cả các ngày trong tuần. Không bắt buộc. | |
day_of_month | mảng đối tượng(DayOfMonthRange) | Các ngày trong tháng áp dụng khoảng thời gian. Nếu bạn không đặt ngày nào, thì tức là chính sách này áp dụng cho tất cả các ngày trong tháng. Không bắt buộc. |
TimeOfDayRange
Một phạm vi thời gian đóng-mở.
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
open_time | object(TimeOfDay) | Thời gian cho biết thời gian bắt đầu của ngày trong phạm vi (bao gồm cả ngày này). Nếu bạn không đặt, thì giá trị mặc định là 00:00:00. Không bắt buộc. | |
close_time | object(TimeOfDay) | Một Thời gian cho biết thời gian kết thúc của ngày trong phạm vi (không bao gồm). Nếu bạn không đặt, thì thời gian mặc định là 23:59:59. Không bắt buộc. |
TimeOfDay
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
hours | số | Giờ trong ngày ở định dạng 24 giờ. Phải lớn hơn hoặc bằng 0 và thường phải nhỏ hơn hoặc bằng 23. Một API có thể chọn cho phép giá trị "24:00:00" cho các trường hợp như giờ đóng cửa của doanh nghiệp. | |
minutes | số | Số phút trong một giờ. Phải lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 59. | |
seconds | số | Số giây trong một phút. Phải lớn hơn hoặc bằng 0 và thường phải nhỏ hơn hoặc bằng 59. Một API có thể cho phép giá trị 60 nếu API đó cho phép giây nhuận. | |
nanos | số | Phân số của giây, tính bằng nano giây. Phải lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 999.999.999. |
DayOfMonthRange
Một phạm vi ngày trong tháng áp dụng cho tất cả các tháng trong năm.
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
valid_from_day | số | Bắt buộc | Ngày bắt đầu của phạm vi (bao gồm cả ngày này). Bắt buộc. |
valid_through_day | số | Ngày kết thúc của phạm vi (bao gồm cả ngày này). Nếu bạn không đặt, thì phạm vi này sẽ đại diện cho một ngày (valid_from_day). Không bắt buộc. |
ValidTimeException
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
exceptional_period | object(ValidityRange) | Dấu thời gian bắt đầu và kết thúc mà ưu đãi không hợp lệ. Những thời điểm này phải thể hiện các ngày riêng biệt, tức là thời gian bắt đầu phải là 00:00 (đầu ngày) và thời gian kết thúc phải là 00:00 (không bao gồm) vào ngày kết thúc khoảng thời gian ngoại lệ. |
Ngày
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
year | số | Năm của ngày. Phải từ 1 đến 9999 hoặc từ 0 để chỉ định một ngày không có năm. | |
month | số | Tháng trong năm. Phải từ 1 đến 12 hoặc 0 để chỉ định một năm không có tháng và ngày. | |
day | số | Ngày trong tháng. Phải từ 1 đến 31 và hợp lệ cho năm và tháng, hoặc 0 để chỉ định một năm riêng lẻ hoặc một năm và tháng mà ngày không quan trọng. |
OfferSource
| Tên | Mô tả |
|---|---|
OFFER_SOURCE_UNSPECIFIED | |
OFFER_SOURCE_AGGREGATOR |
ActionType
Đại diện cho phương thức thực hiện của ưu đãi. Nếu một ưu đãi có thể được chia sẻ trên nhiều phương thức thực hiện, thì bạn nên tạo các ưu đãi trùng lặp cho từng phương thức thực hiện.
| Tên | Mô tả |
|---|---|
ACTION_TYPE_UNSPECIFIED | |
ACTION_TYPE_FOOD_DELIVERY | Ưu đãi này áp dụng cho dịch vụ giao đồ ăn. |
ACTION_TYPE_FOOD_TAKEOUT | Ưu đãi này áp dụng cho các đơn đặt đồ ăn mang đi hoặc đơn đặt hàng tự đến lấy. |
ACTION_TYPE_DINING | Ưu đãi này dành cho dịch vụ dùng bữa tại nhà hàng. |
ACTION_TYPE_APPOINTMENT | Ưu đãi này áp dụng cho các dịch vụ đặt lịch hẹn. |
ACTION_TYPE_SHOPPING_IN_STORE | Ưu đãi này áp dụng cho các giao dịch mua sắm ngoại tuyến, tại cửa hàng thực tế. |
OfferMode
Chỉ định phương thức hoặc kênh mà người dùng có thể sử dụng ưu đãi.
| Tên | Mô tả |
|---|---|
OFFER_MODE_OTHER | Sử dụng cho các phương thức thực hiện đơn hàng không thuộc các chế độ cụ thể khác. |
OFFER_MODE_WALK_IN | Ưu đãi này áp dụng cho khách đến trực tiếp mà không cần đặt trước. |
OFFER_MODE_FREE_RESERVATION | Ưu đãi này áp dụng khi người dùng đặt phòng mà không phải trả trước phí. |
OFFER_MODE_PAID_RESERVATION | Ưu đãi này áp dụng khi người dùng đặt chỗ và cần thanh toán trước. |
OFFER_MODE_ONLINE_ORDER | Ưu đãi này áp dụng cho các đơn đặt hàng được thực hiện thông qua một trang web hoặc nền tảng kỹ thuật số. |
OFFER_MODE_GIFT_CARD_PURCHASE | Cho biết việc mua thẻ quà tặng là bước chính cần thiết để nhận được ưu đãi. |
OfferCategory
Danh mục của ưu đãi. Ưu đãi cơ bản là ưu đãi tiêu chuẩn dành cho tất cả khách hàng, chẳng hạn như giảm giá 10% khi chi tiêu trên 1.000.000 VND. Một sản phẩm cơ sở bị hạn chế bởi phiếu giảm giá hoặc phương thức thanh toán sẽ có các trường tương ứng được đặt. Chúng tôi cũng có các ưu đãi bổ sung như ADD_ON_PAYMENT_OFFER. Bạn có thể thêm những ưu đãi như vậy vào các ưu đãi khác để nhận thêm chiết khấu.
| Tên | Mô tả |
|---|---|
OFFER_CATEGORY_UNSPECIFIED | Bạn không nên sử dụng giá trị enum UNSPECIFIED hoặc giá trị enum mặc định trong nguồn cấp dữ liệu. |
OFFER_CATEGORY_BASE_OFFER | |
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER | |
OFFER_CATEGORY_ADD_ON_COUPON_OFFER | |
OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER | |
OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER |
FeeUnit
| Tên | Mô tả |
|---|---|
FEE_UNIT_UNSPECIFIED | Không được sử dụng giá trị enum UNSPECIFIED hoặc giá trị enum mặc định trong nguồn cấp dữ liệu. |
FEE_UNIT_PER_GUEST | |
FEE_UNIT_PER_TRANSACTION |
FeeType
| Tên | Mô tả |
|---|---|
FEE_TYPE_UNSPECIFIED | Bạn không nên sử dụng giá trị enum UNSPECIFIED hoặc giá trị mặc định trong nguồn cấp dữ liệu. |
FEE_TYPE_FIXED | |
FEE_TYPE_VARIABLE |
OfferDiscountType
| Tên | Mô tả |
|---|---|
OFFER_DISCOUNT_TYPE_UNSPECIFIED | |
OFFER_DISCOUNT_TYPE_INSTANT_DISCOUNT | |
OFFER_DISCOUNT_TYPE_CASHBACK | |
OFFER_DISCOUNT_TYPE_REWARD_POINT |
MealType
| Tên | Mô tả |
|---|---|
MEAL_TYPE_UNSPECIFIED | Không được sử dụng giá trị enum UNSPECIFIED hoặc giá trị enum mặc định trong nguồn cấp dữ liệu. |
MEAL_TYPE_BREAKFAST | |
MEAL_TYPE_LUNCH | |
MEAL_TYPE_DINNER |
PaymentInstrumentType
| Tên | Mô tả |
|---|---|
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIED | Bạn không nên sử dụng giá trị enum UNSPECIFIED hoặc giá trị mặc định trong nguồn cấp dữ liệu. |
PAYMENT_INSTRUMENT_CREDIT_CARD | |
PAYMENT_INSTRUMENT_DEBIT_CARD | |
PAYMENT_INSTRUMENT_BANK_ACCOUNT | |
PAYMENT_INSTRUMENT_UPI | |
PAYMENT_INSTRUMENT_ONLINE_WALLET | |
PAYMENT_INSTRUMENT_NETBANKING |
DayOfWeek
Biểu thị một ngày trong tuần.
| Tên | Mô tả |
|---|---|
DAY_OF_WEEK_UNSPECIFIED | Ngày trong tuần không được chỉ định. |
MONDAY | Thứ Hai |
TUESDAY | Tuesday (thứ Ba) |
WEDNESDAY | Wednesday (thứ Tư) |
THURSDAY | Thursday (thứ Năm) |
FRIDAY | Friday (thứ Sáu) |
SATURDAY | Saturday (thứ Bảy) |
SUNDAY | Chủ Nhật |
ValidityScope
Phạm vi của giai đoạn hiệu lực; tức là chính xác những hành động mà giai đoạn hiệu lực này áp dụng.
| Tên | Mô tả |
|---|---|
VALIDITY_SCOPE_UNSPECIFIED | |
VALIDITY_SCOPE_CLAIM | |
VALIDITY_SCOPE_REDEEM |
OfferTag
| Tên | Mô tả |
|---|---|
OFFER_TAG_UNSPECIFIED | Không được sử dụng giá trị enum UNSPECIFIED hoặc giá trị enum mặc định trong nguồn cấp dữ liệu. |
OFFER_TAG_NEW_YEAR_SPECIAL | |
OFFER_TAG_VALENTINES_SPECIAL |
AvailabilityLevel
Cho biết trạng thái còn hàng hoặc tình trạng cung cấp của một mặt hàng.
| Tên | Mô tả |
|---|---|
AVAILABILITY_LEVEL_UNSPECIFIED | |
AVAILABILITY_LEVEL_LOW | Cho biết ưu đãi sắp hết. Người dùng nên sử dụng phần thưởng này trước khi hết hàng. Chúng tôi có thể thêm mức TRUNG BÌNH và CAO sau. |
offer_specification
Chiết khấu có thể là tỷ lệ phần trăm hoặc giá trị cố định được trừ vào tổng giá trị. Ví dụ: 1. Giảm 10% trên hoá đơn cuối cùng. 2. Giảm 15 đô la Mỹ cho một đơn đặt hàng. Người bán cũng có thể cung cấp các khoản chiết khấu tuỳ chỉnh, chẳng hạn như "mua một tặng một" thông qua các trường quy cách có liên quan. Bắt buộc.
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
discount_percent | số | Loại trừ lẫn nhau với | Tỷ lệ phần trăm hoá đơn được chiết khấu. [0, 100] Đối với ưu đãi 1 tặng 1 hoặc giảm giá 50% áp dụng cho toàn bộ bữa ăn (ví dụ: ưu đãi 1 tặng 1 cho bữa ăn tự chọn, ưu đãi 1 tặng 1 cho toàn bộ hoá đơn, ưu đãi 1 tặng 1 cho thực đơn cố định), bạn có thể đặt giá trị này thành 50. |
discount_value | object(Money) | Loại trừ lẫn nhau với | Giá trị cố định của chiết khấu. |
other_offer_detail_text | chuỗi | Loại trừ lẫn nhau với | Văn bản tự do để mô tả chiết khấu. Đối với các ưu đãi 1+1 cụ thể (ví dụ: 1+1 đồ uống, +1 món chính, 1+1 món ăn chọn lọc), bạn nên mô tả những thông tin chi tiết này tại đây. |
chi phí
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
amount | object(Money) | Loại trừ lẫn nhau với | |
amount_range | object(MoneyRange) | Loại trừ lẫn nhau với |
denomination_type
| Tên trường | Loại | Yêu cầu | Mô tả |
|---|---|---|---|
fixed_denominations | object(FixedDenominations) | Loại trừ lẫn nhau với | Dùng khi thẻ quà tặng có các mệnh giá cố định, cụ thể. |
custom_range | object(MoneyRange) | Không dùng được với | Được dùng khi thương hiệu cho phép người dùng chọn một giá trị mặt tuỳ chỉnh (linh hoạt) trong một phạm vi xác định. |
Tải nguồn cấp dữ liệu lên
Bạn phải tải Nguồn cấp dữ liệu về mặt hàng lên máy chủ SFTP của nguồn cấp dữ liệu Generic. Làm theo hướng dẫn trong bài viết
Cách sử dụng hướng dẫn về máy chủ SFTP của nguồn cấp dữ liệu chung
và sử dụng name được đặt thành google.offer trong tệp mô tả của bạn.
Tần suất tải lên
Nói chung, Google dự kiến bạn sẽ tải 1 nguồn cấp dữ liệu lên mỗi ngày. Bạn có thể tăng hoặc giảm tần suất tuỳ thuộc vào tần suất cập nhật ưu đãi của bạn để đảm bảo độ chính xác luôn ở mức cao. Tham khảo ý kiến của đầu mối liên hệ (POC) của bạn tại Google.
Dữ liệu sẽ mất vài giờ để xuất hiện trên Google.
Phân loại ưu đãi
OFFER_CATEGORY_BASE_OFFER: Ưu đãi có thể được nhận riêng lẻ mà không cần kết hợp với bất kỳ ưu đãi nào khác. bao gồm:- Chiết khấu cố định cho toàn bộ hoá đơn (ví dụ: giảm 20%)
- Ưu đãi dành cho gói thuê bao (ví dụ: Tặng món tráng miệng miễn phí khi mua gói thành viên)
- Ưu đãi thanh toán trong trường hợp không có ưu đãi cơ bản nào khác cho nhà hàng
- Lưu ý: Bạn không nên đặt các ưu đãi miễn phí hoặc giảm phí trên toàn nền tảng làm ưu đãi cơ bản.
- Ưu đãi bổ sung: Ưu đãi yêu cầu người dùng phải nhận ưu đãi cơ bản. Các biện pháp này bao gồm:
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER(ví dụ: Giảm thêm 10% khi dùng một thẻ tín dụng cụ thể)OFFER_CATEGORY_ADD_ON_COUPON_OFFER(ví dụ: Đồ uống miễn phí khi dùng một mã giảm giá cụ thể)OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER(ví dụ: Giảm thêm 10% cho người đăng ký)OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER(ví dụ: Giao hàng miễn phí hoặc giảm phí)
Những điểm khác cần cân nhắc:
- Bạn không nên đặt ưu đãi miễn hoặc giảm phí trên toàn nền tảng làm ưu đãi cơ bản (
OFFER_CATEGORY_BASE_OFFER). Bạn chỉ nên đặt các ưu đãi này làmOFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFERđể bổ sung cho một ưu đãi cơ bản đang hoạt động khác. - Khi một nhà hàng không có Ưu đãi cơ bản, Ưu đãi bổ sung sẽ không xuất hiện.
Nếu không có Ưu đãi cơ bản, thì mọi Ưu đãi thanh toán, Ưu đãi gói thuê bao hoặc Ưu đãi phiếu giảm giá có thể nhận mà không cần thêm vào một ưu đãi khác đều phải được gắn thẻ là
OFFER_CATEGORY_BASE_OFFER.- Tuỳ thuộc vào loại, bạn phải đặt dữ liệu liên quan cho
PaymentInstrument,SubscriptionhoặcCoupon. - Đối tác phải cung cấp 2 bản sao của mỗi ưu đãi này để bao gồm các trường hợp mà ưu đãi hoạt động như cả Ưu đãi cơ bản và Ưu đãi bổ sung. Sau đó, bạn có thể đặt nội dung ưu đãi bổ sung cho nhiều nhà hàng bằng cách sử dụng
entity_idshoặcadd_on_offer_applicable_to_all_entities.
- Tuỳ thuộc vào loại, bạn phải đặt dữ liệu liên quan cho
- Khi một nhà hàng có nhiều Ưu đãi cơ bản có thể kết hợp, tất cả Ưu đãi cơ bản đó phải được gắn thẻ là
OFFER_CATEGORY_BASE_OFFER, đồng thời Ưu đãi cơ bản là ưu đãi Thanh toán, Gói thuê bao hoặc Phiếu giảm giá phải được gửi thêm dưới dạng loại Ưu đãi bổ sung có liên quan. - Bạn nên dùng
ValidityPeriodđể kích hoạt các ưu đãi bổ sung dưới dạng ưu đãi cơ bản chỉ khi không có ưu đãi cơ bản nào đang hoạt động. - Hợp nhất các ưu đãi giống hệt nhau theo phương thức thanh toán: Nếu nhiều phương thức thanh toán có cùng một giá trị chiết khấu (ví dụ: Thẻ tín dụng, Thẻ ghi nợ và Net Banking đều giảm giá 5%), hãy nhóm các phương thức thanh toán đó vào một đối tượng
Offerhợp nhất thay vì gửi các ưu đãi trùng lặp riêng biệt. Để thực hiện việc này, hãy điền vào danh sáchpayment_instrument.itemstất cả các phương thức thanh toán có thể áp dụng. Điều này giúp giảm bớt sự lộn xộn về bố cục trên giao diện của Google và ngăn chặn khả năng bị tụt thứ hạng do có quá nhiều quy định hạn chế trùng lặp.
Các trường hợp ví dụ:
Một nhà hàng giảm giá 5% khi khách hàng thanh toán bằng một thẻ tín dụng cụ thể và tặng đồ uống miễn phí khi khách hàng sử dụng một mã giảm giá cụ thể
- Bạn phải gửi ưu đãi giảm giá 5% khi thanh toán bằng thẻ tín dụng dưới dạng 2 bản sao, một bản được gắn thẻ là
OFFER_CATEGORY_BASE_OFFERvà một bản được gắn thẻ làOFFER_CATEGORY_ADD_ON_PAYMENT_OFFER, trong đó có thông tin chi tiết vềPaymentInstrument. - Bạn nên gửi ưu đãi đồ uống miễn phí có mã giảm giá dưới dạng
OFFER_CATEGORY_ADD_ON_COUPON_OFFER, trong đó có thông tin chi tiết vềCoupon.
- Bạn phải gửi ưu đãi giảm giá 5% khi thanh toán bằng thẻ tín dụng dưới dạng 2 bản sao, một bản được gắn thẻ là
Một nhà hàng giảm giá 10% cho khách không đặt trước và giảm giá 5% khi thanh toán bằng một thẻ tín dụng cụ thể. Hai ưu đãi này có thể kết hợp với nhau.
- Ưu đãi giảm giá 10% cho khách hàng không đặt trước phải được gắn thẻ là
OFFER_CATEGORY_BASE_OFFER. - Ưu đãi giảm 5% khi dùng thẻ tín dụng phải có 2 bản sao, trong đó một bản sao được gắn thẻ là
OFFER_CATEGORY_BASE_OFFERvà một bản sao được gắn thẻ làOFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.
- Ưu đãi giảm giá 10% cho khách hàng không đặt trước phải được gắn thẻ là
Một nhà hàng chỉ giảm 10% cho bữa trưa vào các ngày trong tuần và giảm 5% bất cứ lúc nào khi thanh toán bằng một thẻ tín dụng cụ thể.
- Ưu đãi giảm giá 10% phải được đặt thành
ValidityPeriodđể cho biết chỉ trong giờ ăn trưa của nhà hàng vào các ngày trong tuần. - Bạn nên gửi 2 bản sao của ưu đãi giảm giá 5% khi thanh toán bằng thẻ tín dụng.
- Một bản sao phải được gắn thẻ là
OFFER_CATEGORY_BASE_OFFERkèm theo thông tin chi tiếtPaymentInstrument.ValidityPeriodphải được đặt để loại trừ giờ ăn trưa vào các ngày trong tuần khi ưu đãi giảm giá 10% cho bữa trưa đang hoạt động - Một bản sao phải được gắn thẻ là
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFERkèm theo thông tin chi tiếtPaymentInstrument.
- Một bản sao phải được gắn thẻ là
- Tất cả Ưu đãi thanh toán khác cho nhà hàng này phải được gắn thẻ là
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.
- Ưu đãi giảm giá 10% phải được đặt thành
Quy trình phát triển và ra mắt
Trong suốt quá trình tích hợp, Partner Portal có thể hỗ trợ bạn bằng thông tin và ý kiến phản hồi dựa trên quá trình phát triển của bạn. Quá trình phát triển sẽ diễn ra theo quy trình sau:
- Trước tiên, quá trình tích hợp sẽ được phát triển trong môi trường Hộp cát. Bạn nên sử dụng bản xuất của môi trường phát hành chính thức (hoặc thậm chí là dữ liệu phát hành chính thức trực tiếp) trong môi trường Hộp cát của Google. Điều này giúp đảm bảo rằng quá trình phát triển của bạn bao gồm tất cả các trường hợp hiếm gặp, đồng thời cho phép Google đánh giá chất lượng dữ liệu và hỗ trợ bạn hiệu quả hơn dựa trên mô hình dữ liệu của bạn.
- Sau khi bạn tải nguồn cấp dữ liệu Merchant, Services và Deals hoàn chỉnh và hằng ngày lên một cách nhất quán trong môi trường Sandbox của Google, Nhóm Google sẽ đánh giá nguồn cấp dữ liệu của bạn. Sau khi được nhóm Google phê duyệt, bạn có thể đẩy mã của mình vào môi trường thực tế và bắt đầu gửi dữ liệu thực tế đến môi trường thực tế của Google.
- Sau khi bạn kiểm thử đầy đủ quy trình tích hợp với Môi trường phát hành công khai, nhóm Google cũng sẽ kiểm thử. Sau khi hoàn tất mọi hoạt động kiểm thử, bạn có thể ra mắt quy trình tích hợp.
Giám sát
Để đảm bảo người dùng có trải nghiệm tốt, Google sẽ kiểm tra để đảm bảo các ưu đãi được cung cấp là hợp lệ, chính xác và đáp ứng các tiêu chí trong chính sách của chúng tôi trước và sau khi ra mắt. Để làm việc này, Google sẽ kết hợp quy trình xem xét tự động và thủ công. Bạn có thể xem kết quả của các quy trình đánh giá này trong Trang tổng quan về sản phẩm của Trung tâm hành động (chỉ dành cho phiên bản phát hành công khai). Kết quả của hoạt động giám sát này có thể được dùng để ảnh hưởng đến thứ hạng của các mặt hàng.
Đảm bảo trang mất chưa đến 5 giây để tải hoàn toàn cùng với các sản phẩm, nếu không, trang sẽ được coi là không đạt và bị gắn cờ là Bad link.
Kiểm tra tự động (Trình thu thập dữ liệu)
Nhóm phụ trách chất lượng của Google triển khai trình thu thập dữ liệu. Trình thu thập dữ liệu là tập lệnh tự động hoá một trình duyệt web để thực hiện một số lượt nhấp và trích xuất thông tin về sản phẩm, chỉ nhằm mục đích kiểm tra chất lượng.
Số lượng cụm từ tìm kiếm
Ví dụ: nếu chúng tôi quyết định gửi 5.000 lượt kiểm tra mỗi ngày, thì điều đó có nghĩa là 5.000 lần mỗi ngày (được phân bổ đều trong ngày, tức là khoảng 17 giây một lần), trình thu thập dữ liệu của chúng tôi sẽ thực hiện tất cả các hành động sau đây mà một người dùng thông thường sẽ thực hiện:
- Bắt đầu từ Google Tìm kiếm và nhấp vào đường liên kết của đối tác.
- Tìm thông tin về ưu đãi.
- Nếu yêu cầu đặt chỗ, ưu đãi sẽ tiếp tục chuyển sang quy trình đặt chỗ để xác nhận ưu đãi có sẵn tại thời gian đã chỉ định (không có lượt đặt chỗ nào được thực hiện).
Phát hiện trình trích xuất dữ liệu web
Để đảm bảo trình trích xuất dữ liệu web không bị chặn (điều này có thể khiến trình trích xuất dữ liệu web kết luận rằng các mặt hàng không có sẵn), hãy đảm bảo hệ thống của bạn luôn cho phép trình trích xuất dữ liệu web của chúng tôi truy vấn trang của bạn. Cách xác định trình trích xuất dữ liệu web của chúng tôi:
- Tác nhân người dùng của trình trích xuất dữ liệu web sẽ chứa chuỗi "Google-Offers":
- Ví dụ: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, như Gecko; Google-Offers) Chrome/104.0.5112.101 Safari/537.36
- Bạn cũng có thể kiểm tra xem các lệnh gọi có đến từ Google hay không bằng cách sử dụng DNS ngược như được đề xuất trong phần "Xác minh Googlebot và các trình thu thập dữ liệu khác của Google".
Trong trường hợp cụ thể của chúng tôi, quá trình phân giải DNS ngược tuân theo mẫu sau:
google-proxy-***-***-***-***.google.com.
Hành vi kỹ thuật
Đang lưu vào bộ nhớ đệm
Để giảm tải cho trang web đối tác, trình thu thập dữ liệu của chúng tôi thường được định cấu hình để tuân theo tất cả các tiêu đề chuẩn về việc lưu vào bộ nhớ đệm HTTP có trong phản hồi. Điều đó có nghĩa là đối với các trang web được định cấu hình chính xác, chúng tôi sẽ tránh việc tìm nạp nhiều lần nội dung hiếm khi thay đổi (ví dụ: thư viện JavaScript). Để biết thêm thông tin chi tiết về cách triển khai tính năng lưu vào bộ nhớ đệm, hãy đọc tài liệu về tính năng lưu vào bộ nhớ đệm HTTP này.