/** * @param $code * @return bool|OnlineShop_Framework_VoucherService_ITokenManager */ public function getTokenManager($code) { if ($token = OnlineShop_Framework_VoucherService_Token::getByCode($code)) { if ($series = \Pimcore\Model\Object\OnlineShopVoucherSeries::getById($token->getVoucherSeriesId())) { return $series->getTokenManager(); } } return false; }
/** * @param string $code * @param OnlineShop_Framework_ICart $cart * @param OnlineShop_Framework_AbstractOrder $order * * @throws Exception * * @return bool|\Pimcore\Model\Object\OnlineShopVoucherToken */ public function applyToken($code, OnlineShop_Framework_ICart $cart, OnlineShop_Framework_AbstractOrder $order) { if ($token = OnlineShop_Framework_VoucherService_Token::getByCode($code)) { if ($token->isUsed()) { throw new Exception('Token has already been used.', 1); } if ($token->apply()) { $orderToken = new \Pimcore\Model\Object\OnlineShopVoucherToken(); $orderToken->setTokenId($token->getId()); $orderToken->setToken($token->getToken()); $series = \Pimcore\Model\Object\OnlineShopVoucherSeries::getById($token->getVoucherSeriesId()); $orderToken->setVoucherSeries($series); $orderToken->setParent($series); $orderToken->setKey(\Pimcore\File::getValidFilename($token->getToken())); $orderToken->setPublished(1); $orderToken->save(); return $orderToken; } } return false; }