arch-8.x-1.x-dev/modules/order/src/Entity/OrderInterface.php
modules/order/src/Entity/OrderInterface.php
<?php
namespace Drupal\arch_order\Entity;
use Drupal\arch_cart\Cart\CartInterface;
use Drupal\arch_order\Services\OrderAddressServiceInterface;
use Drupal\arch_payment\PaymentMethodInterface;
use Drupal\arch_price\Price\PriceInterface;
use Drupal\arch_shipping\ShippingMethodInterface;
use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\Core\Entity\RevisionLogInterface;
use Drupal\user\UserInterface;
/**
* Order entity interface.
*
* @package Drupal\arch_order\Entity
*/
interface OrderInterface extends ContentEntityInterface, RevisionLogInterface {
/**
* Create new order from cart instance.
*
* @param \Drupal\arch_cart\Cart\CartInterface $cart
* Cart instance.
*
* @return \Drupal\arch_order\Entity\OrderInterface
* New order entity.
*/
public static function createFromCart(CartInterface $cart);
/**
* Sets the owner of the Order entity.
*
* @param \Drupal\user\UserInterface $user
* Loaded user.
*
* @return \Drupal\arch_order\Entity\Order
* Actual Order object.
*/
public function setOwner(UserInterface $user);
/**
* Gets the actual owner of Order entity.
*
* @return \Drupal\user\Entity\User|null
* Returns the actual owner of Order entity, or NULL if not set.
*/
public function getOwner();
/**
* Sets owner id.
*
* @param string|int $ownerId
* Owner id.
*
* @return $this
* Order entity instance.
*/
public function setOwnerId($ownerId);
/**
* Default value callback for 'uid' base field definition.
*
* @see ::baseFieldDefinitions()
*
* @return array
* An array of default values.
*/
public static function getCurrentUserId();
/**
* Gets owner id.
*
* @return string|int
* Owner id.
*/
public function getOwnerId();
/**
* Sets the product creation timestamp.
*
* @param int $timestamp
* The product creation timestamp.
*
* @return \Drupal\arch_product\Entity\ProductInterface
* The called product entity.
*/
public function setCreatedTime($timestamp);
/**
* Gets the product creation timestamp.
*
* @return int
* Creation timestamp of the product.
*/
public function getCreatedTime();
/**
* Sets the product changed timestamp.
*
* @param int $timestamp
* The product changed timestamp.
*
* @return \Drupal\arch_product\Entity\ProductInterface
* The called product entity.
*/
public function setChangedTime($timestamp);
/**
* Gets the product changed timestamp.
*
* @return int
* Changed timestamp of the product.
*/
public function getChangedTime();
/**
* Gets the count of purchased products.
*
* @return int
* Count of purchased product.
*/
public function getLineItemsCount();
/**
* Gets the count of purchased products. This is an alias.
*
* @return int
* Count of purchased product.
*/
public function getProductsCount();
/**
* Get list of filtered line items.
*
* @param callable|array|string $callback
* The callback to use for filtering. Like with array_filter(), the
* callback is called for each item in the list. Only items for which the
* callback returns TRUE are return.
*
* @return \Drupal\arch_order\Plugin\Field\FieldType\OrderLineItemFieldItem[]
* Result.
*/
public function filterLineItems($callback);
/**
* Gets the list of purchased products.
*
* @return \Drupal\arch_order\Plugin\Field\FieldType\OrderLineItemFieldItem[]
* Product line item list.
*/
public function getProducts();
/**
* Gets the list of shipping price line items.
*
* @return \Drupal\arch_order\Plugin\Field\FieldType\OrderLineItemFieldItem[]
* Shipping price line item list.
*/
public function getShippingPrices();
/**
* Gets the list of discount line items.
*
* @return \Drupal\arch_order\Plugin\Field\FieldType\OrderLineItemFieldItem[]
* Discount line item list.
*/
public function getDiscounts();
/**
* Get serialized data of order.
*
* @return array
* Data array.
*/
public function getData();
/**
* Update order data.
*
* @param array $data
* New data.
*
* @return $this
*/
public function setData(array $data);
/**
* Get data key.
*
* @param string $key
* Data key.
* @param mixed|null $default
* Default value.
*
* @return mixed
* Data value.
*/
public function getDataKey($key, $default = NULL);
/**
* Update data value.
*
* @param string $key
* Data key.
* @param mixed $value
* Data value.
*
* @return $this
*/
public function setDataKey($key, $value);
/**
* Sets selected shipping method for the order.
*
* @param \Drupal\arch_shipping\ShippingMethodInterface $shipping_method
* Shipping method.
*
* @return $this
*/
public function setShippingMethod(ShippingMethodInterface $shipping_method);
/**
* Gets selected shipping method.
*
* @return \Drupal\arch_shipping\ShippingMethodInterface
* The selected shipping method for the order.
*/
public function getShippingMethod();
/**
* Sets selected shipping method for the order.
*
* @param \Drupal\arch_payment\PaymentMethodInterface $payment_method
* Payment method.
*
* @return $this
*/
public function setPaymentMethod(PaymentMethodInterface $payment_method);
/**
* Gets selected payment method.
*
* @return \Drupal\arch_payment\PaymentMethodInterface
* The selected payment method for the order.
*/
public function getPaymentMethod();
/**
* Set order address service.
*
* @param \Drupal\arch_order\Services\OrderAddressServiceInterface $order_address_service
* Order address service.
*
* @return $this
*/
public function setOrderAddressService(OrderAddressServiceInterface $order_address_service);
/**
* Get order address service.
*
* @return \Drupal\arch_order\Services\OrderAddressServiceInterface
* Order address service.
*/
public function getOrderAddressService();
/**
* Set billing address.
*
* @param \Drupal\arch_order\OrderAddressDataInterface|null $address
* Billing address.
*
* @return $this
*/
public function setBillingAddress($address = NULL);
/**
* Get current billing address data.
*
* @return \Drupal\arch_order\OrderAddressDataInterface|null
* Billing address data.
*/
public function getBillingAddress();
/**
* Set shipping address.
*
* @param \Drupal\arch_order\OrderAddressDataInterface|null $address
* Shipping address.
*
* @return $this
*/
public function setShippingAddress($address = NULL);
/**
* Get shipping address.
*
* @return \Drupal\arch_order\OrderAddressDataInterface|null
* Shipping address data.
*/
public function getShippingAddress();
/**
* Add shipping price line item built from given price.
*
* @param \Drupal\arch_price\Price\PriceInterface $price
* Price value.
* @param string $method_id
* Shipping method plugin id.
*
* @return $this
*/
public function setShippingPrice(PriceInterface $price, $method_id);
/**
* Add shipping extra line item built from given price.
*
* @param \Drupal\arch_price\Price\PriceInterface $price
* Price value.
* @param string $method_id
* Shipping method plugin id.
*
* @return $this
*/
public function setShippingExtra(PriceInterface $price, $method_id);
/**
* Add payment fee line item.
*
* @param \Drupal\arch_price\Price\PriceInterface $price
* Price value.
* @param string $method_id
* Payment method plugin id.
*
* @return $this
*/
public function setPaymentFee(PriceInterface $price, $method_id);
/**
* Get order status entity.
*
* @return \Drupal\arch_order\Entity\OrderStatusInterface
* Order status entity.
*/
public function getStatus();
/**
* Order status ID.
*
* @return string
* Order status ID.
*/
public function getStatusId();
}
