/** * @param OnlineShop_Framework_Pricing_IEnvironment $environment * * @return OnlineShop_Framework_Pricing_IAction */ public function executeOnProduct(OnlineShop_Framework_Pricing_IEnvironment $environment) { $priceinfo = $environment->getPriceInfo(); $amount = $this->getAmount() !== 0 ? $this->getAmount() : $priceinfo->getAmount() * ($this->getPercent() / 100); $amount = $priceinfo->getAmount() - $amount; $priceinfo->setAmount($amount > 0 ? $amount : 0); return $this; }