/** * Gets a buyable object based on URL actions *@return DataObject | Null - returns buyable */ protected function buyable() { $buyableClassName = Convert::raw2sql($this->getRequest()->param('OtherID')); $buyableID = intval($this->getRequest()->param('ID')); if ($buyableClassName && $buyableID) { if (EcommerceDBConfig::is_buyable($buyableClassName)) { $obj = DataObject::get_by_id($buyableClassName, intval($buyableID)); if ($obj) { if ($obj->ClassName == $buyableClassName) { return $obj; } } } else { if (strpos($buyableClassName, "OrderItem")) { user_error("ClassName in URL should be buyable and not an orderitem", E_USER_NOTICE); } } } return null; }
function quickaddtocartform_add($data, $form) { $shoppingCart = ShoppingCart::singleton(); $buyableID = intval($data["BuyableID"]); $buyableClassName = Convert::raw2sql($data["BuyableClassName"]); $version = Intval($data["Version"]); $quantity = floatval($data["Quantity"]); $status = "bad"; $message = _t("AddToCartPage.ERRORPRODUCTNOTADDED", "ERROR: Product Not Added - make sure to find a product first."); if (class_exists($buyableClassName) && EcommerceDBConfig::is_buyable($buyableClassName)) { $buyable = $buyableClassName::get()->byID($buyableID); if ($buyable) { $shoppingCart->addBuyable($buyable, $quantity); $status = "good"; $message = _t("AddToCartPage.ADDED", "Added"); } } if (Director::is_ajax()) { return $shoppingCart->setMessageAndReturn($message, $status, $form); } else { $form->setMessage($message, $status); $this->redirectBack(); } }