ShoppingCart::singleton PHP Method

singleton() public static method

Access for only allowing access to one (singleton) ShoppingCart.
public static singleton ( ) : ShoppingCart
return ShoppingCart
    public static function singleton()
    {
        return Injector::inst()->get('ShoppingCart');
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Adds a given product to the cart. If a hidden field is passed 
  * (ValidateVariant) then simply a validation of the user including that
  * product is done and the users cart isn't actually changed.
  *
  * @return mixed
  */
 public function addtocart($data, $form)
 {
     if ($variation = $this->getBuyable($data)) {
         $quantity = isset($data['Quantity']) && is_numeric($data['Quantity']) ? (int) $data['Quantity'] : 1;
         $cart = ShoppingCart::singleton();
         // if we are in just doing a validation step then check
         if ($this->request->requestVar('ValidateVariant')) {
             $message = '';
             $success = false;
             try {
                 $success = $variation->canPurchase(null, $data['Quantity']);
             } catch (ShopBuyableException $e) {
                 $message = get_class($e);
                 // added hook to update message
                 $this->extend('updateVariationAddToCartMessage', $e, $message, $variation);
             }
             $ret = array('Message' => $message, 'Success' => $success, 'Price' => $variation->dbObject('Price')->TrimCents());
             $this->extend('updateVariationAddToCartAjax', $ret, $variation, $form);
             return json_encode($ret);
         }
         if ($cart->add($variation, $quantity)) {
             $form->sessionMessage("Successfully added to cart.", "good");
         } else {
             $form->sessionMessage($cart->getMessage(), $cart->getMessageType());
         }
     } else {
         $variation = null;
         $form->sessionMessage("That variation is not available, sorry.", "bad");
         //validation fail
     }
     $this->extend('updateVariationAddToCart', $form, $variation);
     $request = $this->getRequest();
     $this->extend('updateVariationFormResponse', $request, $response, $variation, $quantity, $form);
     return $response ? $response : ShoppingCart_Controller::direct();
 }
All Usage Examples Of ShoppingCart::singleton