Tích hợp nguồn cấp dữ liệu sản phẩm

Ư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ũ):

OfferFeed

Tên trườngLoạiYêu cầuMô tả
datamảng đối tượng
(Offer)

Ưu đãi

Tên trườngLoạiYêu cầuMô tả
offer_idchuỗi

Bắt buộc

Mã nhận dạng duy nhất của ưu đãi. Bắt buộc.
entity_idsmả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_entitiesboolean

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_sourceenum
(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_typeenum
(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_modesmả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_categoryenum
(OfferCategory)

Bắt buộc

Danh mục của ưu đãi. Bắt buộc.
source_assigned_prioritysố

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_detailsobject
(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_restrictionsobject
(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.
couponobject
(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_instrumentobject
(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.
subscriptionobject
(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.
termsobject
(Terms)

Bắt buộc

Điều khoản và điều kiện của ưu đãi. Bắt buộc.
validity_periodsmả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_urlchuỗ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.
tagsmả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_idchuỗ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_levelenum
(AvailabilityLevel)

Mức độ còn hàng của sản phẩm.

OfferDetails

Tên trườngLoạiYêu cầuMô tả
offer_display_textchuỗ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_valueobject
(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_valueobject
(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_costobject
(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_unitenum
(FeeUnit)

Đơn vị của chi phí đặt trước. Ví dụ: mỗi người, mỗi giao dịch.
convenience_feeobject
(Fee)

booking_cost_adjustableboolean

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_feesmả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_typeenum
(OfferDiscountType)

Loại chiết khấu.
gift_card_infoobject
(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ườngLoạiYêu cầuMô tả
currency_codechuỗi

Mã tiền tệ gồm 3 chữ cái được xác định trong ISO 4217.
unitssố

Đơ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ỹ.
nanossố

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ườngLoạiYêu cầuMô tả
unitenum
(FeeUnit)

typeenum
(FeeType)

oneOf
(cost)

Bạn chỉ có thể đặt một trong các trường trong oneOf này.

MoneyRange

Tên trườngLoạiYêu cầuMô tả
min_amountobject
(Money)

max_amountobject
(Money)

AdditionalFee

Tên trườngLoạiYêu cầuMô tả
namechuỗ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.
feeobject
(Fee)

GiftCardInfo

Tên trườngLoạiYêu cầuMô tả
oneOf
(denomination_type)

Chỉ có thể đặt một trong các trường trong oneOf này.

FixedDenominations

Tên trườngLoạiYêu cầuMô tả
amountsmả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ườngLoạiYêu cầuMô tả
combinable_with_other_offersboolean

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_categoriesmả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_idsmả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.
inclusionsmả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).
exclusionsmả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_guestsố

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_restrictionsobject
(FoodOfferRestrictions)

Các quy định hạn chế dành riêng cho mặt hàng thực phẩm.
max_redemption_countsố

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_valueobject
(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_conditionsmả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ườngLoạiYêu cầuMô tả
descriptionchuỗi

FoodOfferRestrictions

Tên trườngLoạiYêu cầuMô tả
meal_typesmả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_coursesboolean

Ư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ườngLoạiYêu cầuMô tả
textchuỗ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.
codechuỗ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ườngLoạiYêu cầuMô tả
itemsmả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_namechuỗ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ườngLoạiYêu cầuMô tả
typeenum
(PaymentInstrumentType)

Bắt buộc

Loại phương thức thanh toán. Bắt buộc.
namechuỗ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ườngLoạiYêu cầuMô tả
namechuỗi

Bắt buộc

Tên của gói thuê bao. Bắt buộc.
subscription_auto_addedboolean

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
costobject
(Money)

Bắt buộc

Chi phí của gói thuê bao. Bắt buộc.
subscription_durationobject
(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_urlchuỗ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ườngLoạiYêu cầuMô tả
secondssố

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
nanossố

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ườngLoạiYêu cầuMô tả
urlchuỗi

URL đến điều khoản và điều kiện của đối tác.
restricted_to_certain_usersboolean

Ưu đãi có bị giới hạn cho một số người dùng nhất định hay không.
terms_and_conditionschuỗ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_conditionsmả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ườngLoạiYêu cầuMô tả
valid_periodobject
(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_daymả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_exceptionsmả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_exceptionsmả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_scopeenum
(ValidityScope)

Chỉ định phạm vi của giai đoạn hiệu lực.
validity_duration_in_dayssố

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ườngLoạiYêu cầuMô tả
valid_from_timeobject
(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_timeobject
(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ườngLoạiYêu cầuMô tả
secondssố

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).
nanossố

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ườngLoạiYêu cầuMô tả
time_windowsobject
(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_weekmả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_monthmả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ườngLoạiYêu cầuMô tả
open_timeobject
(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_timeobject
(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ườngLoạiYêu cầuMô tả
hourssố

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.
minutessố

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.
secondssố

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.
nanossố

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ườngLoạiYêu cầuMô tả
valid_from_daysố

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_daysố

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ườngLoạiYêu cầuMô tả
exceptional_periodobject
(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ườngLoạiYêu cầuMô tả
yearsố

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.
monthsố

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.
daysố

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ênMô 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ênMô 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ênMô tả
OFFER_MODE_OTHERSử 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_PURCHASECho 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ênMô tả
OFFER_CATEGORY_UNSPECIFIEDBạ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ênMô tả
FEE_UNIT_UNSPECIFIEDKhô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ênMô tả
FEE_TYPE_UNSPECIFIEDBạ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ênMô tả
OFFER_DISCOUNT_TYPE_UNSPECIFIED
OFFER_DISCOUNT_TYPE_INSTANT_DISCOUNT
OFFER_DISCOUNT_TYPE_CASHBACK
OFFER_DISCOUNT_TYPE_REWARD_POINT

MealType

TênMô tả
MEAL_TYPE_UNSPECIFIEDKhô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ênMô tả
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIEDBạ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ênMô tả
DAY_OF_WEEK_UNSPECIFIEDNgày trong tuần không được chỉ định.
MONDAYThứ Hai
TUESDAYTuesday (thứ Ba)
WEDNESDAYWednesday (thứ Tư)
THURSDAYThursday (thứ Năm)
FRIDAYFriday (thứ Sáu)
SATURDAYSaturday (thứ Bảy)
SUNDAYChủ 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ênMô tả
VALIDITY_SCOPE_UNSPECIFIED
VALIDITY_SCOPE_CLAIM
VALIDITY_SCOPE_REDEEM

OfferTag

TênMô tả
OFFER_TAG_UNSPECIFIEDKhô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ênMô tả
AVAILABILITY_LEVEL_UNSPECIFIED
AVAILABILITY_LEVEL_LOWCho 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ườngLoạiYêu cầuMô tả
discount_percentsố

Loại trừ lẫn nhau với discount_value, other_offer_detail_text

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_valueobject
(Money)

Loại trừ lẫn nhau với discount_percent, other_offer_detail_text

Giá trị cố định của chiết khấu.
other_offer_detail_textchuỗi

Loại trừ lẫn nhau với discount_percent, discount_value

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ườngLoạiYêu cầuMô tả
amountobject
(Money)

Loại trừ lẫn nhau với amount_range

amount_rangeobject
(MoneyRange)

Loại trừ lẫn nhau với amount

denomination_type

Tên trườngLoạiYêu cầuMô tả
fixed_denominationsobject
(FixedDenominations)

Loại trừ lẫn nhau với custom_range

Dùng khi thẻ quà tặng có các mệnh giá cố định, cụ thể.
custom_rangeobject
(MoneyRange)

Không dùng được với fixed_denominations

Đượ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àm OFFER_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, Subscription hoặc Coupon.
    • Đố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_ids hoặc add_on_offer_applicable_to_all_entities.
  • 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 Offer hợ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ách payment_instrument.items tấ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_OFFER và 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.
  • 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_OFFER và một bản sao được gắn thẻ là OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.
  • 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_OFFER kèm theo thông tin chi tiết PaymentInstrument. ValidityPeriod phả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_OFFER kèm theo thông tin chi tiết PaymentInstrument.
    • 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.

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.