You can programmatically push data to Google Analytics via Google's Measurement Protocol.
In order to associate custom data to a client id you must create a custom dimension.
Example code (PHP) pushing data to Google Analytics.
// init curl handler
$ch = curl_init();
// replace these values with your tracking id and the client id
$trackingId = '';
$clientId = '';
// set url
$baseUrl = 'https://www.google-analytics.com/debug/collect?v=1&tid='.$trackingId;
$url = $baseUrl.'&t=pageview&dp=%2F&cd1=Sold&cid='.$clientId;
// set options
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => $url
));
$response = curl_exec($ch);
print_r($response);
I am still unsure of how to globally update that custom dimension for the client id, so I created an alternate question for that here.