arch-8.x-1.x-dev/modules/cart/src/Cart/CartInterface.php

modules/cart/src/Cart/CartInterface.php
<?php

namespace Drupal\arch_cart\Cart;

use Drupal\arch_price\Price\PriceFactoryInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;

/**
 * Cart interface.
 *
 * @package Drupal\arch_cart\Cart
 */
interface CartInterface {

  const PRICE_TYPE_NET = 'net';
  const PRICE_TYPE_GROSS = 'gross';

  const ITEM_NEW = 'new';
  const ITEM_UPDATE = 'update';
  const ITEM_REMOVE = 'remove';

  /**
   * Set values.
   *
   * @param array $values
   *   Raw values.
   *
   * @return $this
   */
  public function setValues(array $values);

  /**
   * Get values.
   *
   * @return array
   *   Raw values.
   */
  public function getValues();

  /**
   * Get total price.
   *
   * @param \Drupal\currency\Entity\CurrencyInterface|string $currency
   *   Currency.
   *
   * @return array
   *   Price values.
   */
  public function getTotal($currency = NULL);

  /**
   * Get grand total price.
   *
   * @param \Drupal\currency\Entity\CurrencyInterface|string $currency
   *   Currency.
   *
   * @return array
   *   Price values.
   */
  public function getGrandTotal($currency = NULL);

  /**
   * Get total price as PriceInterface instance.
   *
   * @param \Drupal\currency\Entity\CurrencyInterface|string $currency
   *   Currency.
   *
   * @return \Drupal\arch_price\Price\PriceInterface
   *   Price instance.
   */
  public function getTotalPrice($currency = NULL);

  /**
   * Get grand total price as PriceInterface instance.
   *
   * @param \Drupal\currency\Entity\CurrencyInterface|string $currency
   *   Currency.
   *
   * @return \Drupal\arch_price\Price\PriceInterface
   *   Price instance.
   */
  public function getGrandTotalPrice($currency = NULL);

  /**
   * Add message.
   *
   * @param string|\Drupal\Core\StringTranslation\TranslatableMarkup $message
   *   Message.
   * @param bool $merge
   *   Merge messages.
   *
   * @return $this
   */
  public function addMessage($message, $merge = TRUE);

  /**
   * Get messages.
   *
   * @return array
   *   Message list.
   */
  public function getMessages();

  /**
   * List of messages to display. Message list will be cleared.
   *
   * @param bool $clear
   *   Clear messages.
   *
   * @return string[]
   *   List of messages.
   */
  public function displayMessages($clear = TRUE);

  /**
   * Add item.
   *
   * @param mixed $item
   *   Cart item.
   *
   * @return $this
   */
  public function addItem($item);

  /**
   * Get items.
   *
   * @return array
   *   Every item.
   */
  public function getItems();

  /**
   * Check if cart has any item.
   *
   * @return bool
   *   Returns TRUE if cart has any items.
   */
  public function hasItem();

  /**
   * Get product items.
   *
   * @return array
   *   All product items.
   */
  public function getProducts();

  /**
   * Check if cart has any product.
   *
   * @return bool
   *   Returns TRUE if cart has products.
   */
  public function hasProduct();

  /**
   * Get count of products.
   *
   * @return int
   *   Item count.
   */
  public function getCount();

  /**
   * Get item by index.
   *
   * @param int $index
   *   Index.
   *
   * @return array|null
   *   Item with given index.
   */
  public function getItem($index);

  /**
   * Get item by type and ID.
   *
   * @param string $type
   *   Line item type.
   * @param string|int $id
   *   Item ID.
   *
   * @return array|null
   *   Item with given type and ID.
   */
  public function getItemById($type, $id);

  /**
   * Update item.
   *
   * @param int $index
   *   Item index.
   * @param mixed $item
   *   New values for item.
   *
   * @return $this
   */
  public function updateItem($index, $item);

  /**
   * Update item by type and ID.
   *
   * @param string $type
   *   Line item type.
   * @param string|int $id
   *   Item ID.
   * @param mixed $item
   *   New values for item.
   *
   * @return $this
   */
  public function updateItemById($type, $id, $item);

  /**
   * Update item quantity.
   *
   * @param int $index
   *   Item index.
   * @param float $quantity
   *   New item quantity.
   *
   * @return $this
   */
  public function updateItemQuantity($index, $quantity);

  /**
   * Update item quantity by type and ID.
   *
   * @param string $type
   *   Line item type.
   * @param string|int $id
   *   Item ID.
   * @param float $quantity
   *   New item quantity.
   *
   * @return $this
   */
  public function updateItemQuantityById($type, $id, $quantity);

  /**
   * Remove item.
   *
   * @param int $index
   *   Item index.
   *
   * @return $this
   */
  public function removeItem($index);

  /**
   * Remove item by type and ID.
   *
   * @param string $type
   *   Line item type.
   * @param string|int $id
   *   Item ID.
   *
   * @return $this
   */
  public function removeItemById($type, $id);

  /**
   * Get order instance for current cart.
   *
   * @return \Drupal\arch_order\Entity\OrderInterface
   *   Order instance.
   */
  public function &getOrder();

  /**
   * Place order.
   *
   * @return \Drupal\arch_order\Entity\OrderInterface
   *   New order entity.
   */
  public function placeOrder();

  /**
   * Reset cart.
   *
   * @return $this
   */
  public function resetStore();

  /**
   * Set module handler.
   *
   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
   *   Module handler.
   *
   * @return $this
   */
  public function setModuleHandler(ModuleHandlerInterface $module_handler);

  /**
   * Get module handler.
   *
   * @return \Drupal\Core\Extension\ModuleHandlerInterface
   *   Module handler instance.
   */
  public function getModuleHandler();

  /**
   * Set price factory.
   *
   * @param \Drupal\arch_price\Price\PriceFactoryInterface $price_factory
   *   Price factory.
   *
   * @return $this
   */
  public function setPriceFactory(PriceFactoryInterface $price_factory);

  /**
   * Get price factory.
   *
   * @return \Drupal\arch_price\Price\PriceFactoryInterface
   *   Price factory instance.
   */
  public function getPriceFactory();

  /**
   * Get shipping price.
   *
   * @param bool $force_update
   *   Force update.
   *
   * @return \Drupal\arch_price\Price\PriceInterface
   *   Shipping price.
   */
  public function getShippingPrice($force_update = FALSE);

  /**
   * Get shipping extra.
   *
   * @param bool $force_update
   *   Force update.
   *
   * @return \Drupal\arch_price\Price\PriceInterface
   *   Extra shipping price.
   */
  public function getShippingExtra($force_update = FALSE);

  /**
   * Get payment fee.
   *
   * @param bool $force_update
   *   Force update.
   *
   * @return \Drupal\arch_price\Price\PriceInterface|null
   *   Payment fee.
   */
  public function getPaymentFee($force_update = FALSE);

  /**
   * Set default price values.
   *
   * @param array $default_price_values
   *   Default price values.
   *
   * @return $this
   */
  public function setDefaultPriceValues(array $default_price_values);

  /**
   * Set total base values.
   *
   * @param array $total_base_values
   *   Total base values.
   *
   * @return $this
   */
  public function setTotalBaseValues(array $total_base_values);

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc