/** Discounts by category implementation. */ protected static function byCategory($order, $contact, $apply) { if (!$contact) { return 0; } $ccdm = new shopContactCategoryDiscountModel(); return max(0.0, min(100.0, $ccdm->getByContact($contact->getId()))) * $order['total'] / 100.0; }