PHP Class ShoppingCart, silvershop-core

Ensures that an order is only started (persisted to DB) when necessary, and all future changes are on the same order, until the order has is placed. The requirement for starting an order is to adding an item to the cart.
Inheritance: extends Object
ファイルを表示 Open project: burnbright/silverstripe-shop Class Usage Examples

Public Methods

Method Description
__clone ( ) singleton protection
__wakeup ( )
add ( Buyable $buyable, number $quantity = 1, unknown $filter = [] ) : boolean | OrderItem Adds an item to the cart
archiveorderid ( integer | null $requestedOrderId = null ) Store old cart id in session order history
clear ( boolean $write = true ) : boolean Empty / abandon the entire cart.
clearMessage ( )
curr ( ) : Order Shortened alias for ShoppingCart::singleton()->current()
current ( ) : Order Get the current order, or return null if it doesn't exist.
get ( Buyable $buyable, $customfilter = [] ) : OrderItem Finds an existing order item.
getCorrectBuyable ( Buyable $buyable ) : Buyable Ensure the proper buyable will be returned for a given buyable… This is being used to ensure a product with variations cannot be added to the cart… a Variation has to be added instead!
getMessage ( )
getMessageType ( )
remove ( Buyable $buyable, integer $quantity = null, $filter = [] ) : boolean Remove an item from the cart.
setCurrent ( Order $cart ) : ShoppingCart Set the current cart
setQuantity ( Buyable $buyable, integer $quantity = 1, $filter = [] ) : boolean | OrderItem Sets the quantity of an item in the cart.
singleton ( ) : ShoppingCart Access for only allowing access to one (singleton) ShoppingCart.

Protected Methods

Method Description
error ( $message ) Store a new error.
findOrMake ( ) : Order Helper that only allows orders to be started internally.
message ( string $message, string $type = "good" ) Store a message to be fed back to user.

Private Methods

Method Description
findOrMakeItem ( Buyable $buyable, integer $quantity = 1, array $filter = [] ) : OrderItem Finds or makes an order item for a given product + filter.

Method Details

__clone() public method

singleton protection
public __clone ( )

__wakeup() public method

public __wakeup ( )

add() public method

Adds an item to the cart
public add ( Buyable $buyable, number $quantity = 1, unknown $filter = [] ) : boolean | OrderItem
$buyable Buyable
$quantity number
$filter unknown
return boolean | OrderItem false or the new/existing item

archiveorderid() public method

Store old cart id in session order history
public archiveorderid ( integer | null $requestedOrderId = null )
$requestedOrderId integer | null optional parameter that denotes the order that was requested

clear() public method

Empty / abandon the entire cart.
public clear ( boolean $write = true ) : boolean
$write boolean whether or not to write the abandoned order
return boolean - true if successful, false if no cart found

clearMessage() public method

public clearMessage ( )

curr() public static method

Shortened alias for ShoppingCart::singleton()->current()
public static curr ( ) : Order
return Order

current() public method

Get the current order, or return null if it doesn't exist.
public current ( ) : Order
return Order

error() protected method

Store a new error.
protected error ( $message )

findOrMake() protected method

Helper that only allows orders to be started internally.
protected findOrMake ( ) : Order
return Order

get() public method

Finds an existing order item.
public get ( Buyable $buyable, $customfilter = [] ) : OrderItem
$buyable Buyable
return OrderItem the item requested, or false

getCorrectBuyable() public method

Ensure the proper buyable will be returned for a given buyable… This is being used to ensure a product with variations cannot be added to the cart… a Variation has to be added instead!
public getCorrectBuyable ( Buyable $buyable ) : Buyable
$buyable Buyable
return Buyable

getMessage() public method

public getMessage ( )

getMessageType() public method

public getMessageType ( )

message() protected method

Store a message to be fed back to user.
protected message ( string $message, string $type = "good" )
$message string
$type string - good, bad, warning

remove() public method

Remove an item from the cart.
public remove ( Buyable $buyable, integer $quantity = null, $filter = [] ) : boolean
$buyable Buyable
$quantity integer - number of items to remove, or leave null for all items (default)
return boolean success/failure

setCurrent() public method

Set the current cart
public setCurrent ( Order $cart ) : ShoppingCart
$cart Order
return ShoppingCart

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

singleton() public static method

Access for only allowing access to one (singleton) ShoppingCart.
public static singleton ( ) : ShoppingCart
return ShoppingCart