You are here

interface PromotionInterface in Commerce Core 8.2

Defines the interface for promotions.

Hierarchy

Expanded class hierarchy of PromotionInterface

All classes that implement PromotionInterface

18 files declare their use of PromotionInterface
BuyXGetY.php in modules/promotion/src/Plugin/Commerce/PromotionOffer/BuyXGetY.php
CombinationOffer.php in modules/promotion/src/Plugin/Commerce/PromotionOffer/CombinationOffer.php
commerce_promotion.post_update.php in modules/promotion/commerce_promotion.post_update.php
Post update functions for Promotion.
CouponStorage.php in modules/promotion/src/CouponStorage.php
CouponStorageInterface.php in modules/promotion/src/CouponStorageInterface.php

... See full list

File

modules/promotion/src/Entity/PromotionInterface.php, line 16

Namespace

Drupal\commerce_promotion\Entity
View source
interface PromotionInterface extends ContentEntityInterface, EntityStoresInterface, EntityChangedInterface, EntityOwnerInterface {
  const COMPATIBLE_ANY = 'any';
  const COMPATIBLE_NONE = 'none';

  /**
   * Gets the promotion name.
   *
   * This name is admin-facing.
   *
   * @return string
   *   The promotion name.
   */
  public function getName();

  /**
   * Sets the promotion name.
   *
   * @param string $name
   *   The promotion name.
   *
   * @return $this
   */
  public function setName($name);

  /**
   * Gets the promotion display name.
   *
   * This name is user-facing.
   * Shown in the order total summary.
   *
   * @return string
   *   The promotion display name. If empty, use t('Discount').
   */
  public function getDisplayName();

  /**
   * Sets the promotion display name.
   *
   * @param string $display_name
   *   The promotion display name.
   *
   * @return $this
   */
  public function setDisplayName($display_name);

  /**
   * Gets the promotion description.
   *
   * @return string
   *   The promotion description.
   */
  public function getDescription();

  /**
   * Sets the promotion description.
   *
   * @param string $description
   *   The promotion description.
   *
   * @return $this
   */
  public function setDescription($description);

  /**
   * Gets the promotion order types.
   *
   * @return \Drupal\commerce_order\Entity\OrderTypeInterface[]
   *   The promotion order types.
   */
  public function getOrderTypes();

  /**
   * Sets the promotion order types.
   *
   * @param \Drupal\commerce_order\Entity\OrderTypeInterface[] $order_types
   *   The promotion order types.
   *
   * @return $this
   */
  public function setOrderTypes(array $order_types);

  /**
   * Gets the promotion order type IDs.
   *
   * @return int[]
   *   The promotion order type IDs.
   */
  public function getOrderTypeIds();

  /**
   * Sets the promotion order type IDs.
   *
   * @param int[] $order_type_ids
   *   The promotion order type IDs.
   *
   * @return $this
   */
  public function setOrderTypeIds(array $order_type_ids);

  /**
   * Gets the offer.
   *
   * @return \Drupal\commerce_promotion\Plugin\Commerce\PromotionOffer\PromotionOfferInterface|null
   *   The offer, or NULL if not yet available.
   */
  public function getOffer();

  /**
   * Sets the offer.
   *
   * @param \Drupal\commerce_promotion\Plugin\Commerce\PromotionOffer\PromotionOfferInterface $offer
   *   The offer.
   *
   * @return $this
   */
  public function setOffer(PromotionOfferInterface $offer);

  /**
   * Gets the conditions.
   *
   * @return \Drupal\commerce\Plugin\Commerce\Condition\ConditionInterface[]
   *   The conditions.
   */
  public function getConditions();

  /**
   * Sets the conditions.
   *
   * @param \Drupal\commerce\Plugin\Commerce\Condition\ConditionInterface[] $conditions
   *   The conditions.
   *
   * @return $this
   */
  public function setConditions(array $conditions);

  /**
   * Gets the condition operator.
   *
   * @return string
   *   The condition operator. Possible values: AND, OR.
   */
  public function getConditionOperator();

  /**
   * Sets the condition operator.
   *
   * @param string $condition_operator
   *   The condition operator.
   *
   * @return $this
   */
  public function setConditionOperator($condition_operator);

  /**
   * Gets the coupon IDs.
   *
   * @return int[]
   *   The coupon IDs.
   */
  public function getCouponIds();

  /**
   * Gets the coupons.
   *
   * @return \Drupal\commerce_promotion\Entity\CouponInterface[]
   *   The coupons.
   */
  public function getCoupons();

