ShoppingCart::setQuantity PHP Method

setQuantity() public method

Will automatically add or remove item, if necessary.
public setQuantity ( Buyable $buyable, integer $quantity = 1, $filter = [] ) : boolean | OrderItem
$buyable Buyable
$quantity integer
return boolean | OrderItem false or the new/existing item
    public function setQuantity(Buyable $buyable, $quantity = 1, $filter = array())
    {
        if ($quantity <= 0) {
            return $this->remove($buyable, $quantity, $filter);
        }
        $order = $this->findOrMake();
        $item = $this->findOrMakeItem($buyable, $quantity, $filter);
        if (!$item) {
            return false;
        }
        // If an extension throws an exception, error out
        try {
            $order->extend("beforeSetQuantity", $buyable, $quantity, $filter);
        } catch (Exception $exception) {
            return $this->error($exception->getMessage());
        }
        $item->Quantity = $quantity;
        // If an extension throws an exception, error out
        try {
            $order->extend("afterSetQuantity", $item, $buyable, $quantity, $filter);
        } catch (Exception $exception) {
            return $this->error($exception->getMessage());
        }
        $item->write();
        $this->message(_t("ShoppingCart.QuantitySet", "Quantity has been set."));
        return $item;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Sets the exact passed quantity.
  * Note: If no ?quantity=x is specified in URL, then quantity will be set to 1.
  *@return Mixed - if the request is AJAX, it returns JSON - CartResponse::ReturnCartData(); If it is not AJAX it redirects back to requesting page.
  */
 public function setquantityitem($request)
 {
     $this->cart->setQuantity($this->buyable(), $this->quantity(), $this->parameters());
     return $this->cart->setMessageAndReturn();
 }
All Usage Examples Of ShoppingCart::setQuantity