Magento Module: Client Manager

A managed service client provisioning system built on Magento.

Details

This module was developed to manage and automate some client setup workflows for our development team internally. When our team onboards a new managed services account, we typically have to repeat a similar process for inherting the web application. For example, a staging server must be constructed, a task management project needs to be created, and a deployment pipeline needs to be configured. This module was designed to allow a system administrator to use a series of Magento admin panel forms to create new client profiles that would in turn execute the series of provisioners needed to facilitate the onboarding process.

Screenshots

N/A

Technical Features

Code Sample

public function provision($id, $profileId = null)
{
    $provisioner = Mage::getModel('clientele/provisioner')->load($id);

    if (!is_numeric($profileId)) {
        $profile = Mage::getModel('clientele/profile')->loadDefault();
    } else {
        $profile = Mage::getModel('clientele/profile')->load($id);
    }

    if (!$profile->getId()) {
        throw new Exception(sprintf('Profile %d does not exist', $profileId));
    }

    if ($provisioner->getId()) {
        $provisioner->getTypeInstance(true)
            ->run($profile);
    }

    return $provisioner->getResult();
}

Static Analysis