Skip to content
Snippets Groups Projects
Select Git revision
  • 8.x-2.x
  • 3.x default
  • 3.0.x
  • 7.x-1.x
  • order-comments
  • 3.1.0
  • 3.0.2
  • 3.0.1
  • 3.0.0
  • 3.0.0-beta2
  • 3.0.0-beta1
  • 3.0.0-alpha1
  • 8.x-2.40
  • 8.x-2.39
  • 8.x-2.38
  • 8.x-2.37
  • 8.x-2.36
  • 8.x-2.35
  • 8.x-2.34
  • 8.x-2.33
  • 8.x-2.32
  • 8.x-2.31
  • 8.x-2.30
  • 7.x-1.17
  • 8.x-2.29
25 results

OrderInterface.php

  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    OrderInterface.php 10.77 KiB
    <?php
    
    namespace Drupal\commerce_order\Entity;
    
    use Drupal\commerce_order\EntityAdjustableInterface;
    use Drupal\commerce_price\Price;
    use Drupal\commerce_store\Entity\EntityStoreInterface;
    use Drupal\Core\Entity\ContentEntityInterface;
    use Drupal\Core\Entity\EntityChangedInterface;
    use Drupal\profile\Entity\ProfileInterface;
    use Drupal\user\UserInterface;
    
    /**
     * Defines the interface for orders.
     */
    interface OrderInterface extends ContentEntityInterface, EntityAdjustableInterface, EntityChangedInterface, EntityStoreInterface {
    
      // Refresh states.
      const REFRESH_ON_LOAD = 'refresh_on_load';
      const REFRESH_ON_SAVE = 'refresh_on_save';
      const REFRESH_SKIP = 'refresh_skip';
    
      /**
       * Gets the order number.
       *
       * @return string
       *   The order number.
       */
      public function getOrderNumber();
    
      /**
       * Sets the order number.
       *
       * @param string $order_number
       *   The order number.
       *
       * @return $this
       */
      public function setOrderNumber($order_number);
    
      /**
       * Gets the order version identifier.
       *
       * @return int
       *   Version identifier of the order.
       */
      public function getVersion();
    
      /**
       * Sets the order version identifier.
       *
       * @param int $version
       *   Version identifier of the order.
       *
       * @return $this
       */
      public function setVersion($version);
    
      /**
       * Gets the customer user.
       *
       * @return \Drupal\user\UserInterface
       *   The customer user entity. If the order is anonymous (customer
       *   unspecified or deleted), an anonymous user will be returned. Use
       *   $customer->isAnonymous() to check.
       */
      public function getCustomer();
    
      /**
       * Sets the customer user.
       *
       * @param \Drupal\user\UserInterface $account
       *   The customer user entity.
       *
       * @return $this
       */
      public function setCustomer(UserInterface $account);
    
      /**
       * Gets the customer user ID.
       *
       * @return int
       *   The customer user ID ('0' if anonymous).
       */
      public function getCustomerId();
    
      /**
       * Sets the customer user ID.
       *
       * @param int $uid
       *   The customer user ID.
       *
       * @return $this
       */
      public function setCustomerId($uid);
    
      /**
       * Gets the order email.
       *
       * @return string
       *   The order email.
       */
      public function getEmail();
    
      /**
       * Sets the order email.
       *
       * @param string $mail
       *   The order email.
       *
       * @return $this
       */
      public function setEmail($mail);
    
      /**
       * Gets the order IP address.
       *
       * @return string
       *   The IP address.
       */
      public function getIpAddress();
    
      /**
       * Sets the order IP address.
       *
       * @param string $ip_address
       *   The IP address.
       *
       * @return $this
       */
      public function setIpAddress($ip_address);
    
      /**
       * Gets the billing profile.
       *
       * @return \Drupal\profile\Entity\ProfileInterface|null
       *   The billing profile, or NULL if none found.
       */
      public function getBillingProfile();
    
      /**
       * Sets the billing profile.
       *
       * @param \Drupal\profile\Entity\ProfileInterface $profile
       *   The billing profile.
       *
       * @return $this
       */
      public function setBillingProfile(ProfileInterface $profile);
    
      /**
       * Collects all profiles that belong to the order.
       *
       * This includes the billing profile, plus other profiles added
       * by modules through event subscribers (e.g. the shipping profile).
       *
       * @return \Drupal\profile\Entity\ProfileInterface[]
       *   The order's profiles, keyed by scope (billing, shipping, etc).
       */
      public function collectProfiles();
    
      /**
       * Gets the order items.
       *
       * @return \Drupal\commerce_order\Entity\OrderItemInterface[]
       *   The order items.
       */
      public function getItems();
    
      /**
       * Sets the order items.
       *
       * @param \Drupal\commerce_order\Entity\OrderItemInterface[] $order_items
       *   The order items.
       *
       * @return $this
       */
      public function setItems(array $order_items);
    
      /**
       * Gets whether the order has order items.
       *
       * @return bool
       *   TRUE if the order has order items, FALSE otherwise.
       */
      public function hasItems();
    
      /**
       * Adds an order item.
       *
       * @param \Drupal\commerce_order\Entity\OrderItemInterface $order_item
       *   The order item.
       *
       * @return $this
       */
      public function addItem(OrderItemInterface $order_item);
    
      /**
       * Removes an order item.
       *
       * @param \Drupal\commerce_order\Entity\OrderItemInterface $order_item
       *   The order item.
       *
       * @return $this
       */
      public function removeItem(OrderItemInterface $order_item);
    
      /**
       * Checks whether the order has a given order item.
       *
       * @param \Drupal\commerce_order\Entity\OrderItemInterface $order_item
       *   The order item.
       *
       * @return bool
       *   TRUE if the order item was found, FALSE otherwise.
       */
      public function hasItem(OrderItemInterface $order_item);
    
      /**
       * Removes all adjustments that belong to the order.
       *
       * This includes both order and order item adjustments, with the exception
       * of adjustments added via the UI.
       *
       * @return $this
       */
      public function clearAdjustments();
    
      /**
       * Collects all adjustments that belong to the order.
       *
       * Unlike getAdjustments() which returns only order adjustments, this
       * method returns both order and order item adjustments.
       *
       * Important:
       * The returned adjustments are unprocessed, and must be processed before use.
       *
       * @param string[] $adjustment_types
       *   The adjustment types to include.
       *   Examples: fee, promotion, tax. Defaults to all adjustment types.
       *
       * @return \Drupal\commerce_order\Adjustment[]
       *   The adjustments.
       *
       * @see \Drupal\commerce_order\AdjustmentTransformerInterface::processAdjustments()
       */
      public function collectAdjustments(array $adjustment_types = []);
    
      /**
       * Gets the order subtotal price.
       *
       * Represents a sum of all order item totals.
       *
       * @return \Drupal\commerce_price\Price|null
       *   The order subtotal price, or NULL.
       */
      public function getSubtotalPrice();
    
      /**
       * Recalculates the order total price.
       *
       * @return $this
       */
      public function recalculateTotalPrice();
    
      /**
       * Gets the order total price.
       *
       * Represents a sum of all order item totals along with adjustments.
       *
       * @return \Drupal\commerce_price\Price|null
       *   The order total price, or NULL.
       */
      public function getTotalPrice();
    
      /**
       * Gets the total paid price.
       *
       * @return \Drupal\commerce_price\Price|null
       *   The total paid price, or NULL.
       */
      public function getTotalPaid();
    
      /**
       * Sets the total paid price.
       *
       * @param \Drupal\commerce_price\Price $total_paid
       *   The total paid price.
       */
      public function setTotalPaid(Price $total_paid);
    
      /**
       * Gets the order balance.
       *
       * Calculated by subtracting the total paid price from the total price.
       * Can be negative in case the order was overpaid.
       *
       * @return \Drupal\commerce_price\Price|null
       *   The order balance, or NULL.
       */
      public function getBalance();
    
      /**
       * Gets whether the order has been fully paid.
       *
       * Free orders (total price is zero) are considered fully paid once
       * they have been placed.
       *
       * Non-free orders are considered fully paid once their balance
       * becomes zero or negative.
       *
       * @return bool
       *   TRUE if the order has been fully paid, FALSE otherwise.
       */
      public function isPaid();
    
      /**
       * Gets the order state.
       *
       * @return \Drupal\state_machine\Plugin\Field\FieldType\StateItemInterface
       *   The order state.
       */
      public function getState();
    
      /**
       * Gets the order refresh state.
       *
       * @return string|null
       *   The refresh state, if set. One of the following order constants:
       *   REFRESH_ON_LOAD: The order should be refreshed when it is next loaded.
       *   REFRESH_ON_SAVE: The order should be refreshed before it is saved.
       *   REFRESH_SKIP: The order should not be refreshed for now.
       */
      public function getRefreshState();
    
      /**
       * Sets the order refresh state.
       *
       * @param string $refresh_state
       *   The order refresh state.
       *
       * @return $this
       */
      public function setRefreshState($refresh_state);
    
      /**
       * Gets an order data value with the given key.
       *
       * Used to store temporary data during order processing (i.e. checkout).
       *
       * @param string $key
       *   The key.
       * @param mixed $default
       *   The default value.
       *
       * @return mixed
       *   The value.
       */
      public function getData($key, $default = NULL);
    
      /**
       * Sets an order data value with the given key.
       *
       * @param string $key
       *   The key.
       * @param mixed $value
       *   The value.
       *
       * @return $this
       */
      public function setData($key, $value);
    
      /**
       * Unsets an order data value with the given key.
       *
       * @param string $key
       *   The key.
       *
       * @return $this
       */
      public function unsetData($key);
    
      /**
       * Gets whether the order is locked.
       *
       * @return bool
       *   TRUE if the order is locked, FALSE otherwise.
       */
      public function isLocked();
    
      /**
       * Locks the order.
       *
       * @return $this
       */
      public function lock();
    
      /**
       * Unlocks the order.
       *
       * @return $this
       */
      public function unlock();
    
      /**
       * Gets the order creation timestamp.
       *
       * @return int
       *   Creation timestamp of the order.
       */
      public function getCreatedTime();
    
      /**
       * Sets the order creation timestamp.
       *
       * @param int $timestamp
       *   The order creation timestamp.
       *
       * @return $this
       */
      public function setCreatedTime($timestamp);
    
      /**
       * Gets the order placed timestamp.
       *
       * @return int
       *   The order placed timestamp.
       */
      public function getPlacedTime();
    
      /**
       * Sets the order placed timestamp.
       *
       * @param int $timestamp
       *   The order placed timestamp.
       *
       * @return $this
       */
      public function setPlacedTime($timestamp);
    
      /**
       * Gets the order completed timestamp.
       *
       * @return int
       *   The order completed timestamp.
       */
      public function getCompletedTime();
    
      /**
       * Sets the order completed timestamp.
       *
       * @param int $timestamp
       *   The order completed timestamp.
       *
       * @return $this
       */
      public function setCompletedTime($timestamp);
    
      /**
       * Gets the calculation date/time for the order.
       *
       * Used during order processing, for determining promotion/tax availability.
       * Matches the placed timestamp, if the order has been placed.
       * Otherwise, falls back to the current request date/time.
       *
       * @return \Drupal\Core\Datetime\DrupalDateTime
       *   The calculation date/time, in the store timezone.
       */
      public function getCalculationDate();
    
      /**
       * Gets the customer comments.
       *
       * @return string|null
       *   The customer comments.
       */
      public function getCustomerComments(): ?string;
    
      /**
       * Sets the customer comments.
       *
       * @param string $comments
       *   The customer comments.
       *
       * @return $this
       */
      public function setCustomerComments(string $comments): static;
    
    }