Callable version

Callable ah = new AttributeHelper();

ah.call('setItemAttributesValues', new Map<String,Object>{ 'item'=>qli, 'attributeCodeValueMap'=>new Map<String,Object>{'ATTR_INSTALLMENTS_ELIGIBILITY'=>'No Mobile Plan'}} );

Version agnostic (V1 & V2) attribute setter: OrderItem, QuoteLineItem, OpportunityLineItem

Set attribute value and update line item

SObject item = [SELECT vlocity_cmt__JSONAttribute__c, PricebookEntry.Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, PricebookEntry.Product2.vlocity_cmt__AttributeMetadata__c FROM OrderItem WHERE Id = '...'];
sfix.AttributeHelper.setItemAttributesValues( item, new Map<String,Object>{'ATTR_BROADBAND'=>'1024 MB/s'} );
update item;

Version agnostic (V1 & V2) attribute setter: Asset

Set attribute value and update asset

SObject item = [SELECT vlocity_cmt__JSONAttribute__c, Product2.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c,vlocity_cmt__AttributeMetadataChanges__c, Product2.vlocity_cmt__AttributeMetadata__c FROM Asset WHERE Id = '...'];
sfix.AttributeHelper.setItemAttributesValues( item, new Map<String,Object>{'ATTR_BROADBAND'=>'1024 MB/s'} );
update item;

Version agnostic (V1 & V2) attribute setter: FulfilmentRequestLine

Set attribute value and update fulfillment request line

SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__Product2Id__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__Product2Id__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__FulfilmentRequestLine__c WHERE Id = '...'];
sfix.AttributeHelper.setItemAttributesValues( item, new Map<String,Object>{'ATTR_BROADBAND'=>'1024 MB/s'} );
update item;

Version agnostic (V1 & V2) attribute setter: InventoryItem

Set attribute value and update inventory item

SObject item = [SELECT vlocity_cmt__JSONAttribute__c, vlocity_cmt__ProductId__r.vlocity_cmt__JSONAttribute__c, vlocity_cmt__AttributeSelectedValues__c, vlocity_cmt__ProductId__r.vlocity_cmt__AttributeMetadata__c FROM vlocity_cmt__InventoryItem__c WHERE Id = '...'];
sfix.AttributeHelper.setItemAttributesValues( item, new Map<String,Object>{'ATTR_BROADBAND'=>'1024 MB/s'} );
update item;