Term(mapping=None, *, ignore_unknown_fields=False, **kwargs)Configurations for the offer term and renewal options. Extending a private offer to a customer that covers a given term constitutes a guarantee to the customer that the product will remain available to them for the duration of the term.
This message has oneof_ fields (mutually exclusive fields).
For each oneof, at most one member field can be set at the same time.
Setting any member of the oneof automatically clears all other
members.
.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
Attributes |
|
|---|---|
| Name | Description |
duration_months |
int
Optional. Duration in months of the offer term. The offer will end on the same day of the month after this duration. If that date is not available, the offer will end on the last day of the month. For example, if the offer starts on 01/31/2024 and the duration is 13 months, the offer will end on 02/28/2025. Must be set to publish the offer if the end policy is AFTER_DURATION or MATCH_AMENDED_OFFER, and
must be a positive value.
The maximum possible offer duration, including all renewal
terms, cannot exceed 7 years. For example, if
duration_months is 9 and term.max_renewal_count is
9, then the maximum possible offer duration is 90 months and
exceeds the 7 year limit.
This field is a member of oneof_ end_policy_data.
|
scheduled_end_time |
google.type.datetime_pb2.DateTime
Optional. Specified end time of the offer. Must be set to publish the offer if the end policy is SCHEDULED_END_TIME. When set, the time must be in the
future and at a day boundary in the America/Los_Angeles time
zone, and must be after term.scheduled_start_time if
applicable.
This field is a member of oneof_ end_policy_data.
|
max_renewal_count |
int
Optional. The max number of renewals allowed, after the initial term ends. This field is only relevant to standard interval offers with interval of 'MONTHLY_PRORATED', 'MONTHLY_NOT_PRORATED', 'QUARTERLY_NOT_PRORATED' or 'YEARLY_NOT_PRORATED'. Other types of offers cannot be renewed. For example, if the initial term is 1 year and the max renewals is 3, the customer can renew the offer for up to 3 additional years after the initial term ends. Customers control whether they renew the offer. Allowing a customer to renew an offer does not constitute a guarantee to the customer that the offered product will still be available to be renewed at the renewal date. An offer with a max renewal count of 0 cannot be renewed. Must be non-negative. This field is a member of oneof_ renewal.
|
unlimited_renewal |
bool
Output only. Deprecated: This field can only be true on existing offers with standard interval of 'MONTHLY_POSTPAY'. As of May 2024, we no longer allow unlimited renewals. This field is a member of oneof_ renewal.
|
start_policy |
google.cloud.commerceproducer_v1beta.types.PrivateOffer.Term.StartPolicy
Optional. Defines when the resulting order should start. Must be set when publishing the offer. |
scheduled_start_time |
google.type.datetime_pb2.DateTime
Optional. The scheduled start time of the offer. Cannot exceed one year from the time of publish. If the start policy is SCHEDULED_START_TIME, a future
time at a day boundary in the America/Los_Angeles time zone
must be provided when publishing the offer.
If the offer amends another private or standard offer, then
the scheduled start time must be:
- Before or equal to the amended offer's end time if the
offer's end policy is not MATCH_AMENDED_OFFER. Otherwise,
it has to be strictly before the amended offer's end time.
- Before or equal to the start time of the next pending
installment of the amended offer, if amending a private
offer with custom installments. For example, if the
amended offer has installments on 01/01, 02/01, 03/01,
04/01, and today is 02/15, then the new offer's
scheduled_start_time must be at or before 03/01.
|
end_policy |
google.cloud.commerceproducer_v1beta.types.PrivateOffer.Term.EndPolicy
Optional. Defines when an offer should end. Must be set when publishing the offer. |
Classes
EndPolicy
EndPolicy(value)Defines when an offer should end.
For example, if the amended offer starts on 01/15/24, and
has a duration of 6 months, then it ends on 07/15/24. If the
current offer coterms to the previous offer, and the current
offer starts on 05/06/24, then it will still end on
07/15/24. Assuming the current offer renews 3 times, then
the terms on the current offer will be:
1. 05/06/24 - 07/15/24 (First term, ends on 07/15 to coterm
with the amended offer)
2. 07/15/24 - 01/15/25 (First renewal term)
3. 01/15/25 - 07/15/25 (Second renewal term)
4. 07/15/25 - 01/15/26 (Third renewal term)
As a contrast, if the current offer does not coterm with the
amended offer (such as when `end_policy` is
`AFTER_DURATION`), then the terms will be:
1. 05/06/24 - 11/06/24 (First term, ends on 11/06, no
coterming)
2. 11/06/24 - 05/06/25 (First renewal term)
3. 05/06/25 - 11/06/25 (Second renewal term)
4. 11/06/25 - 05/06/26 (Third renewal term)
If this is set, then the following conditions must be met:
- `single_product_offer.amended_private_offer` must be
set, and the amended private offer must not be ended.
- The proration policy must not change (e.g., you cannot
switch between `MONTHLY_PRORATED` and
`MONTHLY_NOT_PRORATED`).
- The current offer must not have custom intervals (where
`custom_interval_price` is set).
- `term.duration_months` must match the amended private
offer's duration.
- The amended private offer must not have a standard
interval of `MONTHLY_POSTPAY`.
This is currently not supported.
StartPolicy
StartPolicy(value)Defines when an offer should start.