Magento Module: HubShop.ly

The official Magento connector for HubShop.ly.

See it on GitHub

Details

This module was developed to connect Magento stores to Hubspot for customer, order, and cart abandonment tracking. HubShop.ly is a well-known service for Bigcommerce and Shopify. Although I did not originally build this module, I was hired to re-architect it to meet some more complex needs for Magento merchants.

(Credit to original developer: James Carrao)

My work on this module involved improving its flexibility to run on Magento shops with unique configurations, including those on multi-node environments, shops behind sub-directories, multi-store environments requiring separate HubShop.ly accounts, and those with web server configurations which do not inherently support the Magento REST API.

Screenshots

Initial connector configuration screen

Using the self-diagnostics tool to spot integration problems

Technical Features

Code Sample

public function autoInstall($targetUserId = null, $storeId = null)
{
    $this->enableFeatures($storeId);

    if (is_null($targetUserId)) {
        $targetUserId = $this->_getCurrentAdminUserId();
    }

    $user = Mage::getModel('admin/user')->load($targetUserId);

    if (!$user->getId()) {
        throw new Groove_Hubshoply_SetupException(
            sprintf('Failed to find admin user by ID "%d"', $targetUserId)
        );
    }

    $role = $this->provisionRole();

    $this->provisionAttribute();

    $this->assignUserToRole($user->getId(), $role->getId());

    $this->setupConsumer($storeId);

    Mage::helper('groove_hubshoply/debug')->log('HubShop.ly system installation completed.', Zend_Log::NOTICE);

    return $this;
}

Static Analysis