acquia_commercemanager-8.x-1.122/modules/acm_sku/src/AcquiaCommerce/SKUPluginInterface.php
modules/acm_sku/src/AcquiaCommerce/SKUPluginInterface.php
<?php
namespace Drupal\acm_sku\AcquiaCommerce;
use Drupal\acm_sku\Entity\SKU;
use Drupal\acm_sku\Entity\SKUInterface;
use Drupal\acm_sku\Entity\SKUTypeInterface;
use Drupal\Core\Form\FormStateInterface;
/**
* Defines the required interface to create a SKU Type plugin.
*/
interface SKUPluginInterface {
/**
* Decorates the bundle settings form with additional fields.
*
* @param array $form
* The build form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The form state.
* @param \Drupal\acm_sku\Entity\SKUTypeInterface $sku_type
* The SKU Type entity.
*
* @return array
* The decorated form.
*/
public function decorateSettingsForm(array $form, FormStateInterface $form_state, SKUTypeInterface $sku_type);
/**
* Saves callback when the bundle settings form is submitted.
*
* @param array $form
* The build form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The form state.
* @param \Drupal\acm_sku\Entity\SKUTypeInterface $sku_type
* The SKU Type entity.
*/
public function saveSettingsForm(array $form, FormStateInterface $form_state, SKUTypeInterface $sku_type);
/**
* Builds and returns the renderable array for this SKU Type plugin.
*
* @param array $build
* Drupal's initial render array for this array.
*
* @return array
* A renderable array representing the content of the SKU.
*/
public function build(array $build);
/**
* Returns the form elements for adding this SKU Type to the cart.
*
* @param array $form
* The form definition array for the add to cart form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The current state of the form.
* @param \Drupal\acm_sku\Entity\SKU $sku
* The object of product we want to add to cart.
*
* @return array
* The renderable form array representing the entire add to cart form.
*/
public function addToCartForm(array $form, FormStateInterface $form_state, SKU $sku = NULL);
/**
* Adds validation for the add to cart form.
*
* @param array $form
* The form definition array for the full add to cart form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The current state of the form.
*
* @see \Drupal\acm_sku\AcquiaCommerce\SKUPluginInterface::addToCartForm()
* @see \Drupal\acm_sku\AcquiaCommerce\SKUPluginInterface::addToCartSubmit()
*/
public function addToCartValidate(array &$form, FormStateInterface $form_state);
/**
* Adds submission handling for the add to cart form.
*
* @param array $form
* The form definition array for the full add to cart form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The current state of the form.
*
* @see \Drupal\acm_sku\AcquiaCommerce\SKUPluginInterface::addToCartForm()
* @see \Drupal\acm_sku\AcquiaCommerce\SKUPluginInterface::addToCartValidate()
*/
public function addToCartSubmit(array &$form, FormStateInterface $form_state);
/**
* Process import function.
*
* @param \Drupal\acm_sku\Entity\SKUInterface $sku
* SKU to update.
* @param array $product
* Product array from the API.
*
* @return bool
* True if processing is complete,
* false if more processing is required later.
*/
public function processImport(SKUInterface $sku, array $product);
/**
* Returns the SKUs cart name.
*
* @param \Drupal\acm_sku\Entity\SKU $sku
* SKU to get Cart Name.
* @param array $cart
* Item array from cart.
* @param bool $asString
* Indicates if function should return a string or a renderable array.
*
* @return mixed
* Name as string or a renderable object
*/
public function cartName(SKU $sku, array $cart, $asString = FALSE);
/**
* Returns the SKU's display node.
*
* @param \Drupal\acm_sku\Entity\SKUInterface $sku
* The object of product.
* @param bool $check_parent
* Flag to check for parent sku or not (for configurable products).
* @param bool $create_translation
* Flag to create translation if node available and translation not
* available. Used during sync.
*
* @return \Drupal\node\Entity\Node|null
* Return object of Node or null if not found.
*/
public function getDisplayNode(SKUInterface $sku, $check_parent = TRUE, $create_translation = FALSE);
/**
* Returns the locale-aware formatted price like this '$1,234.56'.
*
* Calls the commerceguys currency formatting functions which
* use the CLDR locales dataset to fetch currency and number formats.
*
* @param \Drupal\acm_sku\Entity\SKU $sku
* The object of product (sku entity).
* @param bool $fetchOriginalPrice
* Indicates if the original price should be returned
* (normally the final price is returned).
*
* @return string|array
* Get locale-aware formatted prices with currency, if there are any
* related products, min and max price is returned in an array.
*/
public function getNumberFormattedPrice(SKU $sku, $fetchOriginalPrice = FALSE);
/**
* Get the display formatted price string.
*
* For use in the admin grid of SKU and other places the product price might
* appear on the admin pages. It is different to the price displays
* on the front of the website which, instead, use the
* Twig HTML templates for layout.
*
* Returns the fully formatted price display without any HTML. Examples are:
* "$1,234.56 excluding tax"
* "$1,234.56 including $234.56 tax"
* "From $234.56 to $1,234.56"
*
* @param \Drupal\acm_sku\Entity\SKU $sku
* The object of product.
* @param bool $fetchOriginalPrice
* Indicates if the original price should be returned
* (normally the final price is returned).
*
* @return string
* Formatted price string.
*/
public function getAdminGridDisplayFormattedPrice(SKU $sku, $fetchOriginalPrice = FALSE);
/**
* Check if product is in stock.
*
* @param \Drupal\acm_sku\Entity\SKU $sku
* SKU Entity.
*
* @return bool
* TRUE if product is in stock.
*/
public function isProductInStock(SKU $sku);
/**
* Returns the stock for the given sku.
*
* @param string|\Drupal\acm_sku\Entity\SKU $sku
* SKU code of the product.
*
* @return int
* Available stock quantity.
*/
public function getStock($sku);
/**
* Refresh stock for particular SKU.
*
* @param \Drupal\acm_sku\Entity\SKU $sku
* SKU Entity.
*/
public function refreshStock(SKU $sku);
}