  /**
   * Sets the coupons.
   *
   * @param \Drupal\commerce_promotion\Entity\CouponInterface[] $coupons
   *   The coupons.
   *
   * @return $this
   */
  public function setCoupons(array $coupons);

  /**
   * Gets whether the promotion has coupons.
   *
   * @return bool
   *   TRUE if the promotion has coupons, FALSE otherwise.
   */
  public function hasCoupons();

  /**
   * Adds a coupon.
   *
   * @param \Drupal\commerce_promotion\Entity\CouponInterface $coupon
   *   The coupon.
   *
   * @return $this
   */
  public function addCoupon(CouponInterface $coupon);

  /**
   * Removes a coupon.
   *
   * @param \Drupal\commerce_promotion\Entity\CouponInterface $coupon
   *   The coupon.
   *
   * @return $this
   */
  public function removeCoupon(CouponInterface $coupon);

  /**
   * Checks whether the promotion has a given coupon.
   *
   * @param \Drupal\commerce_promotion\Entity\CouponInterface $coupon
   *   The coupon.
   *
   * @return bool
   *   TRUE if the coupon was found, FALSE otherwise.
   */
  public function hasCoupon(CouponInterface $coupon);

  /**
   * Gets the promotion usage limit.
   *
   * Represents the maximum number of times the promotion can be used.
   * 0 for unlimited.
   *
   * @return int
   *   The promotion usage limit.
   */
  public function getUsageLimit();

  /**
   * Sets the promotion usage limit.
   *
   * @param int $usage_limit
   *   The promotion usage limit.
   *
   * @return $this
   */
  public function setUsageLimit($usage_limit);

  /**
   * Gets the per customer promotion usage limit.
   *
   * Represents the maximum number of times the promotion can be used by a customer.
   * 0 for unlimited.
   *
   * @return int
   *   The per customer promotion usage limit.
   */
  public function getCustomerUsageLimit();

  /**
   * Sets the per customer promotion usage limit.
   *
   * @param int $usage_limit_customer
   *   The per customer promotion usage limit.
   *
   * @return $this
   */
  public function setCustomerUsageLimit($usage_limit_customer);

  /**
   * Gets the promotion start date/time.
   *
   * The start date/time should always be used in the store timezone.
   * Since the promotion can belong to multiple stores, the timezone
   * isn't known at load/save time, and is provided by the caller instead.
   *
   * Note that the returned date/time value is the same in any timezone,
   * the "2019-10-17 10:00" stored value is returned as "2019-10-17 10:00 CET"
   * for "Europe/Berlin" and "2019-10-17 10:00 ET" for "America/New_York".
   *
   * @param string $store_timezone
   *   The store timezone. E.g. "Europe/Berlin".
   *
   * @return \Drupal\Core\Datetime\DrupalDateTime
   *   The promotion start date/time.
   */
  public function getStartDate($store_timezone = 'UTC');

  /**
   * Sets the promotion start date/time.
   *
   * @param \Drupal\Core\Datetime\DrupalDateTime $start_date
   *   The promotion start date/time.
   *
   * @return $this
   */
  public function setStartDate(DrupalDateTime $start_date);

  /**
   * Gets the promotion end date/time.
   *
   * The end date/time should always be used in the store timezone.
   * Since the promotion can belong to multiple stores, the timezone
   * isn't known at load/save time, and is provided by the caller instead.
   *
   * Note that the returned date/time value is the same in any timezone,
   * the "2019-10-17 11:00" stored value is returned as "2019-10-17 11:00 CET"
   * for "Europe/Berlin" and "2019-10-17 11:00 ET" for "America/New_York".
   *
   * @param string $store_timezone
   *   The store timezone. E.g. "Europe/Berlin".
   *
   * @return \Drupal\Core\Datetime\DrupalDateTime
   *   The promotion end date/time.
   */
  public function getEndDate($store_timezone = 'UTC');

  /**
   * Sets the promotion end date/time.
   *
   * @param \Drupal\Core\Datetime\DrupalDateTime $end_date
   *   The promotion end date/time.
   *
   * @return $this
   */
  public function setEndDate(DrupalDateTime $end_date = NULL);

  /**
   * Gets the promotion compatibility.
   *
   * @return string
   *   The compatibility.
   */
  public function getCompatibility();

  /**
   * Sets the promotion compatibility.
   *
   * @param string $compatibility
   *   The compatibility.
   *
   * @return $this
   */
  public function setCompatibility($compatibility);

  /**
   * Get whether the promotion is enabled.
   *
   * @return bool
   *   TRUE if the promotion is enabled, FALSE otherwise.
   */
  public function isEnabled();

  /**
   * Sets whether the promotion is enabled.
   *
   * @param bool $enabled
   *   Whether the promotion is enabled.
   *
   * @return $this
   */
  public function setEnabled($enabled);

  /**
   * Gets the weight.
   *
   * @return int
   *   The weight.
   */
  public function getWeight();

  /**
   * Sets the weight.
   *
   * @param int $weight
   *   The weight.
   *
   * @return $this
   */
  public function setWeight($weight);

  /**
   * Checks whether the promotion is available for the given order.
   *
   * Ensures that the order type and store match the promotion's,
   * that the promotion is enabled, the current date matches the
   * start and end dates, and the usage limits are respected.
   *
   * @param \Drupal\commerce_order\Entity\OrderInterface $order
   *   The order.
   *
   * @return bool
   *   TRUE if promotion is available, FALSE otherwise.
   */
  public function available(OrderInterface $order);

  /**
   * Checks whether the promotion can be applied to the given order.
   *
   * Ensures that the promotion is compatible with other
   * promotions on the order, and that the conditions pass.
   *
   * @param \Drupal\commerce_order\Entity\OrderInterface $order
   *   The order.
   *
   * @return bool
   *   TRUE if promotion can be applied, FALSE otherwise.
   */
  public function applies(OrderInterface $order);

  /**
   * Applies the promotion to the given order.
   *
   * @param \Drupal\commerce_order\Entity\OrderInterface $order
   *   The order.
   */
  public function apply(OrderInterface $order);

  /**
   * Allows a promotion to clean up any modifications done to the given order.
   *
   * @param \Drupal\commerce_order\Entity\OrderInterface $order
   *   The order.
   */
  public function clear(OrderInterface $order);

  /**
   * Gets the promotion creation timestamp.
   *
   * @return int
   *   Creation timestamp of the promotion.
   */
  public function getCreatedTime();

  /**
   * Sets the promotion creation timestamp.
   *
   * @param int $timestamp
   *   The promotion creation timestamp.
   *
   * @return $this
   */
  public function setCreatedTime($timestamp);

}

Members

Namesort descending Modifiers Type Description Overrides
AccessibleInterface::access public function Checks data value access. 9
CacheableDependencyInterface::getCacheContexts public function The cache contexts associated with this object. 34
CacheableDependencyInterface::getCacheMaxAge public function The maximum age for which this object may be cached. 34
CacheableDependencyInterface::getCacheTags public function The cache tags associated with this object. 27
EntityChangedInterface::getChangedTime public function Gets the timestamp of the last entity change for the current translation.
EntityChangedInterface::getChangedTimeAcrossTranslations public function Gets the timestamp of the last entity change across all translations.
EntityChangedInterface::setChangedTime public function Sets the timestamp of the last entity change for the current translation.
EntityInterface::bundle public function Gets the bundle of the entity. 2
EntityInterface::create public static function Constructs a new entity object, without permanently saving it. 2
EntityInterface::createDuplicate public function Creates a duplicate of the entity. 2
EntityInterface::delete public function Deletes an entity permanently. 2
EntityInterface::enforceIsNew public function Enforces an entity to be new. 2
EntityInterface::getCacheTagsToInvalidate public function Returns the cache tags that should be used to invalidate caches. 2
EntityInterface::getConfigDependencyKey public function Gets the key that is used to store configuration dependencies. 2
EntityInterface::getConfigDependencyName public function Gets the configuration dependency name. 2
EntityInterface::getConfigTarget public function Gets the configuration target identifier for the entity. 2
EntityInterface::getEntityType public function Gets the entity type definition. 2
EntityInterface::getEntityTypeId public function Gets the ID of the type of the entity. 2
EntityInterface::getOriginalId public function Gets the original ID. 2
EntityInterface::getTypedData public function Gets a typed data object for this entity object. 2
EntityInterface::hasLinkTemplate public function Indicates if a link template exists for a given key. 2
EntityInterface::id public function Gets the identifier. 2
EntityInterface::isNew public function Determines whether the entity is new. 2
EntityInterface::label public function Gets the label of the entity. 2
EntityInterface::language public function Gets the language of the entity. 2
EntityInterface::link Deprecated public function Deprecated way of generating a link to the entity. See toLink(). 2
EntityInterface::load public static function Loads an entity. 2
EntityInterface::loadMultiple public static function Loads one or more entities. 2
EntityInterface::postCreate public function Acts on a created entity before hooks are invoked. 2
EntityInterface::postDelete public static function Acts on deleted entities before the delete hook is invoked. 2
EntityInterface::postLoad public static function Acts on loaded entities. 3
EntityInterface::postSave public function Acts on a saved entity before the insert or update hook is invoked. 2
EntityInterface::preCreate public static function Changes the values of an entity before it is created. 2
EntityInterface::preDelete public static function Acts on entities before they are deleted and before hooks are invoked. 2
EntityInterface::preSave public function Acts on an entity before the presave hook is invoked. 2
EntityInterface::referencedEntities public function Gets a list of entities referenced by this entity. 2
EntityInterface::save public function Saves an entity permanently. 2
EntityInterface::setOriginalId public function Sets the original ID. 2
EntityInterface::toLink public function Generates the HTML for a link to this entity. 2
EntityInterface::toUrl public function Gets the URL object for the entity. 2
EntityInterface::uriRelationships public function Gets a list of URI relationships supported by this entity. 2
EntityInterface::url Deprecated public function Gets the public URL for this entity. 2
EntityInterface::urlInfo Deprecated public function Gets the URL object for the entity. 2
EntityInterface::uuid public function Gets the entity UUID (Universally Unique Identifier). 2
EntityOwnerInterface::getOwner public function Returns the entity owner's user entity. 1
EntityOwnerInterface::getOwnerId public function Returns the entity owner's user ID. 1
EntityOwnerInterface::setOwner public function Sets the entity owner's user entity. 1
EntityOwnerInterface::setOwnerId public function Sets the entity owner's user ID. 1
EntityStoresInterface::getStoreIds public function Gets the store IDs. 2
EntityStoresInterface::getStores public function Gets the stores. 2
EntityStoresInterface::setStoreIds public function Sets the store IDs. 2
EntityStoresInterface::setStores public function Sets the stores. 2
FieldableEntityInterface::baseFieldDefinitions public static function Provides base field definitions for an entity type. 2
FieldableEntityInterface::bundleFieldDefinitions public static function Provides field definitions for a specific bundle. 2
FieldableEntityInterface::get public function Gets a field item list. 1
FieldableEntityInterface::getFieldDefinition public function Gets the definition of a contained field. 1
FieldableEntityInterface::getFieldDefinitions public function Gets an array of field definitions of all contained fields. 1
FieldableEntityInterface::getFields public function Gets an array of all field item lists. 1
FieldableEntityInterface::getTranslatableFields public function Gets an array of field item lists for translatable fields. 1
FieldableEntityInterface::hasField public function Determines whether the entity has a field with the given name. 1
FieldableEntityInterface::isValidationRequired public function Checks whether entity validation is required before saving the entity. 1
FieldableEntityInterface::onChange public function Reacts to changes to a field. 1
FieldableEntityInterface::set public function Sets a field value. 1
FieldableEntityInterface::setValidationRequired public function Sets whether entity validation is required before saving the entity. 1
FieldableEntityInterface::toArray public function Gets an array of all field values. Overrides EntityInterface::toArray
FieldableEntityInterface::validate public function Validates the currently set values. 1
PromotionInterface::addCoupon public function Adds a coupon. 1
PromotionInterface::applies public function Checks whether the promotion can be applied to the given order. 1
PromotionInterface::apply public function Applies the promotion to the given order. 1
PromotionInterface::available public function Checks whether the promotion is available for the given order. 1
PromotionInterface::clear public function Allows a promotion to clean up any modifications done to the given order. 1
PromotionInterface::COMPATIBLE_ANY constant
PromotionInterface::COMPATIBLE_NONE constant
PromotionInterface::getCompatibility public function Gets the promotion compatibility. 1
PromotionInterface::getConditionOperator public function Gets the condition operator. 1
PromotionInterface::getConditions public function Gets the conditions. 1
PromotionInterface::getCouponIds public function Gets the coupon IDs. 1
PromotionInterface::getCoupons public function Gets the coupons. 1
PromotionInterface::getCreatedTime public function Gets the promotion creation timestamp. 1
PromotionInterface::getCustomerUsageLimit public function Gets the per customer promotion usage limit. 1
PromotionInterface::getDescription public function Gets the promotion description. 1
PromotionInterface::getDisplayName public function Gets the promotion display name. 1
PromotionInterface::getEndDate public function Gets the promotion end date/time. 1
PromotionInterface::getName public function Gets the promotion name. 1
PromotionInterface::getOffer public function Gets the offer. 1
PromotionInterface::getOrderTypeIds public function Gets the promotion order type IDs. 1
PromotionInterface::getOrderTypes public function Gets the promotion order types. 1
PromotionInterface::getStartDate public function Gets the promotion start date/time. 1
PromotionInterface::getUsageLimit public function Gets the promotion usage limit. 1
PromotionInterface::getWeight public function Gets the weight. 1
PromotionInterface::hasCoupon public function Checks whether the promotion has a given coupon. 1
PromotionInterface::hasCoupons public function Gets whether the promotion has coupons. 1
PromotionInterface::isEnabled public function Get whether the promotion is enabled. 1
PromotionInterface::removeCoupon public function Removes a coupon. 1
PromotionInterface::setCompatibility public function Sets the promotion compatibility. 1
PromotionInterface::setConditionOperator public function Sets the condition operator. 1
PromotionInterface::setConditions public function Sets the conditions. 1
PromotionInterface::setCoupons public function Sets the coupons. 1
PromotionInterface::setCreatedTime public function Sets the promotion creation timestamp. 1
PromotionInterface::setCustomerUsageLimit public function Sets the per customer promotion usage limit. 1
PromotionInterface::setDescription public function Sets the promotion description. 1
PromotionInterface::setDisplayName public function Sets the promotion display name. 1
PromotionInterface::setEnabled public function Sets whether the promotion is enabled. 1
PromotionInterface::setEndDate public function Sets the promotion end date/time. 1
PromotionInterface::setName public function Sets the promotion name. 1
PromotionInterface::setOffer public function Sets the offer. 1
PromotionInterface::setOrderTypeIds public function Sets the promotion order type IDs. 1
PromotionInterface::setOrderTypes public function Sets the promotion order types. 1
PromotionInterface::setStartDate public function Sets the promotion start date/time. 1
PromotionInterface::setUsageLimit public function Sets the promotion usage limit. 1
PromotionInterface::setWeight public function Sets the weight. 1
RefinableCacheableDependencyInterface::addCacheableDependency public function Adds a dependency on an object: merges its cacheability metadata. 1
RefinableCacheableDependencyInterface::addCacheContexts public function Adds cache contexts. 1
RefinableCacheableDependencyInterface::addCacheTags public function Adds cache tags. 1
RefinableCacheableDependencyInterface::mergeCacheMaxAge public function Merges the maximum age (in seconds) with the existing maximum age. 1
RevisionableInterface::getLoadedRevisionId public function Gets the loaded Revision ID of the entity. 1
RevisionableInterface::getRevisionId public function Gets the revision identifier of the entity. 1
RevisionableInterface::isDefaultRevision public function Checks if this entity is the default revision. 1
RevisionableInterface::isLatestRevision public function Checks if this entity is the latest revision. 1
RevisionableInterface::isNewRevision public function Determines whether a new revision should be created on save. 1
RevisionableInterface::preSaveRevision public function Acts on a revision before it gets saved. 1
RevisionableInterface::setNewRevision public function Enforces an entity to be saved as a new revision. 1
RevisionableInterface::updateLoadedRevisionId public function Updates the loaded Revision ID with the revision ID. 1
RevisionableInterface::wasDefaultRevision public function Checks whether the entity object was a default revision when it was saved. 1
SynchronizableInterface::isSyncing public function Returns whether this entity is being changed as part of a synchronization. 1
SynchronizableInterface::setSyncing public function Sets the status of the synchronization flag. 1
TranslatableInterface::addTranslation public function Adds a new translation to the translatable object. 1
TranslatableInterface::getTranslation public function Gets a translation of the data. 1
TranslatableInterface::getTranslationLanguages public function Returns the languages the data is translated to. 1
TranslatableInterface::getUntranslated public function Returns the translatable object referring to the original language. 1
TranslatableInterface::hasTranslation public function Checks there is a translation for the given language code. 1
TranslatableInterface::hasTranslationChanges public function Determines if the current translation of the entity has unsaved changes. 1
TranslatableInterface::isDefaultTranslation public function Checks whether the translation is the default one. 1
TranslatableInterface::isNewTranslation public function Checks whether the translation is new. 1
TranslatableInterface::isTranslatable public function Returns the translation support status. 1
TranslatableInterface::removeTranslation public function Removes the translation identified by the given language code. 1
TranslatableRevisionableInterface::isDefaultTranslationAffectedOnly public function Checks if untranslatable fields should affect only the default translation. 1
TranslatableRevisionableInterface::isLatestTranslationAffectedRevision public function Checks whether this is the latest revision affecting this translation. 1
TranslatableRevisionableInterface::isRevisionTranslationAffected public function Checks whether the current translation is affected by the current revision. 1
TranslatableRevisionableInterface::isRevisionTranslationAffectedEnforced public function Checks if the revision translation affected flag value has been enforced. 1
TranslatableRevisionableInterface::setRevisionTranslationAffected public function Marks the current revision translation as affected. 1
TranslatableRevisionableInterface::setRevisionTranslationAffectedEnforced public function Enforces the revision translation affected flag value. 1