/** * ─────────────────────────────────────────────────────────────────────────────────────────────────┐ * This class is handle for all Aura Component's Controller. * Shopify API Documentation: https://shopify.dev/docs/admin-api/rest/reference * Create Shopify Store: https://www.shopify.com/signup?itcat=identity&itterm=create-new-store * Shopify API Release 2020: https://www.shopify.in/partners/blog/shopify-api-release-january-2020 * What is Person Account in Salesforce ? https://help.salesforce.com/articleView?id=account_person.htm&type=5 * ────────────────────────────────────────────────────────────────────────────────────────────────── * @author Sumit * ────────────────────────────────────────────────────────────────────────────────────────────────── */ public with sharing class AddDeleteController { //Wrapper class for field mapping public class FieldWrapper{ @AuraEnabled public String filedlabel{get;set;} @AuraEnabled public String filedApiName{get;set;} @AuraEnabled public String dataType{get;set;} } //Use @AuraEnabled to enable client- and server-side access to the method @AuraEnabled public static String getUserName() { return userinfo.getName(); } /**************************************getSampeledata*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Use for get all sample records from the Shopify's store with limit of 5 in each recoord * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static list getSampeledata(String store){ list listofallsampledata = new list(); List configurationList = new List(); String query = 'Select '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c, name, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Order_Sync__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__ProductVariantBatchCompleted__c,HIC_ShopifySync__Batch_Is_Processing__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Person_Account__c ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999'; configurationList = database.query(query); System.debug('configurationList-'+configurationList); listofallsampledata = getlistofobjecforsample('products.json',configurationList,listofallsampledata); listofallsampledata = getlistofobjecforsample('customers.json',configurationList,listofallsampledata); if(configurationList[0].HIC_ShopifySync__Collection_Sync__c){ listofallsampledata = getlistofobjecforsample('custom_collections.json',configurationList,listofallsampledata); }else{ listofallsampledata.add('null'); } if(configurationList[0].HIC_ShopifySync__Order_Sync__c == True ){ listofallsampledata = getlistofobjecforsample('orders.json',configurationList,listofallsampledata); }else{ listofallsampledata.add('null'); } if(configurationList[0].HIC_ShopifySync__Draft_Order_Sync__c ){ listofallsampledata = getlistofobjecforsample('draft_orders.json',configurationList,listofallsampledata); }else{ listofallsampledata.add('null'); } if(configurationList[0].HIC_ShopifySync__Inventory_Location_Sync__c ){ listofallsampledata = getlistofobjecforsample('locations.json',configurationList,listofallsampledata); }else{ listofallsampledata.add('null'); } if(!listofallsampledata.isEmpty()){ return listofallsampledata; }else{ return null; } } /**************************************getlistofobjecforsample*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Use for get all sample records from the Shopify's store with limit of 5 in each recoord * @param String objectname - Shopify's Entity Name (Oject Name) * @param list configurationList - ListofConfigurationSettings * @param list listofallsampledata - list of all sample records * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static list getlistofobjecforsample(String objectname,list configurationList, list listofallsampledata){ String JSONbody; if(configurationList.isEmpty()) return null; JSONbody = HIC_ShopifyUtility.fetchAllDataUsingId(objectname+'?limit=5',configurationList); if((JSONbody == '' || JSONbody == null || JSONbody == '{}') ) { listofallsampledata.add('null'); }else{ Map meta = (Map) JSON.deserializeUntyped(JSONbody); if(!meta.isEmpty() && meta.containsKey(objectname.remove('.json'))){ List objectList = (List) meta.get(objectname.remove('.json')); if((objectList.isEmpty() || objectList == null ) && objectname == 'custom_collections.json'){ JSONbody = HIC_ShopifyUtility.fetchAllDataUsingId('smart_collections.json?limit=5',configurationList); if((JSONbody == '' || JSONbody == null || JSONbody == '{}') ) { listofallsampledata.add('null'); return listofallsampledata; }else{ Map metanew = (Map) JSON.deserializeUntyped(JSONbody); if(!meta.isEmpty() && metanew.containsKey('smart_collections')){ objectList = (List) metanew.get('smart_collections'); } } } if(!objectList.isEmpty() && objectList != null ){ listofallsampledata.add(JSON.serialize(objectList)); }else{ listofallsampledata.add('null'); } } } return listofallsampledata; } /**************************************getusertimezone*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Use for get user time zone * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static string getusertimezone(){ TimeZone tz = UserInfo.getTimeZone(); String GMTValue = tz.getDisplayName(); return UserInfo.getTimeZone().getDisplayName().trim().substring(4,7); } /**************************************getListofLogs*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of all Shopify Logs records from Salesforce * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled() public static List getListofLogs(){ List listoflogs = new List(); listoflogs = [select id,name,HIC_ShopifySync__Error_id__c,Createddate,LastModifieddate,HIC_ShopifySync__Shopify_Id__c,HIC_ShopifySync__Is_Webhook__c,HIC_ShopifySync__Info__c,HIC_ShopifySync__Second_Info__c,HIC_ShopifySync__Third_Info__c,HIC_ShopifySync__Store__c from HIC_ShopifySync__Shopify_Log__c WITH SECURITY_ENFORCED order by createdDate desc Limit 2000]; if(!listoflogs.isempty()){ Map sObjectMap = Schema.getGlobalDescribe(); Map mapofObjectApivsLabel = new Map(); String labelobj = ''; for(HIC_ShopifySync__Shopify_Log__c obj : listoflogs){ labelobj = ''; if(String.isNotBlank(obj.name)){ if(mapofObjectApivsLabel.containskey(obj.name)){ obj.name = mapofObjectApivsLabel.get(obj.name); }else if(sObjectMap.containskey(obj.name)){ labelobj = sObjectMap.get(obj.name).getDescribe().getLabel(); mapofObjectApivsLabel.put(obj.name,labelobj); obj.name = labelobj; } } } system.debug('listoflogs--->'+listoflogs); return listoflogs; } return null; } // wrapper class use for Shopify Logs public class displaylogwrapper{ @AuraEnabled public list listoflogs {get;set;} @AuraEnabled public String usertimezone {get;set;} } /**************************************saveCurrencyISOCode*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Save Currency ISOCode Selected from User * @param String CurrencyISOCodeValue - CurrencyISOCode * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean saveCurrencyISOCode(String CurrencyISOCodeValue){ system.debug('CurrencyISOCodeValue -- '+CurrencyISOCodeValue); String currencyvalue; Boolean Ischanged = false; String store = 'Default'; if(CurrencyISOCodeValue == null || CurrencyISOCodeValue == '') return true; map mapofcurrencyvalue = (map) JSON.deserializeUntyped(CurrencyISOCodeValue); if( !mapofcurrencyvalue.isEmpty() && mapofcurrencyvalue != null && mapofcurrencyvalue.containskey('CurrencyISOCode') && mapofcurrencyvalue.containskey('IsChanged') ){ currencyvalue = String.valueof(mapofcurrencyvalue.get('CurrencyISOCode')); Ischanged = boolean.valueof(mapofcurrencyvalue.get('IsChanged')); store = String.valueof(mapofcurrencyvalue.get('store')); } Boolean multiCurrencyEnabled = true; List currencyMappingList = new List(); String query = ''; String CurrencyShopifyFieldValue = ''; if(multiCurrencyEnabled){ //Update Currency if(Ischanged){ updateIschangeCurrencyconfigupdate(store); } query = ' select '+CheckAccessibility.isAccessible('name,HIC_ShopifySync__Store_External_ID__c,HIC_ShopifySync__External_ID__c,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Nested__c , HIC_ShopifySync__IsSFID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where ' +CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__HIC_Field_Mapping__c') +'= \'CurrencyISOCODE\' AND ' +CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' LIMIT 49999'; currencyMappingList = database.query(query); if(currencyvalue == null || currencyvalue == '') return true; for(HIC_ShopifySync__HIC_Field_Mapping__c allcurrency : currencyMappingList){ allcurrency.Id = null; allcurrency.HIC_ShopifySync__Shopify_Fields__c = currencyvalue ; allcurrency.HIC_ShopifySync__Store_External_ID__c = store+allcurrency.HIC_ShopifySync__External_ID__c; } try{ //update Configuration upsert currencyMappingList HIC_ShopifySync__Store_External_ID__c ; return true; }catch(exception e){ return false; } }else{ return true; } } /**************************************updateIschangeCurrencyconfigupdate*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Update Currency into the configuration * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static void updateIschangeCurrencyconfigupdate(String store){ List config = new List(); config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__IsCurrencyChanged__c,name','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999'); if(config.isEmpty()) return; config[0].HIC_ShopifySync__IsCurrencyChanged__c = true; try{ upsert config name ; }catch(exception e){ } } /**************************************getlistofCurrencyISOCode*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get List of Currency from Salesforce * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static list getlistofCurrencyISOCode(String store){ List currencyMappingList = new List(); try{ Boolean multiCurrencyEnabled = Schema.getGlobalDescribe().containsKey('CurrencyType'); list ListofcurrncyvalueAndValue = new list(); String query = ' select '+CheckAccessibility.isAccessible('name,HIC_ShopifySync__External_ID__c,HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Fields__c,HIC_ShopifySync__GQL_Field_API__c, HIC_ShopifySync__Nested__c , HIC_ShopifySync__IsSFID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__HIC_Field_Mapping__c')+ ' = \'order\' And ' +CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__HIC_Field_Mapping__c') +'= \'CurrencyISOCODE\' And '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999'; currencyMappingList = database.query(query); if(currencyMappingList.isEmpty()){ currencyMappingList.add(processFieldMappingSobjectWithAllFields('Opportunity','CurrencyISOCODE','','',true,false,'PICKLIST','string',store)); currencyMappingList.add(processFieldMappingSobjectWithAllFields('Order','CurrencyISOCODE','','',true,false,'PICKLIST','string',store)); currencyMappingList.add(processFieldMappingSobjectWithAllFields('DraftOrder','CurrencyISOCODE','','',true,false,'PICKLIST','string',store)); currencyMappingList.add(processFieldMappingSobjectWithAllFields('Product2','CurrencyISOCODE','','',true,false,'PICKLIST','string',store)); upsert currencyMappingList HIC_ShopifySync__Store_External_ID__c; } if(multiCurrencyEnabled){ String ListType = 'List'; List listOfAllCurrencyCode = (List)Type.forName(ListType).newInstance(); list Listofcurrency = new list(); listOfAllCurrencyCode = database.query('SELECT id,ISOCode FROM CurrencyType WHERE IsActive=TRUE WITH SECURITY_ENFORCED limit 999'); for(sobject obj1 : listOfAllCurrencyCode){ CurrencyISOList CurrencyWrapper = new CurrencyISOList(); CurrencyWrapper.ISOCode = String.valueof(obj1.get('ISOCode')); Listofcurrency.add(CurrencyWrapper); } if(currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c != null && currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c != ''){ ListofcurrncyvalueAndValue.add(currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c); }else{ ListofcurrncyvalueAndValue.add(UserInfo.getDefaultCurrency()); } ListofcurrncyvalueAndValue.add(JSON.serialize(Listofcurrency)); return ListofcurrncyvalueAndValue; }else{ if( !currencyMappingList.isEmpty() && currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c != null && currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c != ''){ ListofcurrncyvalueAndValue.add(currencyMappingList[0].HIC_ShopifySync__Shopify_Fields__c); }else{ ListofcurrncyvalueAndValue.add(UserInfo.getDefaultCurrency()); } ListofcurrncyvalueAndValue.add(''); return ListofcurrncyvalueAndValue; } }catch(Exception e){ return null; } } //Wrapper list for Currency public class CurrencyISOList{ @AuraEnabled public String ISOCode; } /**************************************Deletesitefromconfig*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Delete Site URL From Configuration * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean Deletesitefromconfig(){ List config = new List(); config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__Salesforce_Site_URL__c,name ','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1'); if(config.isEmpty()) return false; if(config[0].HIC_ShopifySync__Salesforce_Site_URL__c != null && config[0].HIC_ShopifySync__Salesforce_Site_URL__c != ''){ config[0].HIC_ShopifySync__Salesforce_Site_URL__c = null; } try{ database.update(config) ; return true; }catch(exception e){ return false; } } /**************************************CheckSitefromConfiguration*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get last saved Salesforce Site URL in Configuration * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static string CheckSitefromConfiguration(){ List config = new List(); config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__Salesforce_Site_URL__c,name ','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1'); if(config.isEmpty()) return 'false'; if(config[0].HIC_ShopifySync__Salesforce_Site_URL__c != null && config[0].HIC_ShopifySync__Salesforce_Site_URL__c != '') { return config[0].HIC_ShopifySync__Salesforce_Site_URL__c; } else{ return 'false'; } } /**************************************savesiteurlconfig*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Save Salesforce's Site URL into Configuration settings * @param String siteurl - Salesforce's Site URl Selected by User * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean savesiteurlconfig(String siteurl){ List config = new List(); config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__Salesforce_Site_URL__c,name ','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1'); if(config.isEmpty()) return false; config[0].HIC_ShopifySync__Salesforce_Site_URL__c = siteurl; try{ upsert config name ; return true; }catch(exception e){ return false; } } /**************************************batchabortedconfigupdate*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Update Configuration When Batch is Abort or get Any error on the Batch * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean batchabortedconfigupdate(){ List config = new List(); config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__IsCurrencyChanged__c,name ','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1'); if(config.isEmpty()) return false; config[0].HIC_ShopifySync__BatchisAborted__c = true; try{ upsert config name ; return true; }catch(exception e){ return false; } } /**************************************updateconfigurationpbatchprocessingfield*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Update Configuration When Batch Processig is completed * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean updateconfigurationpbatchprocessingfield(String store){ List config = new List(); config = database.query('select '+Checkaccessibility.isAccessible('HIC_ShopifySync__IsCurrencyChanged__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__BatchisAborted__c,name ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999'); if(config.isempty()) return false; config[0].HIC_ShopifySync__Batch_Is_Processing__c = false; config[0].HIC_ShopifySync__BatchisAborted__c = false; config[0].HIC_ShopifySync__IsCurrencyChanged__c = false; try{ upsert config name ; return true; }catch(exception e){ return false; } } /**************************************returnDomainUrl*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get Salesforce Base URl for Authentication * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static string returnDomainUrl(){ return URL.getSalesforceBaseUrl().toExternalForm(); } /**************************************CheckSiteClassandPageAccess*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Check package class access in Site User * Apex class Name: AuthenticateAllApexClass * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean CheckSiteClassandPageAccess(String Guestuserid){ List siteList = new List(); list listofsitewrapper = new list(); siteList = database.query('SELECT '+Checkaccessibility.isAccessible('GuestUserId, Name,MasterLabel, Subdomain, OptionsRequireHttps, UrlPathPrefix', 'Site') +' FROM Site WHERE '+Checkaccessibility.isAccessible('Status','Site') + ' = \'Active\' and '+Checkaccessibility.isAccessible('GuestUserId','Site') + ' = \''+Guestuserid+'\' Limit 1'); if(!Test.isRunningTest()){ if(siteList.isEmpty()) return false; } boolean SiteAccess = false; list listofApexclass = new list(); list listofAllApexclass = new list(); list listofApexPage = new list(); list listofALlApexPage = new list(); list listofuser = new list(); Integer NumberOfApexClass =0; Integer NumberOfApexPage=0; listofuser = [select id,profileid from user where usertype= 'Guest' and id =: Guestuserid WITH SECURITY_ENFORCED]; if(!listofuser.isEmpty()){ String profileid = listofuser[0].profileid; NumberOfApexClass = Integer.valueof(System.Label.NumberofApexClasses); listofApexclass = [SELECT NamespacePrefix, Name FROM ApexClass WHERE Id IN (SELECT SetupEntityId FROM SetupEntityAccess WHERE Parent.Profileid =: profileid ) and NamespacePrefix = 'HIC_ShopifySync' and name = 'AuthenticateAllApexClass' WITH SECURITY_ENFORCED limit 1 ]; if(!listofApexclass.isEmpty() && listofApexclass != null ){ return true; } } return false; } /**************************************CreateAuthenticateURL*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Create RemoteSite Setting for Authentication URL * https://test.salesforce.com * https://login.salesforce.com * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static void CreateAuthenticateURL(){ Organization orgRecord; String URL = ''; if(Schema.sObjectType.organization.isAccessible() && Schema.sObjectType.organization.fields.issandbox.isAccessible() && Schema.sObjectType.organization.fields.id.isAccessible() ){ orgRecord = [select id,issandbox from organization LIMIT 1]; if(orgRecord.issandbox){ URL = 'https://test.salesforce.com'; }else{ URL = 'https://login.salesforce.com'; } } if(URL != ''){ if(!CheckingRemotesiteExistence(URL)){ createRemoteSiteSettings(URL); } } } /**************************************createRemoteSiteSettings*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Create RemoteSite Setting for Authentication URL * @param String URL - URL for Create RemoteSite Setting * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static void createRemoteSiteSettings(String URL){ try{ if(URL == null || URL == '' || CheckingRemotesiteExistence(URL))return; MetadataServiceNew.MetadataPort service = createService(); MetadataServiceNew.RemoteSiteSetting remoteSiteSettings = new MetadataServiceNew.RemoteSiteSetting(); remoteSiteSettings.fullName = 'HICShopifysyncmadeeasy'+DateTime.now().getTime(); remoteSiteSettings.url = URL; remoteSiteSettings.description='HIC Shopify Made Easy'; remoteSiteSettings.isActive=true; remoteSiteSettings.disableProtocolSecurity=false; if(!Test.isRunningTest()){ MetadataServiceNew.AsyncResult[] results = service.create(new List { remoteSiteSettings }); MetadataServiceNew.AsyncResult[] checkResults = service.checkStatus(new List {string.ValueOf(results[0].Id)}); } }catch(Exception e){ } } /**************************************createToolingRemoteSiteSettings*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Create RemoteSite Setting for Tooling API URL * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String createToolingRemoteSiteSettings(){ String SFdomainUrl = URL.getSalesforceBaseUrl().toExternalForm(); if(CheckingRemotesiteExistence(SFdomainUrl)) return 'true'; try{ MetadataServiceNew.MetadataPort service = createService(); MetadataServiceNew.RemoteSiteSetting remoteSiteSettings = new MetadataServiceNew.RemoteSiteSetting(); remoteSiteSettings.fullName = 'HICShopifysyncmadeeasy'+DateTime.now().getTime(); remoteSiteSettings.url = SFdomainUrl; remoteSiteSettings.description='HIC Shopify Made Easy'; remoteSiteSettings.isActive=true; remoteSiteSettings.disableProtocolSecurity=false; if(!Test.isRunningTest()){ MetadataServiceNew.AsyncResult[] results = service.create(new List { remoteSiteSettings }); MetadataServiceNew.AsyncResult[] checkResults = service.checkStatus(new List {string.ValueOf(results[0].Id)}); } if(Test.isRunningTest()){ throw new applicationException(); } return 'true'; }catch(Exception e){ String Exceptionmessage = e.getMessage(); if(Test.isRunningTest()){ Exceptionmessage = 'apex job=test/serviceshttps:google.com'; } if(Exceptionmessage == null || Exceptionmessage == '' || !Exceptionmessage.containsignorecase('=')) return 'false'; list messagefirstpartlist = Exceptionmessage.split('='); if(messagefirstpartlist.isEmpty() && messagefirstpartlist.size() != 1 && (messagefirstpartlist[1] == null || messagefirstpartlist[1] == '') ) return 'false'; String URl = messagefirstpartlist[1]; list messageSecondpartlist = URl.split('/services'); if(messageSecondpartlist.isEmpty()) return 'false'; return messageSecondpartlist[0]; } } /**************************************createService*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * MetaData Service Class * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ public static MetadataServiceNew.MetadataPort createService(){ MetadataServiceNew.MetadataPort service = new MetadataServiceNew.MetadataPort(); service.SessionHeader = new MetadataServiceNew.SessionHeader_element(); service.SessionHeader.sessionId = UserInfo.getSessionId(); return service; } /**************************************CheckshopifycertificateandRemotesite*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Verfiy RemoteSite Setting exist or not * @param String Urltype - certificate/RemoteSite based on value check existance * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean CheckshopifycertificateandRemotesite(String Urltype){ boolean exist = false; System.debug('Urltype---'+Urltype); String SFdomainUrl = URL.getSalesforceBaseUrl().toExternalForm(); try{ HttpRequest req = new HttpRequest(); req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionID()); //Get user Session ID req.setHeader('Content-Type', 'application/json'); String query; if(Urltype == 'certificate'){ query='select+id,+DeveloperName+from+Certificate+where+DeveloperName=+\'Shopify\'+and+ExpirationDate+>=+today'; }else{ query='select+id,+EndpointUrl+from+Remotesitesetting+where+EndpointUrl=+\''+SFdomainUrl+'\''; } req.setEndpoint(SFdomainUrl+'/services/data/v58.0/tooling/query/?q='+query); req.setMethod('GET'); req.setTimeout(120000); Http h = new Http(); HttpResponse response; String CertificateResponse; if(!Test.isRunningTest()){ response = h.send(req); CertificateResponse = response.getBody().trim(); }else{ CertificateResponse = '{"size":1,"totalSize":1,"done":true,"queryLocator":null,"entityTypeName":"Certificate","records":[{"attributes":{"type":"Certificate","url":"/services/data/v58.0/tooling/sobjects/Certificate/0P12v000006b5K9CAI"},"Id":"0P12v000006b5K9CAI","DeveloperName":"Shopify"}]}'; } Map mapofcertificate = (Map) JSON.deserializeUntyped(CertificateResponse); if(!mapofcertificate.isempty() && mapofcertificate != null && mapofcertificate.containskey('size')){ if(Integer.valueof(mapofcertificate.get('size')) > 0){ exist = true; } } return exist; }catch(Exception e){ return exist; } } /**************************************CheckingRemotesiteExistence*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Verfiy RemoteSite Setting exist or not * @param String SFdomainUrl - RemoteSite based on value check existance * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean CheckingRemotesiteExistence(String SFdomainUrl){ boolean exist = false; String OrgURl = URL.getSalesforceBaseUrl().toExternalForm(); try{ HttpRequest req = new HttpRequest(); req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionID()); //Get user Session ID req.setHeader('Content-Type', 'application/json'); String query='select+id,+EndpointUrl+from+Remotesitesetting+where+EndpointUrl=+\''+SFdomainUrl+'\''; req.setEndpoint(OrgURl+'/services/data/v58.0/tooling/query/?q='+query); req.setMethod('GET'); req.setTimeout(120000); Http h = new Http(); HttpResponse response; String RemotesitesettingResponse; if(!Test.isRunningTest()){ response = h.send(req); RemotesitesettingResponse = response.getBody().trim(); }else{ RemotesitesettingResponse = '{"size":0,"totalSize":1,"done":true,"queryLocator":null,"entityTypeName":"Certificate","records":[{"attributes":{"type":"Certificate","url":"/services/data/v58.0/tooling/sobjects/Certificate/0P12v000006b5K9CAI"},"Id":"0P12v000006b5K9CAI","DeveloperName":"Shopify"}]}'; } System.debug('response---- '+ RemotesitesettingResponse); if(RemotesitesettingResponse == null || RemotesitesettingResponse =='') return false; Map mapofRemoteSitesettings = (Map) JSON.deserializeUntyped(RemotesitesettingResponse); if(!mapofRemoteSitesettings.isempty() && mapofRemoteSitesettings != null && mapofRemoteSitesettings.containskey('size')){ if(Integer.valueof(mapofRemoteSitesettings.get('size')) > 0){ exist = true; } } return exist; }Catch(Exception e){ System.debug('Exception---- '+ e); return exist; } } /**************************************getWriteReviewURL*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get URL For Shopify APP Review * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static string getWriteReviewURL(){ list listofDocument = new list(); list listofDocumentWrapper = new list(); listofDocument = [SELECT Id, Name,Url, FolderId, Folder.Name FROM Document WHERE Folder.Name = 'Hic Shopify made easy logo' and URl != null WITH SECURITY_ENFORCED limit 100]; if(listofDocument.isEmpty()) return null; for(Document dc : listofDocument){ // MapofDocumentNameVsURL.put(dc.name,dc.Url); DocumentWrapper DcObj = new DocumentWrapper(); DcObj.name = dc.name; DcObj.Url = dc.Url; listofDocumentWrapper.add(DcObj); } return JSON.serialize(listofDocumentWrapper); } //Wrapper class for Documents public class DocumentWrapper{ @AuraEnabled public String name{get;set;} @AuraEnabled public String Url{get;set;} } /**************************************getUIThemeDescription*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get Salesforce Currennt Theme * Lightnig / Classic * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getUIThemeDescription() { String theme = UserInfo.getUiThemeDisplayed(); return theme; } /**************************************CheckingBatchDetails*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get Current batch status and errors * @param String ObjectName - Shopify Entity's Name (Object name) * @param String ApexClassName - batch Class name for check current status * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @auraEnabled public static String CheckingBatchDetails(String ObjectName,String ApexClassName, String store){ List apList = new List([Select Id,name from ApexClass where Name =: ApexClassName]); map MapOfApexClassvsObjectName = new map(); if(apList.isEmpty()) return 'Not Class present'; if(ObjectName == 'Product2' || ObjectName == 'HIC_ShopifySync__Variant__c' || ObjectName == 'Account' || ObjectName == 'Contact' || ObjectName == 'Order' || ObjectName == 'Opportunity' || ObjectName == 'Draftorder' || ObjectName == 'HIC_ShopifySync__Inventory__c'){ List config = new List(); config = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__AccountContactBatchCompleted__c,HIC_ShopifySync__ProductVariantBatchCompleted__c,HIC_ShopifySync__DraftOrderBatchCompleted__c,HIC_ShopifySync__InventoryBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Batch_Is_Processing__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999'); list listofAsyncApexJobNotCompleted = new list(); listofAsyncApexJobNotCompleted = [SELECT ApexClassID,Status FROM AsyncApexJob WHERE JobType='BatchApex' AND (Status = 'Processing' OR Status = 'Holding' OR Status = 'Queued' OR Status = 'Preparing') AND ApexClassID =: apList[0].Id ORDER BY createddate DESC limit 1 ] ; if(!config.isEmpty()){ if(listofAsyncApexJobNotCompleted.isEmpty() && config[0].HIC_ShopifySync__ProductVariantBatchCompleted__c == true && (ObjectName == 'Product2' || ObjectName == 'HIC_ShopifySync__Variant__c')){ Integer totalCount = GetRealtimeData(ObjectName); return 'Completed'+String.valueOf(totalCount); } if(listofAsyncApexJobNotCompleted.isEmpty() && config[0].HIC_ShopifySync__AccountContactBatchCompleted__c == true && (ObjectName == 'Account' || ObjectName == 'Contact')){ Integer totalCount = GetRealtimeData(ObjectName); return 'Completed'+String.valueOf(totalCount); } if((listofAsyncApexJobNotCompleted.isEmpty() || config[0].HIC_ShopifySync__Draft_Order_Sync__c) && config[0].HIC_ShopifySync__OrderBatchCompleted__c == true && (ObjectName == 'Order' || ObjectName == 'Opportunity')){ Integer totalCount = GetRealtimeData(ObjectName); return 'Completed'+String.valueOf(totalCount); } if(listofAsyncApexJobNotCompleted.isEmpty() && config[0].HIC_ShopifySync__InventoryBatchCompleted__c == true && ObjectName == 'HIC_ShopifySync__Inventory__c' ){ Integer totalCount = GetRealtimeData(ObjectName); return 'Completed'+String.valueOf(totalCount); } if(listofAsyncApexJobNotCompleted.isEmpty() && config[0].HIC_ShopifySync__DraftOrderBatchCompleted__c == true && ObjectName == 'Draftorder' ){ Integer totalCount = GetRealtimeData(ObjectName); return 'Completed'+String.valueOf(totalCount); } } } list listofAsyncApexJob = new list(); listofAsyncApexJob = [SELECT ApexClassID,Status,ExtendedStatus FROM AsyncApexJob WHERE JobType='BatchApex' AND (Status = 'Processing' OR Status = 'Holding' OR Status = 'Queued' OR Status = 'Preparing' OR Status = 'Aborted' OR Status = 'Completed' OR Status = 'Failed') AND ApexClassID =: apList[0].Id ORDER BY createddate DESC limit 1 ] ; String ResultValue ; if(!listofAsyncApexJob.isEmpty() ){ if(listofAsyncApexJob[0].Status == 'Processing' || listofAsyncApexJob[0].Status == 'Completed' || listofAsyncApexJob[0].Status == 'Preparing' || listofAsyncApexJob[0].Status == 'Holding1' || listofAsyncApexJob[0].Status == 'Queued'){ if(ObjectName != null && ObjectName != '' ){ Integer totalCount = GetRealtimeData(ObjectName); if(listofAsyncApexJob[0].Status == 'Processing' || listofAsyncApexJob[0].Status == 'Preparing' || listofAsyncApexJob[0].Status == 'Holding1' || listofAsyncApexJob[0].Status == 'Queued'){ ResultValue = String.valueOf(totalCount); }else if(listofAsyncApexJob[0].Status == 'Completed' ){ list listofAsyncApexJobNotCompleted = new list(); listofAsyncApexJobNotCompleted = [SELECT ApexClassID,Status FROM AsyncApexJob WHERE JobType='BatchApex' AND (Status = 'Processing' OR Status = 'Holding1' OR Status = 'Queued' OR Status = 'Preparing') AND ApexClassID =: apList[0].Id ORDER BY createddate DESC limit 1 ] ; if(ObjectName == 'Product2' || ObjectName == 'HIC_ShopifySync__Variant__c' || ObjectName == 'Account' || ObjectName == 'Contact' || ObjectName == 'Draftorder' || ObjectName == 'Opportunity' || ObjectName == 'Order' || ObjectName == 'HIC_ShopifySync__Inventory__c'){ ResultValue = String.valueOf(totalCount); }else if(listofAsyncApexJobNotCompleted.isEmpty()){ ResultValue = 'Completed'+String.valueOf(totalCount); }else{ ResultValue = String.valueOf(totalCount); } } return ResultValue; } }else if(listofAsyncApexJob[0].Status == 'Aborted' || listofAsyncApexJob[0].Status == 'Failed' ){ list listofAsyncApexJobNotCompleted = new list(); listofAsyncApexJobNotCompleted = [SELECT ApexClassID,Status FROM AsyncApexJob WHERE JobType='BatchApex' AND (Status = 'Processing' OR Status = 'Holding1' OR Status = 'Queued' OR Status = 'Preparing') AND ApexClassID =: apList[0].Id ORDER BY createddate DESC limit 1 ] ; if(listofAsyncApexJobNotCompleted.isEmpty()){ string abortError; if(listofAsyncApexJob[0].ExtendedStatus != null && listofAsyncApexJob[0].ExtendedStatus != ''){ abortError = '-'+ listofAsyncApexJob[0].ExtendedStatus; } if(abortError != null && abortError != ''){ return ResultValue = 'Aborted' + abortError; } return ResultValue = 'Aborted'; }else{ return String.valueOf(GetRealtimeData(ObjectName)); } } } return ''; } /**************************************CheckingBatchDetails*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get Shopify Record counts based on Object name * @param String ObjectName - Shopify Entity's Name (Object name) * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ public static Integer GetRealtimeData(String ObjectName){ string query; list groupedResults = new list(); if(ObjectName == 'Order'){ query = 'SELECT count(Id) totalCount FROM ' +ObjectName+ ' Where HIC_ShopifySync__Shopify_Id__c != null And recordtype.name = \'Order\' AND recordtype.NamespacePrefix = \'HIC_ShopifySync\' '; }else if(ObjectName == 'DraftOrder'){ ObjectName = 'Order'; query = 'SELECT count(Id) totalCount FROM ' +ObjectName+ ' Where HIC_ShopifySync__Shopify_Id__c != null And recordtype.name = \'Draft Order\' AND recordtype.NamespacePrefix = \'HIC_ShopifySync\' '; }else{ query = 'SELECT count(Id) totalCount FROM ' +ObjectName+ ' Where HIC_ShopifySync__Shopify_Id__c != null'; } groupedResults = Database.query(query); Object totalCount = groupedResults[0].get('totalCount'); return (Integer) totalCount ; } /**************************************getConfigrationForDynamicRow*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get Configuration for check current User what select like Opportunity/draft Orerd * If not selected then based on configuration will hide and show field mapping * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getConfigrationForDynamicRow(string store){ List config = new List ();//HIC_ShopifySync__Draft_Order_Sync__c String FieldsToQueryforconfig = 'id, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Update_Identified_Contact_Records__c, HIC_ShopifySync__Update_Identified_Account_Records__c, HIC_ShopifySync__Upsert_Account_basis_on_Customer_Company__c, HIC_ShopifySync__Upsert_Customer_basis_on_Email__c, HIC_ShopifySync__DNCDAMissingAccounts__c, HIC_ShopifySync__Shopify_Objects__c, HIC_ShopifySync__Turn_on_DND_synced_Customers__c, HIC_ShopifySync__Private_Key_Password__c, Name, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Inventory_Location__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c'; config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1'); if(config != null && !config.isEmpty()){ return JSON.serialize(config[0]); }else{ return null; } } /********************************************************* @Name : getEverythingForAccount @Return type : list of Object Mapping @Description : Method to get Account fieldMapping. ********************************************************/ @AuraEnabled(cacheable=true) public static List getEverythingForAccount(String store){ List ListOfEverything = new List (); String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c'; List config = new List (); String FieldsToQueryforconfig = 'id,HIC_ShopifySync__Store__c, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c'; config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1'); //Method - 0 (Business and Person Account 0-4) List OptionalfieldWrapperList = new List(); List RequiredfieldForWrapperList = new List(); List RequiredfieldForPersonAccountWrapperList = new List(); FieldWrapper wrapper= new FieldWrapper(); Schema.DescribeFieldResult fieldResult; Map fieldMap = Schema.SObjectType.Account.fields.getMap(); for(String keyfield : fieldMap.keySet() ){ fieldResult = fieldMap.get(keyfield).getDescribe(); if(keyfield != 'ownerid' && keyfield != 'jigsaw' && keyfield != 'HIC_ShopifySync__shopify_id__c' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'recordtypeid' && keyfield != 'parentid' && keyfield != 'currencyisocode' ){ //Account optional field Mapping if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean) && fieldResult.isUpdateable() && fieldResult.isCreateable() ){ if(keyfield != 'name' && keyfield != 'lastname' && !keyfield.Contains('__pc') && !keyfield.contains('person') && config[0].HIC_ShopifySync__Account_Contact__c && keyfield != 'firstname' && keyfield != 'salutation' && !fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated() && keyfield != 'cleanstatus' && keyfield != 'jigsaw'){ if(String.valueOf(fieldResult.getType()) != 'REFERENCE'){ //(fieldResult.isUpdateable() || fieldResult.isCreateable()) && wrapper = new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); OptionalfieldWrapperList.add(wrapper); } }else if(keyfield != 'name' && keyfield != 'lastname' && keyfield != 'cleanstatus' && keyfield != 'salutation' && !fieldResult.isDependentPicklist() && !fieldResult.isCalculated() && keyfield != 'HIC_ShopifySync__shopify_id__pc' && !config[0].HIC_ShopifySync__Account_Contact__c && keyfield != 'jigsaw'){ if(String.valueOf(fieldResult.getType()) != 'REFERENCE'){ //(fieldResult.isUpdateable() || fieldResult.isCreateable()) && wrapper = new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); OptionalfieldWrapperList.add(wrapper); } } } //Account Required Field Mapping if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && !fieldResult.isRestrictedPicklist() && String.valueOf(fieldResult.getType()) != 'REFERENCE' && String.valueOf(fieldResult.getType()) != 'BOOLEAN'){ if(keyfield == 'name'){ FieldWrapper businesswrapper = new FieldWrapper(); businesswrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); businesswrapper.filedApiName = String.valueOf( fieldResult.getName() ); businesswrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForWrapperList.add(businesswrapper); }else if( !fieldResult.isNillable() && keyfield != 'name'){ FieldWrapper businesswrapper= new FieldWrapper(); businesswrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); businesswrapper.filedApiName = String.valueOf( fieldResult.getName() ); businesswrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForWrapperList.add(businesswrapper); } if(keyfield == 'lastname'){ FieldWrapper personwrapper = new FieldWrapper(); personwrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); personwrapper.filedApiName = String.valueOf( fieldResult.getName() ); personwrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForPersonAccountWrapperList.add(personwrapper); } } } } if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList )); }else{ ListOfEverything.add('Null'); } if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1 }else{ ListOfEverything.add('Null'); } if(RequiredfieldForPersonAccountWrapperList != null && !RequiredfieldForPersonAccountWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( RequiredfieldForPersonAccountWrapperList )); //2 - 1 }else{ ListOfEverything.add('Null'); } /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get Account's shopify fieldMapping . ********************************************************/ //Method - 2 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Account')); system.debug('ListOfEverything'+ListOfEverything); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get Account's Default fieldMapping . ********************************************************/ //Method - 3 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('Account', config[0].HIC_ShopifySync__Person_Account__c, store)); if(!ListOfEverything.isEmpty() && ListOfEverything != null ){ return ListOfEverything; }else{ return null; } } /********************************************************* @Name : getEverythingForContact @Return type : list of Object Mapping @Description : Method to get Conatct fieldMapping. ********************************************************/ @AuraEnabled(cacheable=true) public static List getEverythingForContact(String store){ List ListOfEverything = new List (); String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c'; List config = new List (); String FieldsToQueryforconfig = 'id, HIC_ShopifySync__Store__cName,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c'; config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1'); //Method - 0 (contact 0-4) List OptionalfieldWrapperList = new List(); List RequiredfieldForWrapperList = new List(); FieldWrapper wrapper= new FieldWrapper(); Schema.DescribeFieldResult fieldResult; Map fieldMap = Schema.SObjectType.Contact.fields.getMap(); for(String keyfield : fieldMap.keySet() ){ fieldResult = fieldMap.get(keyfield).getDescribe(); if(keyfield != 'recordtypeid' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'parentid' && keyfield != 'currencyisocode' /*&& String.valueOf(fieldResult.getType()) != 'BOOLEAN'*/ && keyfield != 'ownerid' && keyfield != 'HIC_ShopifySync__shopify_id__c' && String.valueOf(fieldResult.getType()) != 'REFERENCE' && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && !fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated() && keyfield != 'cleanstatus' && keyfield != 'email' && keyfield != 'jigsaw'){ // Contact Optional Fields if( (fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){ wrapper= new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); OptionalfieldWrapperList.add(wrapper); }else //Conatact Required Fields if(!fieldResult.isNillable()){ wrapper = new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForWrapperList.add(wrapper); } } } if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList )); }else{ ListOfEverything.add('Null'); } //Method - 5 if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1 }else{ ListOfEverything.add('Null'); } /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get Contact's shopify fieldMapping . ********************************************************/ //Method - 6 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Contact')); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get Contact's Default fieldMapping . ********************************************************/ //Method - 7 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('Contact', false,store)); if(!ListOfEverything.isEmpty() && ListOfEverything != null ){ return ListOfEverything; }else{ return null; } } /********************************************************* @Name : getEverythingForOpportunity @Parameters : @Return type : list of Object Mapping @Description : Method to get Opportunity fieldMapping. ********************************************************/ @AuraEnabled public static List getEverythingForOpportunity(String store){ List ListOfEverything = new List (); String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c'; List config = new List (); String FieldsToQueryforconfig = 'id, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c'; config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1'); List OptionalfieldWrapperList = new List(); List RequiredfieldForWrapperList = new List(); FieldWrapper wrapper= new FieldWrapper(); Schema.DescribeFieldResult fieldResult; Map fieldMap = Schema.SObjectType.Opportunity.fields.getMap(); for(String keyfield : fieldMap.keySet() ){ fieldResult = fieldMap.get(keyfield).getDescribe(); if(/*String.valueOf(fieldResult.getType()) != 'BOOLEAN' &&*/ (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && keyfield != 'recordtypeid' && keyfield != 'parentid' && keyfield != 'currencyisocode' && keyfield != 'ownerid' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'CurrencyISOCODE' && keyfield != 'HIC_ShopifySync__shopify_id__c' && !fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated()){ //Opportunity Optional field Mapping if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){ wrapper = new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); OptionalfieldWrapperList.add(wrapper); } //Opportunity Required Field Mapping if(String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isNillable() && !fieldResult.isRestrictedPicklist() && keyfield != 'stagename' ){ wrapper= new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForWrapperList.add(wrapper); } } } if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList )); }else{ ListOfEverything.add('Null'); } //Method - 9 if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1 }else{ ListOfEverything.add('Null'); } /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get opportunity's shopify fieldMapping (Order and Opportunity shopify's fields are same). ********************************************************/ //Method - 10 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Order')); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get opportunity's Default fieldMapping . ********************************************************/ //Method - 11 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('opportunity', false,store)); if(!ListOfEverything.isEmpty() && ListOfEverything != null ){ return ListOfEverything; }else{ return null; } } /********************************************************* @Name : getEverythingForOppandOppProduct @Parameters : @Return type : list of Object Mapping @Description : Method to get Opportunity and Opportunity product fieldMapping. ********************************************************/ @AuraEnabled public static List getEverythingForOppProduct(String store){ List ListOfEverything = new List (); String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c'; List config = new List (); String FieldsToQueryforconfig = 'id, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c'; config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1'); List OptionalfieldWrapperList = new List(); List RequiredfieldForWrapperList = new List(); FieldWrapper wrapper= new FieldWrapper(); Schema.DescribeFieldResult fieldResult; Map fieldMap = Schema.SObjectType.OpportunityLineItem.fields.getMap(); //Method 12 (Opportunity Line item ) for(String keyfield : fieldMap.keySet() ){ fieldResult = fieldMap.get(keyfield).getDescribe(); if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE'&& keyfield != 'totalprice' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'unitprice' && keyfield != 'HIC_ShopifySync__shopify_id__c' && !fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated()){ //Opportunity Line item Optional field Mapping if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){ wrapper = new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); OptionalfieldWrapperList.add(wrapper); } //Opportunity Line item Required Field Mapping if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist() && keyfield != 'stagename' ){ wrapper= new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForWrapperList.add(wrapper); } } } if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList )); }else{ ListOfEverything.add('Null'); } //Method - 13 if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1 }else{ ListOfEverything.add('Null'); } /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get OpportunityLineItem's shopify fieldMapping (OrderItem and OpportunityLineItem shopify's fields are same). ********************************************************/ //Method - 14 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('OrderItem')); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get OpportunityLineItem's Default fieldMapping . ********************************************************/ //Method - 15 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('OpportunityLineItem', false, store)); // Method - 16 if(!ListOfEverything.isEmpty() && ListOfEverything != null ){ return ListOfEverything; }else{ return null; } } /********************************************************* @Name : getEverythingForAccougetEverythingForOrderOrderPrdDrfOrderandDrfOrdProductntContactOppandOppProduct @Parameters : @Return type : list of Object Mapping @Description : Method to get Order OrderPrd DrfOrder and DrfOrd Product fieldMapping. ********************************************************/ @AuraEnabled public static List getEverythingForOrderOrderPrdDrfOrderandDrfOrdProduct(String store){ List ListOfEverything = new List (); List config = new List (); String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c'; String FieldsToQueryforconfig = 'id, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c'; config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1'); List OptionalfieldWrapperList = new List(); List RequiredfieldForWrapperList = new List(); FieldWrapper wrapper= new FieldWrapper(); Schema.DescribeFieldResult fieldResult; //Method 0 ( Order) Map fieldMap = Schema.SObjectType.Order.fields.getMap(); for(String keyfield : fieldMap.keySet() ){ fieldResult = fieldMap.get(keyfield).getDescribe(); if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && keyfield != 'activateddate' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'activatedby' && keyfield != 'currencyisocode' && keyfield != 'status' && keyfield != 'HIC_ShopifySync__shopify_id__c' && !fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated() ){ //Order Optional field Mapping if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){ wrapper = new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); OptionalfieldWrapperList.add(wrapper); } //Order Required Field Mapping if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist() && keyfield != 'statuscode' && keyfield != 'status'){ wrapper= new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForWrapperList.add(wrapper); } } } if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList )); }else{ ListOfEverything.add('Null'); } //Method - 1 if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1 }else{ ListOfEverything.add('Null'); } /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get Order's shopify fieldMapping ********************************************************/ //Method - 2 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Order')); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get Order's Default fieldMapping . ********************************************************/ //Method - 3 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('Order', false,store)); //Method 4 ( OrderItem) OptionalfieldWrapperList = new List(); RequiredfieldForWrapperList = new List(); fieldMap = new Map(); fieldMap = Schema.SObjectType.OrderItem.fields.getMap(); for(String keyfield : fieldMap.keySet() ){ fieldResult = fieldMap.get(keyfield).getDescribe(); if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && keyfield != 'HIC_ShopifySync__shopify_id__c' && keyfield !='billinglatitude' && keyfield !='billinglongitude' && keyfield !='billinggeocodeaccuracy' && keyfield !='shippinglatitude' && keyfield !='shippinglongitude' && keyfield !='shippinggeocodeaccuracy' && keyfield !='otherlatitude' && keyfield !='otherlongitude' && keyfield !='othergeocodeaccuracy' && keyfield !='mailinglatitude' && keyfield !='mailinglongitude' && keyfield !='mailinggeocodeaccuracy' && keyfield !='personotherlatitude' && keyfield !='personemail' && keyfield !='personemailbouncedreason' && keyfield !='personemailbounceddate' && keyfield !='personotherlongitude' && keyfield !='personothergeocodeaccuracy' && keyfield !='personmailinglatitude' && keyfield !='personmailinglongitude' && keyfield !='personmailinggeocodeaccuracy' && keyfield != 'unitprice' && !fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated()){ //OrderItem Optional fields if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){ wrapper = new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); OptionalfieldWrapperList.add(wrapper); } //OrderItem Required Field Mapping if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist() && keyfield != 'statuscode' && keyfield != 'unitprice'){ wrapper= new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForWrapperList.add(wrapper); } } } if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList )); }else{ ListOfEverything.add('Null'); } //Method - 5 if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1 }else{ ListOfEverything.add('Null'); } /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get OrderItem's shopify fieldMapping. ********************************************************/ //Method - 6 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('OrderItem')); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get Order's Default fieldMapping . ********************************************************/ //Method - 7 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('OrderItem', false,store)); //Draft Order Shopify Fields /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get Draft Order's shopify fieldMapping. ********************************************************/ //Method - 8 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('DraftOrder')); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get Order's Default fieldMapping . ********************************************************/ //Method - 9 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('DraftOrder', false,store)); //Draft Order Item Shopify Fields /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get Draft Order's shopify fieldMapping. ********************************************************/ //Method - 10 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('DraftOrderItem')); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get Order's Default fieldMapping . ********************************************************/ //Method - 11 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('DraftOrderItem', false,store)); if(!ListOfEverything.isEmpty() && ListOfEverything != null ){ return ListOfEverything; }else{ return null; } } /********************************************************* @Name : getEverythingForProductAndVariant @Parameters : @Return type : list of Object Mapping @Description : Method to get Product and Variant fieldMapping. ********************************************************/ @AuraEnabled public static List getEverythingForProductAndVariant(String store){ List ListOfEverything = new List (); List config = new List (); String FieldsToQueryforShopifyFields = 'Name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__UI_Label_Name__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Data_Type__c,HIC_ShopifySync__Nested__c'; String FieldsToQueryforconfig = 'id, Name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Default_Account__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Account_Contact__c,HIC_ShopifySync__Person_Account__c'; config = Database.query('select '+ Checkaccessibility.isAccessible(FieldsToQueryforconfig,'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1'); List OptionalfieldWrapperList = new List(); List RequiredfieldForWrapperList = new List(); FieldWrapper wrapper= new FieldWrapper(); Schema.DescribeFieldResult fieldResult; //Method 0 ( Product2) Map fieldMap = Schema.SObjectType.Product2.fields.getMap(); for(String keyfield : fieldMap.keySet() ){ fieldResult = fieldMap.get(keyfield).getDescribe(); if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && keyfield != 'currencyisocode' && keyfield != 'status' && keyfield != 'HIC_ShopifySync__shopify_id__c' && !fieldResult.isDependentPicklist() && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated() ){ //Product Optional field Mapping if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){ wrapper = new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); OptionalfieldWrapperList.add(wrapper); } //Product Required Field Mapping if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist()){ wrapper= new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForWrapperList.add(wrapper); } } } if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList )); }else{ ListOfEverything.add('Null'); } //Method - 1 if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1 }else{ ListOfEverything.add('Null'); } /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get Product's shopify fieldMapping ********************************************************/ //Method - 2 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Product2')); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get Product's Default fieldMapping . ********************************************************/ //Method - 3 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('Product2', false,store)); //Method 4 ( Variant) OptionalfieldWrapperList = new List(); RequiredfieldForWrapperList = new List(); fieldMap = new Map(); fieldMap = Schema.SObjectType.HIC_ShopifySync__Variant__c.fields.getMap(); for(String keyfield : fieldMap.keySet() ){ fieldResult = fieldMap.get(keyfield).getDescribe(); if((fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && keyfield != 'HIC_ShopifySync__shopify_id__c' && keyfield != 'HIC_ShopifySync__Inventory_Item_Id__c' && !fieldResult.isDependentPicklist() && keyfield != 'HIC_ShopifySync__Store__c' && keyfield != 'HIC_ShopifySync__Store_External_Id__c' && !fieldResult.isRestrictedPicklist() && !fieldResult.isCalculated()){ //Variant Optional fields if((fieldResult.isNillable() || fieldResult.getType() == Schema.DisplayType.Boolean)){ wrapper = new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); OptionalfieldWrapperList.add(wrapper); } //Variant Required Field Mapping if(!fieldResult.isNillable() && (fieldResult.isUpdateable() || fieldResult.isCreateable()) && String.valueOf(fieldResult.getType()) != 'REFERENCE' && String.valueOf(fieldResult.getType()) != 'BOOLEAN' && !fieldResult.isRestrictedPicklist()){ wrapper= new FieldWrapper(); wrapper.filedlabel = String.valueOf( fieldResult.getLabel() ); wrapper.filedApiName = String.valueOf( fieldResult.getName() ); wrapper.dataType = String.valueOf( fieldResult.getType() ); RequiredfieldForWrapperList.add(wrapper); } } } if(OptionalfieldWrapperList != null && !OptionalfieldWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( OptionalfieldWrapperList )); }else{ ListOfEverything.add('Null'); } //Method - 5 if(RequiredfieldForWrapperList != null && !RequiredfieldForWrapperList.isEmpty()){ ListOfEverything.add(JSON.serialize( RequiredfieldForWrapperList )); //2 - 1 }else{ ListOfEverything.add('Null'); } /********************************************************* @Name : getShopifyFields @Parameters : Object name @Return type : String @Description : Method to get Variant's shopify fieldMapping. ********************************************************/ //Method - 6 ListOfEverything.add(HIC_ShopifyUtility.getShopifyFields('Variant__c')); /********************************************************* @Name : getShopifyFields @Parameters : Object Name @Return type : String @Description : Method to get Variant's Default fieldMapping . ********************************************************/ //Method - 7 ListOfEverything.add(HIC_ShopifyUtility.getDefaultFieldMapping('HIC_ShopifySync__Variant__c', false,store)); if(!ListOfEverything.isEmpty() && ListOfEverything != null ){ return ListOfEverything; }else{ return null; } } /**************************************getEverything*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get List of records * list[0] List of Account based on search keyword entered by user * list[1] List of Opportunity Stage value * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static List getEverything(){ List ListOfEverything = new List (); //Method 14 List accts = new List(); accts = [select id,name from Account order by lastmodifiedDate desc limit 10]; if(accts != null && !accts.isEmpty() ){ ListOfEverything.add(JSON.serialize( accts )); }else{ ListOfEverything.add('Null'); } //Method 15 List pickListValuesList= new List(); Schema.DescribeFieldResult fieldResult = Opportunity.stageName.getDescribe(); List ple = fieldResult.getPickListValues(); for( Schema.PickListEntry pickListVal : ple){ pickListValuesList.add(pickListVal.getLabel()); } if(pickListValuesList != null && !pickListValuesList.isEmpty() ){ ListOfEverything.add(JSON.serialize( pickListValuesList )); }else{ ListOfEverything.add('Null'); } //Method 16 //Depreceated List pickListValuesListForOppConRole= new List(); Schema.DescribeFieldResult fieldResultForOppConRole = OpportunityContactRole.Role.getDescribe(); List pleForOppConRole = fieldResultForOppConRole.getPickListValues(); for( Schema.PickListEntry pickListVal : pleForOppConRole){ pickListValuesListForOppConRole.add(pickListVal.getLabel()); } if(pickListValuesListForOppConRole != null && !pickListValuesListForOppConRole.isEmpty() ){ ListOfEverything.add(JSON.serialize( pickListValuesListForOppConRole )); }else{ ListOfEverything.add('Null'); } if(!ListOfEverything.isEmpty() && ListOfEverything != null ){ return ListOfEverything; }else{ return null; } } /**************************************CheckingFieldExisting*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Verify last mapped Salesforce Field Exist or not * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ public static boolean CheckingFieldExisting(String FieldName , String sObjectName){ Boolean Exist = false; if(sObjectName != null && sObjectName != '' && FieldName != '' && FieldName != null){ if(Schema.getGlobalDescribe().get(sObjectName).getDescribe().isAccessible()){ sObjectType schemaType = Schema.getGlobalDescribe().get(sObjectName) ; Map fieldsMap = schemaType.getDescribe().fields.getMap(); if(fieldsMap != null && !fieldsMap.isEmpty()){ if(fieldsMap.containsKey(FieldName)){ Exist = true; return Exist; } } } } return Exist; } /**************************************getIsPerson*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Check Salesforce Org have PersonAccount Enabled or not * What is Person Account in Salesforce ? https://help.salesforce.com/articleView?id=account_person.htm&type=5 * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean getIsPerson(){ return Schema.sObjectType.Account.fields.getMap().containsKey( 'isPersonAccount' ); } /**************************************getIsPerson*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Check Salesforce Org have PersonAccount Enabled or not * What is the Person Account ? https://help.salesforce.com/articleView?id=account_person.htm&type=5 * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getGeneral(String store){ store =store.replace('https://','').replace('.myshopify.com','').remove('/').remove('"'); System.debug('store url'+store); List config = new List(); String fieldtocheck = 'id, Name, HIC_ShopifySync__Store__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__BatchRunOnce__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c,HIC_ShopifySync__Inventory_Location_Sync__c,HIC_ShopifySync__Product_Sync__c,HIC_ShopifySync__Batch_Is_Processing__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Enable_Draft_Order__c, HIC_ShopifySync__Account_Contact__c, HIC_ShopifySync__Person_Account__c, HIC_ShopifySync__Inventory_Location__c, HIC_ShopifySync__Collection__c'; config = database.query('select '+Checkaccessibility.isAccessible(fieldtocheck, 'HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999'); System.debug('config'+config); return JSON.serialize(config[0] ); } /**************************************getDefaultAccForConts*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get Default Account ID * Saved in Field Mapping * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static HIC_ShopifySync__HIC_Field_Mapping__c getDefaultAccForConts(string store){ System.debug('store in default Account method'+store); List fm = new List(); list AccountExisting = new list(); String fieldtocheck = 'id,HIC_ShopifySync__GQL_Field_API__c, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c'; //System.debug('select '+Checkaccessibility.isAccessible(fieldtocheck, 'HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__External_ID__c', 'HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Contact-Accountid\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999'); fm = database.query('select '+Checkaccessibility.isAccessible(fieldtocheck, 'HIC_ShopifySync__Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__External_ID__c', 'HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Contact-Accountid\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999'); return fm[0]; } /**************************************getActivePricebook*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of Active PriceBook from Salesforce * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getActivePricebook(){ List pricebookList = new List(); pricebookList = database.query('select '+Checkaccessibility.isAccessible('id,name', 'pricebook2')+' from pricebook2 where '+Checkaccessibility.isAccessible('IsActive', 'pricebook2')+' = true LIMIT 10000'); if( !pricebookList.isEmpty() ){ return JSON.serialize( pricebookList ); } return null; } /**************************************getErrorMailList*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of Email for send email notifications after Batch process complete * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getErrorMailList(){ List listOfErrorMails = new List(); listOfErrorMails = database.query('select '+Checkaccessibility.isAccessible('id,name', 'HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c')+' from HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c LIMIT 10000'); if(!listOfErrorMails.isEmpty()){ return JSON.serialize( listOfErrorMails ); }else{ HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c errorMailMapping = new HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c(); if(CheckAccessibility.isUpdateable('name','HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c')){ errorMailMapping.name = UserInfo.getUserEmail(); } List WithuserlistOfErrorMails = new List(); WithuserlistOfErrorMails.add(errorMailMapping); return JSON.serialize( WithuserlistOfErrorMails ); } } /**************************************getErrorMailList*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get Current Login in User Salesforce Org ID * Used when use raise the case or try to contact our support team * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static string getOrgId(){ try{ return 'Organization Id' + String.valueof(UserInfo.getOrganizationId()); }catch(exception e){ return ''; } } /**************************************Checkemaildeliverability*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Verify Salesforce Org deliveribilty on or not. * Having email send limits or not * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean Checkemaildeliverability(){ Boolean emailsTurnedOn = false; try { Messaging.reserveSingleEmailCapacity(0); emailsTurnedOn = true; } catch (System.NoAccessException e) { } return emailsTurnedOn; } /**************************************SendingMailtoShopifySupport*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Send user message to our Support team * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean SendingMailtoShopifySupport(String Issue){ boolean emailsend = false; List toAddresses = new List (); toAddresses.add('support@syncmadeasy.com'); String subject = 'Organization Id ' + String.valueof(UserInfo.getOrganizationId()); Messaging.SingleEmailMessage email =new Messaging.SingleEmailMessage(); email.setSubject(subject); if(!toAddresses.isEmpty() ){ System.debug('addrress****_-'+toAddresses); email.setToAddresses(toAddresses ); email.setPlainTextBody(String.valueof(UserInfo.getName()) + ', \n ' + Issue); try{ Messaging.SendEmailResult [] r = Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email}); emailsend = true; }catch(Exception e){ return emailsend; } } return emailsend; } /**************************************getSiteURLs*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get User Site URls in Salesforce * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ // @AuraEnabled // public static String getSiteURLs(){ // // List siteList = new List(); // List siteList = new List(); // list listofsitewrapper = new list(); // siteList = database.query('SELECT '+Checkaccessibility.isAccessible('id,GuestUserId, Name,MasterLabel, Subdomain, OptionsRequireHttps, UrlPathPrefix', 'Site') +' FROM Site WHERE '+Checkaccessibility.isAccessible('Status','Site') + ' = \'Active\' Limit 1000'); // system.debug('+++siteList'+siteList); // set setofsiteid = new set(); // Map mapofsiteidvssiteurl = new Map(); // for(SObject s: siteList) { // setofsiteid.add(String.valueof(s.id)); // } // List siteFullUrlList = new List(); // // list listOfsitedetail = new list(); // list listOfsitedetail = new list(); // String sitedetail; // Organization org = database.query('SELECT '+Checkaccessibility.isAccessible('InstanceName,Name, IsSandbox, OrganizationType','Organization')+' FROM Organization LIMIT 1'); // if(siteList != null && siteList.size() != 0) { // // listOfsitedetail = [select DurableId,SecureURL from SiteDetail where DurableId IN :setofsiteid WITH SECURITY_ENFORCED limit 4999]; // Schema.DescribeSObjectResult siteSchema = Schema.getGlobalDescribe().get('Site').getDescribe(); // if(siteSchema != null){ // List accessibleFields = new List(); // if (Schema.SObjectType.SiteDetail.fields.Id.isAccessible()) { // accessibleFields.add('Id'); // } // if (Schema.SObjectType.SiteDetail.fields.DurableId.isAccessible()) { // accessibleFields.add('DurableId'); // } // if (Schema.SObjectType.SiteDetail.fields.SecureURL.isAccessible()) { // accessibleFields.add('SecureURL'); // } // String fieldList = String.join(accessibleFields, ','); // if (Schema.SObjectType.SiteDetail.isAccessible()) { // sitedetail = 'SELECT ' + fieldList + ' FROM SiteDetail WHERE DurableId IN :setofsiteid WITH SECURITY_ENFORCED LIMIT 4999'; // listOfsitedetail = Database.query(sitedetail); // System.debug(listOfsitedetail); // } else { // System.debug('Not accessible.'); // } // for (SObject sd : listOfsitedetail) { // String durableId = (String)sd.get('durableid'); // String secureUrl = (String)sd.get('secureurl'); // mapofsiteidvssiteurl.put(durableid, secureurl.removeEnd('/')); // } // } else { // System.debug('Yo dont have access of this site!'); // } // // for(Site s: siteList) { // // string siteFullUrl; // // SiteWrapper sitewrapper = new SiteWrapper(); // // sitewrapper.siteUrl = mapofsiteidvssiteurl.get(String.valueof(s.id).left(15)); // // sitewrapper.siteguestid = s.GuestUserId; // // sitewrapper.Name = s.name; // // sitewrapper.id = s.id; // // listofsitewrapper.add(sitewrapper); // // //siteFullUrlList.add(siteFullUrl); // // } // for (SObject s : siteList) { // SiteWrapper siteWrapper = new SiteWrapper(); // siteWrapper.siteUrl = mapofsiteidvssiteurl.get(String.valueOf(s.get('Id')).left(15)); // siteWrapper.siteGuestId = (String)s.get('GuestUserId'); // siteWrapper.name = (String)s.get('Name'); // siteWrapper.id = (String)s.get('Id'); // listofsitewrapper.add(siteWrapper); // } // } // if( !listofsitewrapper.isEmpty() ){ // return JSON.serialize( listofsitewrapper ); // } // return null; // } @AuraEnabled public static String getSiteURLs() { List siteList = new List(); list listofsitewrapper = new List(); DescribeSObjectResult siteSchema = Schema.getGlobalDescribe().get('Site').getDescribe(); if(siteSchema.isAccessible()){ String query= 'SELECT ' + Checkaccessibility.isAccessible( 'id,GuestUserId, Name,MasterLabel, Subdomain, UrlPathPrefix', siteSchema ) + ' FROM Site WHERE ' + Checkaccessibility.isAccessible('Status', siteSchema) + ' = \'Active\' Limit 1000'; String finalQuery = String.escapeSingleQuotes(query).remove('\\'); siteList=Database.query(finalQuery); system.debug('+++siteList' + siteList); set setofsiteid = new Set(); Map mapofsiteidvssiteurl = new Map(); for (SObject s : siteList) { setofsiteid.add(String.valueof(s.id)); } List siteFullUrlList = new List(); // list listOfsitedetail = new List(); String siteDetailQuery = 'SELECT DurableId, SecureURL ' + 'FROM SiteDetail ' + 'WHERE DurableId IN :setofsiteid ' + 'WITH USER_MODE ' + 'LIMIT 4999'; String finalSiteDetailQuery = String.escapeSingleQuotes(siteDetailQuery).remove('\\'); List listOfsitedetail = Database.query(finalSiteDetailQuery); system.debug('@@@ listOfsitedetail : '+listOfsitedetail); if (siteList != null && siteList.size() != 0) { // listOfsitedetail = [ // SELECT DurableId, SecureURL // FROM SiteDetail // WHERE DurableId IN :setofsiteid // WITH USER_MODE // LIMIT 4999 // ]; for (SObject sd : listOfsitedetail) { String durableId = (String)sd.get('durableid'); String secureUrl = (String)sd.get('secureurl'); mapofsiteidvssiteurl.put(durableid, secureurl.removeEnd('/')); } for (SObject s : siteList) { SiteWrapper siteWrapper = new SiteWrapper(); siteWrapper.siteUrl = mapofsiteidvssiteurl.get(String.valueOf(s.get('Id')).left(15)); siteWrapper.siteGuestId = (String)s.get('GuestUserId'); siteWrapper.name = (String)s.get('Name'); siteWrapper.id = (String)s.get('Id'); listofsitewrapper.add(siteWrapper); } } if (!listofsitewrapper.isEmpty()) { return JSON.serialize(listofsitewrapper); } }else{ return 'No access to site.'; } return null; } //Wrapper class for Salesfroce site details public class SiteWrapper{ @AuraEnabled public String id{get;set;} @AuraEnabled public String siteUrl{get;set;} @AuraEnabled public String siteguestid{get;set;} @AuraEnabled Public String Name{get;set;} } /**************************************DeleteCustomSettting*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Deleting the field mapping into the Salesforce When every user delete the mapped data into the Salesforce. * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static void DeleteCustomSettting(string DeletedCustomSetting,string store){ system.debug('DeletecustomSettingRecords--> '+DeletedCustomSetting); if(Test.isRunningTest()){ DeletedCustomSetting = '["Order-name","Account-HIC_Shopify__TAG__c","Account-BillingStreet","Account-BillingCity"]'; } if(DeletedCustomSetting != null && DeletedCustomSetting != '' ){ List listofcusotmsetting = new List(); listofcusotmsetting = (List)JSON.deserialize(DeletedCustomSetting,List.class); //system.debug('listofcusotmsetting' + listofcusotmsetting); if(!listofcusotmsetting.isEmpty()){ List listofallcustomSetting = new List(); String query = ' select '+CheckAccessibility.isAccessible('id','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__External_ID__c in : listofcusotmsetting AND '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' LIMIT 49999'; listofallcustomSetting = database.query(query); //system.debug('listofallcustomSetting--> '+listofallcustomSetting); if(!listofallcustomSetting.isEmpty()){ if(CheckAccessibility.isDeletable('HIC_ShopifySync__HIC_Field_Mapping__c')) database.delete (listofallcustomSetting,false); } } } } /**************************************saveEmailSettings*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Save Emails into Salesforce for send email notifications * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static void saveEmailSettings(string emaiList){ String sObjectName = 'HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c'.trim(); sObjectType schemaType = Schema.getGlobalDescribe().get(sObjectName) ; Map fieldsMap = schemaType.getDescribe().fields.getMap(); if(emaiList != null && emaiList != '' && emaiList != '["null"]') { system.debug('emaiList---->'+emaiList); if(Schema.sObjectType.HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c.isAccessible() && (Schema.sObjectType.HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c.isCreateable() || Schema.sObjectType.HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c.isUpdateable()) ){ List emailListfrompage = new List (); emailListfrompage = (List)JSON.deserialize(emaiList,List.class); List listOfErrorMails = new List(); listOfErrorMails = database.query('select '+Checkaccessibility.isAccessible('id', 'HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c')+' from HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c LIMIT 10000'); set setofemailsfrompage = new set (); for(HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c pagemail :emailListfrompage ){ HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c emailObjct = new HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c(); if(Checkaccessibility.isUpsertable('name', fieldsMap)){ if(pagemail.name != null && pagemail.name != ''){ emailObjct.name = pagemail.name ; setofemailsfrompage.add(emailObjct); } } } set setofemailsfrombackend = new set (); setofemailsfrombackend.addall(listOfErrorMails); list listtodeleteEmails = new list(); for(HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c emailsfordelete : setofemailsfrombackend ){ if(!setofemailsfrompage.contains(emailsfordelete)){ listtodeleteEmails.add(emailsfordelete); } } system.debug('listtodeleteEmails-->'+listtodeleteEmails); system.debug('listtodeleteEmails Size-->'+listtodeleteEmails.size()); if(!listtodeleteEmails.isempty()){ if(CheckAccessibility.isDeletable('HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c')) database.delete(listtodeleteEmails,false); } list listtoInsertNewEmails = new list(); if(!setofemailsfrompage.isEmpty()){ for(HIC_ShopifySync__Email_Addresses_to_send_error_CSV__c emailsfordelete : setofemailsfrompage ){ if(!setofemailsfrombackend.contains(emailsfordelete)){ listtoInsertNewEmails.add(emailsfordelete); } } } if(!listtoInsertNewEmails.isempty()){ if(CheckAccessibility.isUpsertable('name',fieldsMap)) database.upsert(listtoInsertNewEmails,false); } } } } /**************************************syncShopify*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Called When Batch Processing is Completed / Started * Update the Configuration setting base in the requirements * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static void syncShopify(string store){ List configurationList = new List(); String query = 'Select '+CheckAccessibility.isAccessible('name,HIC_ShopifySync__Store__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__CollectionsBatchCompleted__c,HIC_ShopifySync__ProductVariantBatchCompleted__c,HIC_ShopifySync__AccountContactBatchCompleted__c,HIC_ShopifySync__DraftOrderBatchCompleted__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__InventoryBatchCompleted__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Inventory_Location__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Enable_Draft_Order__c,HIC_ShopifySync__Batch_Is_Processing__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Person_Account__c ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999'; configurationList = database.query(query); if(configurationList.isEmpty())return; configurationList[0].HIC_ShopifySync__BatchRunOnce__c = true; configurationList[0].HIC_ShopifySync__Batch_Is_Processing__c = true; configurationList[0].HIC_ShopifySync__BatchisAborted__c = false; if(!configurationList[0].HIC_ShopifySync__ProductVariantBatchCompleted__c){ HIC_ShopifyUtility.fetchProducts(configurationList,store); } else if(!configurationList[0].HIC_ShopifySync__AccountContactBatchCompleted__c){ HIC_ShopifyUtility.fetchCustomer(configurationList,store); } else if(!configurationList[0].HIC_ShopifySync__OrderBatchCompleted__c && (configurationList[0].HIC_ShopifySync__Order__c || configurationList[0].HIC_ShopifySync__Opportunity__c)){ HIC_ShopifyUtility.fetchOrderAndOpportunity(configurationList,store); } else if(!configurationList[0].HIC_ShopifySync__CollectionsBatchCompleted__c && configurationList[0].HIC_ShopifySync__Collection__c ){ HIC_ShopifyUtility.processCollections(configurationList,store); } else if(!configurationList[0].HIC_ShopifySync__InventoryBatchCompleted__c && configurationList[0].HIC_ShopifySync__Inventory_Location__c){ HIC_ShopifyUtility.fetchLocations(configurationList,store); } else if(!configurationList[0].HIC_ShopifySync__DraftOrderBatchCompleted__c && configurationList[0].HIC_ShopifySync__Draft_Order_Sync__c){ HIC_ShopifyUtility.fetchDraftOrders(configurationList,store); } else{ HIC_ShopifyUtility.fetchProducts(configurationList,store); configurationList[0].HIC_ShopifySync__ProductVariantBatchCompleted__c = false; } update configurationList; } /**************************************getRecordTypeByName*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get all the Salesforce recordtypes base on Object name * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getRecordTypeByName(string Objectname, string store){ List fm = new List(); fm = database.query('select '+Checkaccessibility.isAccessible('id, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c') +' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+Objectname+'\' and '+Checkaccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__HIC_Field_Mapping__c') +' = \'RecordTypeId\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' LIMIT 49999'); if(!fm.isEmpty() && fm[0].HIC_ShopifySync__Shopify_Fields__c != null && fm[0].HIC_ShopifySync__Shopify_Fields__c != ''){ return fm[0].HIC_ShopifySync__Shopify_Fields__c; } return null; } /**************************************getPerAccRecordTypeList*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of the personAccount Salesforce recordtypes * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getPerAccRecordTypeList(){ List recordTypes = new List(); string personaccenablefield = Checkaccessibility.isAccessible('isPersonType','RecordType'); if(personaccenablefield == null || personaccenablefield == '' ){ recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType')+' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+ ' = \'Account\' and '+Checkaccessibility.isAccessible('isActive', 'RecordType')+' = true limit 200'); }else{ recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType')+' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+ ' = \'Account\' and '+Checkaccessibility.isAccessible('isActive', 'RecordType')+' = true and '+personaccenablefield+' = true limit 200'); } if( !recordTypes.isEmpty() ){ return JSON.serialize( recordTypes ); } return null; } /**************************************getAccRecordTypeList*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of the Bussiness Account Salesforce recordtypes * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getAccRecordTypeList(){ List recordTypes = new List(); string personAccountEnable = Checkaccessibility.isAccessible('isPersonType','RecordType'); if(personAccountEnable == null || personAccountEnable == ''){ recordTypes = database.query('SELECT '+ Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType')+ ' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Account\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true limit 200'); }else{ recordTypes = database.query('SELECT '+ Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType')+ ' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Account\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true and '+personAccountEnable+' = false limit 200'); } if( !recordTypes.isEmpty() ){ return JSON.serialize( recordTypes ); } return null; } /**************************************getConRecordTypeList*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of the Contact Salesforce recordtypes * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getConRecordTypeList(){ List recordTypes = new List(); recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType') +' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Contact\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true limit 200'); System.debug('***recordTypes***'+recordTypes); if( !recordTypes.isEmpty() ){ return JSON.serialize( recordTypes ); } return null; } /**************************************getConRecordTypeList*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of the Order Salesforce recordtypes * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getOrdRecordTypeList(){ //System.debug('*****getConRecordTypeList***'); List recordTypes = new List(); string query = 'SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType') +' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Order\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+ ' = true and '+Checkaccessibility.isAccessible('DeveloperName', 'RecordType')+'!= \'Draft_Order\' limit 200'; recordTypes = database.query(query); if( !recordTypes.isEmpty() ){ return JSON.serialize( recordTypes ); } return null; } /**************************************getConRecordTypeList*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of the Draft Order Salesforce recordtypes * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getDraftOrdRecordTypeList(){ //System.debug('*****getConRecordTypeList***'); List recordTypes = new List(); recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType') +' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Order\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true limit 200'); System.debug('***recordTypes***'+recordTypes); if( !recordTypes.isEmpty() ){ return JSON.serialize( recordTypes ); } return null; } /**************************************getConRecordTypeList*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of the Opportunity Salesforce recordtypes * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getOppRecordTypeList(){ //System.debug('*****getConRecordTypeList***'); List recordTypes = new List(); recordTypes = database.query('SELECT '+Checkaccessibility.isAccessible('DeveloperName,Id,IsActive,Name,SobjectType', 'RecordType') +' FROM RecordType where '+Checkaccessibility.isAccessible('SobjectType','RecordType')+' = \'Opportunity\' and '+Checkaccessibility.isAccessible('IsActive', 'RecordType')+' = true limit 200'); System.debug('***recordTypes***'+recordTypes); if( !recordTypes.isEmpty() ){ return JSON.serialize( recordTypes ); } return null; } /**************************************fetchAccount*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get list of Account base on search keyword * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static List < account > fetchAccount(String searchKeyWord) { String searchKey = searchKeyWord + '%'; List < Account > returnList = new List < Account > (); List < Account > lstOfAccount = database.query('select '+Checkaccessibility.isAccessible('id, Name','account')+' from account where '+Checkaccessibility.isAccessible('Name','account')+' LIKE: searchKey Limit 10'); for (Account acc: lstOfAccount) { returnList.add(acc); } return returnList; } /**************************************saveConfigration*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Save Configuration setting based on User * If Check true then its called from Step -2 else Other * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean saveConfigration( String configObj, String check ){ try{ List cyptokeyquery = new List(); cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Cryptokey__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1'); if(cyptokeyquery.isEmpty()) return null; HIC_ShopifySync__HIC_Configuration__c config = new HIC_ShopifySync__HIC_Configuration__c(); config = ( HIC_ShopifySync__HIC_Configuration__c )JSON.deserialize(configObj, HIC_ShopifySync__HIC_Configuration__c.class); String store = ''; if(config.HIC_ShopifySync__Shopify_URL__c != null) store = config.HIC_ShopifySync__Shopify_URL__c.replace('https://','').replace('.myshopify.com','').removeEnd('/'); if(store != '') config.HIC_ShopifySync__Store__c = store; config.name = store; //List storeConfigList = new List(); //storeConfigList = database.query('select '+Checkaccessibility.isAccessible('id','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' limit 1'); List storeFMappingList = [SELECT name, HIC_ShopifySync__Default_Value__c,HIC_ShopifySync__GQL_Field_API__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c =:store LIMIT 49999]; if(storeFMappingList.isEmpty()){ List InitialList = new List(); List listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' LIMIT 49999]; if(!listOfFieldMappingofFixedFields.isEmpty()){ System.debug('listOfFieldMappingofFixedFields-->if'); for(HIC_ShopifySync__HIC_Field_Mapping__c fixedField : listOfFieldMappingofFixedFields ){ HIC_ShopifySync__HIC_Field_Mapping__c cloned = fixedField.clone(false,false,false,false); InitialList.add(cloned); } } for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :InitialList ){ checkname.HIC_ShopifySync__Store__c = store; checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c; if(checkname.name != null && checkname.name != ''){ checkname.name = checkFieldLengthAndReturnValue(checkname.name); } } if(!InitialList.isEmpty()){ upsert InitialList HIC_ShopifySync__Store_External_ID__c; } } if(check == 'True'){ String PASSWORD = String.valueof(config.HIC_ShopifySync__Private_Key_Password__c); System.debug('Password------'+PASSWORD); if(PASSWORD.containsIgnoreCase('True')){ System.debug('Password------in '+PASSWORD); PASSWORD = PASSWORD.removeEnd('True'); If(!Test.isRunningTest()){ Blob cryptoKey1 = Blob.valueOf(String.valueOf(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c)); Blob data = EncodingUtil.base64Decode(PASSWORD); Blob decryptedData = Crypto.decryptWithManagedIV('AES128', cryptoKey1, data); String dryptDatapsd = decryptedData.toString(); if(dryptDatapsd != null && dryptDatapsd != ''){ config.HIC_ShopifySync__Private_Key_Password__c = dryptDatapsd; } } } System.debug('in true section'); config.HIC_ShopifySync__Product_Sync__c = true; config.HIC_ShopifySync__Customer_Sync__c = true; List configList = new List (); configList = [Select HIC_ShopifySync__Enable_Draft_Order__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Inventory_Location__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Product_Sync__c from HIC_ShopifySync__HIC_Configuration__c Where Name = :store Limit 1]; if(configList != null && !configList.isEmpty()){ system.debug('*****Pricebookvalue**'+ config.HIC_ShopifySync__Salesforce_Pricebook__c ); system.debug('**configList[0].HIC_ShopifySync__Collection_Sync__c ** -->'+configList[0].HIC_ShopifySync__Collection_Sync__c ); system.debug('**config.HIC_ShopifySync__Collection_Sync__c ** -->'+ config.HIC_ShopifySync__Collection_Sync__c ); if(configList[0].HIC_ShopifySync__Collection_Sync__c == True && config.HIC_ShopifySync__Collection_Sync__c == False){ HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Update', store); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Create', store); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Delete', store); } if(configList[0].HIC_ShopifySync__Customer_Sync__c == True && config.HIC_ShopifySync__Customer_Sync__c == False) { HICWebhookUtility.deleteWebhook('Customer', 'Create', store); HICWebhookUtility.deleteWebhook('Customer', 'Update', store); HICWebhookUtility.deleteWebhook('Customer', 'Delete', store); } if(configList[0].HIC_ShopifySync__Inventory_Location__c == True && config.HIC_ShopifySync__Inventory_Location__c == False){ HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Connect', store); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Disconnect', store); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Update', store); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Update', store); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Create', store); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Delete', store); } if(configList[0].HIC_ShopifySync__Product_Sync__c == True && config.HIC_ShopifySync__Product_Sync__c == False){ HICWebhookUtility.deleteWebhook('Product2', 'Create', store); HICWebhookUtility.deleteWebhook('Product2', 'Delete', store); HICWebhookUtility.deleteWebhook('Product2', 'Update', store); } if(configList[0].HIC_ShopifySync__Enable_Draft_Order__c == True && config.HIC_ShopifySync__Enable_Draft_Order__c == False){ HICWebhookUtility.deleteWebhook('DraftOrder', 'Create', store); HICWebhookUtility.deleteWebhook('DraftOrder', 'Delete', store); HICWebhookUtility.deleteWebhook('DraftOrder', 'Update', store); } if(configList[0].HIC_ShopifySync__Order_Sync__c == True && config.HIC_ShopifySync__Order_Sync__c == False) { HICWebhookUtility.deleteWebhook('Order', 'Create', store); HICWebhookUtility.deleteWebhook('Order', 'Update', store); HICWebhookUtility.deleteWebhook('Order', 'Delete', store); } } List webhookExistList = new List(); webhookExistList = [Select Name, HIC_ShopifySync__DML_Type__c, HIC_ShopifySync__SF_URL_Mapping__c, HIC_ShopifySync__Shopify_Object__c, HIC_ShopifySync__Topic__c from HIC_ShopifySync__HIC_Webhook__c where HIC_ShopifySync__Store__c = :store Limit 200]; if(webhookExistList == null || webhookExistList.isEmpty()){ System.debug('in else section'); List defaultWebhookList = new List(); defaultWebhookList = [Select Name, HIC_ShopifySync__DML_Type__c,HIC_ShopifySync__Metafields_Namespace__c, HIC_ShopifySync__SF_URL_Mapping__c, HIC_ShopifySync__Shopify_Object__c, HIC_ShopifySync__Topic__c from HIC_ShopifySync__Webhook__c Limit 200]; String jsonString = JSON.serialize(defaultWebhookList); List storeWebhookList = (List)JSON.deserialize(jsonString, List.Class); for(HIC_ShopifySync__HIC_Webhook__c webhook : storeWebhookList){ webhook.HIC_ShopifySync__Store__c = store; webhook.HIC_ShopifySync__External_Id__c = webhook.Name+'-'+webhook.HIC_ShopifySync__Store__c; webhook.Id = null; } try{ if(CheckAccessibility.isUpsertable('HIC_ShopifySync__External_Id__c', 'HIC_ShopifySync__HIC_Webhook__c')){ System.debug('storeWebhookList--'+storeWebhookList); upsert storeWebhookList HIC_ShopifySync__External_Id__c; } } catch(Exception e){ System.debug(e); } } List pricebook2MappingList = new List(); if(config.HIC_ShopifySync__Salesforce_Pricebook__c != null && config.HIC_ShopifySync__Salesforce_Pricebook__c != '' ){ String query = ' select '+CheckAccessibility.isAccessible('id,name,HIC_ShopifySync__External_ID__c,HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__IsSFID__c','HIC_ShopifySync__Field_Mapping__c')+' from HIC_ShopifySync__Field_Mapping__c where ( '+CheckAccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__Field_Mapping__c')+ ' = \'order\' or '+CheckAccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__Field_Mapping__c') +' = \'DraftOrder\' or '+CheckAccessibility.isAccessible('HIC_ShopifySync__Object_Name__c','HIC_ShopifySync__Field_Mapping__c') +' = \'Opportunity\' ) And (' +CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__Field_Mapping__c') +'= \'Pricebook2Id\' OR '+ CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__Field_Mapping__c')+' = \'RecordTypeId\' ) limit 49999'; pricebook2MappingList = database.query(query); String RecordtypeidForOrder; Schema.DescribeSObjectResult dsr = order.SObjectType.getDescribe(); Schema.RecordTypeInfo defaultRecordType; for(Schema.RecordTypeInfo rti : dsr.getRecordTypeInfos()) { if(rti.isDefaultRecordTypeMapping()) { RecordtypeidForOrder = rti.getRecordTypeId() ; } } System.debug('RecordtypeidForOrder++'+RecordtypeidForOrder); if(!pricebook2MappingList.isEmpty() && pricebook2MappingList.size() == 3 ){ List fmList = new List(); if(RecordtypeidForOrder != null && RecordtypeidForOrder != ''){ //System.debug('acc '+acc); HIC_ShopifySync__Field_Mapping__c fmord = new HIC_ShopifySync__Field_Mapping__c(); fmord.Name = 'Order-RecordTypeId'; fmord.HIC_ShopifySync__External_ID__c = 'Order-RecordTypeId'; fmord.HIC_ShopifySync__Default_Value__c = true; fmord.HIC_ShopifySync__Object_Name__c = 'Order'; fmord.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; //fm.Shopify_Field_Type__c = 'date'; fmord.HIC_ShopifySync__SF_Field_Type__c = 'reference'; fmord.HIC_ShopifySync__Shopify_Fields__c = RecordtypeidForOrder; pricebook2MappingList.add(fmord); //System.debug('acc '+acc); HIC_ShopifySync__Field_Mapping__c fmdrford = new HIC_ShopifySync__Field_Mapping__c(); fmdrford.Name = 'DraftOrder-RecordTypeId'; fmdrford.HIC_ShopifySync__External_ID__c = 'DraftOrder-RecordTypeId'; fmdrford.HIC_ShopifySync__Default_Value__c = true; fmdrford.HIC_ShopifySync__Object_Name__c = 'Draftorder'; fmdrford.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; //fm.Shopify_Field_Type__c = 'date'; fmdrford.HIC_ShopifySync__SF_Field_Type__c = 'reference'; fmdrford.HIC_ShopifySync__Shopify_Fields__c = RecordtypeidForOrder; pricebook2MappingList.add(fmdrford); } } for(HIC_ShopifySync__Field_Mapping__c fd : pricebook2MappingList){ if(String.valueof(fd.HIC_ShopifySync__SF_Field__c).toUpperCase() == ('Pricebook2Id').toUpperCase()){ fd.HIC_ShopifySync__Shopify_Fields__c = config.HIC_ShopifySync__Salesforce_Pricebook__c ; } if(String.valueof(fd.HIC_ShopifySync__SF_Field__c).toUpperCase() == ('RecordTypeId').toUpperCase() && (String.valueof(fd.Name).toUpperCase() == ('DraftOrder-RecordTypeId').toUpperCase() && String.valueof(fd.Name).toUpperCase() == ('Order-RecordTypeId').toUpperCase() ) && (fd.HIC_ShopifySync__Shopify_Fields__c == null || fd.HIC_ShopifySync__Shopify_Fields__c == '' ) ){ fd.HIC_ShopifySync__Shopify_Fields__c = RecordtypeidForOrder ; } } // pricebook2MappingList[0].HIC_ShopifySync__Shopify_Fields__c = config.HIC_ShopifySync__Salesforce_Pricebook__c ; // pricebook2MappingList[1].HIC_ShopifySync__Shopify_Fields__c = config.HIC_ShopifySync__Salesforce_Pricebook__c ; } try{ if(!pricebook2MappingList.isempty()){ if(CheckAccessibility.isUpsertable('HIC_ShopifySync__Object_Name__c', 'HIC_ShopifySync__Field_Mapping__c')){ upsert pricebook2MappingList HIC_ShopifySync__External_ID__c ; } } if(CheckAccessibility.isUpsertable('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')){ config.Id = null; upsert config HIC_ShopifySync__Store__c; } } catch(Exception e){ System.debug(e); } BatchForCreateWebhookMultiStore callBatch = new BatchForCreateWebhookMultiStore(store); Database.executeBatch(callBatch, 1); }else if(check == 'False'){ system.debug('**check'+check); system.debug('**config'+config); if( config.HIC_ShopifySync__order__c != null && config.HIC_ShopifySync__Opportunity__c != null){ if(config.HIC_ShopifySync__order__c == false){ config.HIC_ShopifySync__Order_Line_Item__c = false; }else{ config.HIC_ShopifySync__Order_Line_Item__c = true; } if(config.HIC_ShopifySync__Opportunity__c == false){ config.HIC_ShopifySync__Opportunity_Line_Item__c = false; } if(config.HIC_ShopifySync__order__c == false && config.HIC_ShopifySync__Opportunity__c == true ){ config.HIC_ShopifySync__Opportunity_Line_Item__c = true; } } if(CheckAccessibility.isUpsertable('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')){ upsert config HIC_ShopifySync__Store__c; } }else if(check == 'Normal'){ if(CheckAccessibility.isUpsertable('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')){ upsert config HIC_ShopifySync__Store__c; } } return true; }catch( Exception e ){ //CustomSettingRecordInsert.SuccessMailSend('Error message '+e.getMessage() + ' at line number ' + e.getLineNumber()); System.debug('Error message '+e.getMessage() + ' at line number ' + e.getLineNumber()); return false; } // return false; } /**************************************savePriceBookMapping*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Save Pricebook field mapping for order and opportunity * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean savePriceBookMapping( String storename, String pricebookId ){ try{ List pricebook2MappingList = new List(); String query = ' select '+CheckAccessibility.isAccessible('id,name,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__IsSFID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where ' +CheckAccessibility.isAccessible('HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__HIC_Field_Mapping__c') +'= \'Pricebook2Id\' AND '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+storename+'\' LIMIT 49999'; pricebook2MappingList = database.query(query); for(HIC_ShopifySync__HIC_Field_Mapping__c mapping : pricebook2MappingList){ mapping.HIC_ShopifySync__Shopify_Fields__c = pricebookId; } update pricebook2MappingList; return true; }catch(Exception e){ return false; } } /**************************************getConfigration*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get saved Configuration to display in the page * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getConfigration(){ try{ List cyptokeyquery = new List(); cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Store__c,HIC_ShopifySync__Cryptokey__c,HIC_ShopifySync__Refresh_Token__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1'); if(cyptokeyquery.isEmpty()) return null; /*List config = new List(); config = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Store__c, HIC_ShopifySync__Inventory_Location__c, HIC_ShopifySync__IsCurrencyChanged__c, HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Order__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Enable_Draft_Order__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1'); if(config.isEmpty()) return null;*/ List config = new List(); config = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Update_Identified_Contact_Records__c, HIC_ShopifySync__Update_Identified_Account_Records__c, HIC_ShopifySync__Upsert_Account_basis_on_Customer_Company__c, HIC_ShopifySync__Upsert_Customer_basis_on_Email__c, HIC_ShopifySync__DNCDAMissingAccounts__c, HIC_ShopifySync__Shopify_Objects__c, HIC_ShopifySync__Turn_on_DND_synced_Customers__c,HIC_ShopifySync__Store__c,HIC_ShopifySync__IsCurrencyChanged__c,HIC_ShopifySync__Inventory_Location__c,HIC_ShopifySync__Cryptokey__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Order__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Enable_Draft_Order__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c Where HIC_ShopifySync__Store__c != \'Default\' order by LastModifiedDate desc Limit 1'); if(config.isEmpty()){ config = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Update_Identified_Contact_Records__c, HIC_ShopifySync__Update_Identified_Account_Records__c, HIC_ShopifySync__Upsert_Account_basis_on_Customer_Company__c, HIC_ShopifySync__Upsert_Customer_basis_on_Email__c, HIC_ShopifySync__DNCDAMissingAccounts__c, HIC_ShopifySync__Shopify_Objects__c, HIC_ShopifySync__Turn_on_DND_synced_Customers__c,HIC_ShopifySync__Store__c,HIC_ShopifySync__IsCurrencyChanged__c,HIC_ShopifySync__Inventory_Location__c,HIC_ShopifySync__Cryptokey__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Order__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Enable_Draft_Order__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c Where HIC_ShopifySync__Store__c = \'Default\' order by LastModifiedDate desc Limit 1'); config[0].Id = null; config[0].HIC_ShopifySync__Refresh_Token__c = cyptokeyquery[0].HIC_ShopifySync__Refresh_Token__c; return JSON.serialize(config[0] ); } config[0].HIC_ShopifySync__Refresh_Token__c = cyptokeyquery[0].HIC_ShopifySync__Refresh_Token__c; if(config[0].HIC_ShopifySync__Private_Key_Password__c != null && config[0].HIC_ShopifySync__Private_Key_Password__c != ''){ String PASSWORD = String.valueof(config[0].HIC_ShopifySync__Private_Key_Password__c); Blob cryptoKey = Blob.valueOf(String.valueof(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c)); Blob data = Blob.valueOf(PASSWORD); Blob encryptedData = Crypto.encryptWithManagedIV('AES128', cryptoKey, data ); String b64Data = EncodingUtil.base64Encode(encryptedData)+'True'; if(b64Data != null && b64Data != ''){ config[0].HIC_ShopifySync__Private_Key_Password__c = b64Data; } } return JSON.serialize(config[0] ); }catch(Exception e){ // CustomSettingRecordInsert.SuccessMailSend('Error message '+e.getMessage() + ' at line number ' + e.getLineNumber()); return null; } } @AuraEnabled public static String getConfigrations(){ try{ List cyptokeyquery = new List(); cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Store__c,HIC_ShopifySync__Cryptokey__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c'); if(cyptokeyquery.isEmpty()) return null; List configList = new List(); configList = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Store__c,HIC_ShopifySync__IsCurrencyChanged__c,HIC_ShopifySync__Inventory_Location__c,HIC_ShopifySync__Cryptokey__c,HIC_ShopifySync__BatchRunOnce__c,HIC_ShopifySync__BatchisAborted__c,HIC_ShopifySync__Order__c,HIC_ShopifySync__OrderBatchCompleted__c,HIC_ShopifySync__Collection__c,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Enable_Draft_Order__c ,HIC_ShopifySync__Refresh_Token__c,name,HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Shopify_URL__c,HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Salesforce_Site_URL__c, HIC_ShopifySync__Opportunity_Sync__c, HIC_ShopifySync__Inventory_Location_Sync__c, HIC_ShopifySync__Collection_Sync__c, HIC_ShopifySync__Product_Sync__c, HIC_ShopifySync__Customer_Sync__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Draft_Order_Sync__c, HIC_ShopifySync__Salesforce_Pricebook__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c Where HIC_ShopifySync__Store__c != \'Default\' '); if(configList.isEmpty()) return null; for(HIC_ShopifySync__HIC_Configuration__c config : configList){ if(config.HIC_ShopifySync__Private_Key_Password__c != null && config.HIC_ShopifySync__Private_Key_Password__c != ''){ String PASSWORD = String.valueof(config.HIC_ShopifySync__Private_Key_Password__c); Blob cryptoKey = Blob.valueOf(String.valueof(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c)); Blob data = Blob.valueOf(PASSWORD); Blob encryptedData = Crypto.encryptWithManagedIV('AES128', cryptoKey, data ); String b64Data = EncodingUtil.base64Encode(encryptedData); if(b64Data != null && b64Data != ''){ config.HIC_ShopifySync__Private_Key_Password__c = b64Data; } } } return JSON.serialize(configList ); }catch(Exception e){ //CustomSettingRecordInsert.SuccessMailSend('Error message '+e.getMessage() + ' at line number ' + e.getLineNumber()); return e.getMessage()+''+e.getLineNumber(); } } /**************************************saveGeneral*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * save Configuration setting into Salesforce * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean saveGeneral( String configObj ){ try{ HIC_ShopifySync__Configuration__c config = new HIC_ShopifySync__Configuration__c(); config = ( HIC_ShopifySync__Configuration__c )JSON.deserialize(configObj, HIC_ShopifySync__Configuration__c.class); if(CheckAccessibility.isUpsertable('Name', 'HIC_ShopifySync__Configuration__c')) upsert config Name; return true; }catch( Exception e ){ } return false; } /**************************************getDefaultOppClosedate*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get Saved Default Opportunity Closed date * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static HIC_ShopifySync__HIC_Field_Mapping__c getDefaultOppClosedate(string store){ List fm = new List(); //System.debug('select '+Checkaccessibility.isAccessible('id, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c') +' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__External_ID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Opportunity-CloseDate\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999'); fm = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__GQL_Field_API__c, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c') +' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('HIC_ShopifySync__External_ID__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Opportunity-CloseDate\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 49999'); if(!fm.isEmpty()){ return fm[0]; }else{ return null; } } /**************************************getAccountDetails*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get selected Account details to display into the page * Based on Account ID * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static Account getAccountDetails(String accId){ List acc = new List(); acc = database.query('select '+Checkaccessibility.isAccessible('id, Name','Account')+' from Account where '+Checkaccessibility.isAccessible('id','Account')+' =: accId limit 1'); if(acc != null && !acc.isEmpty()){ return acc[0]; } return null; } /**************************************getDefaultOppStage*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Get Default Opportunity's Stage * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String getDefaultOppStage(string store){ List fm = new List(); System.debug('select '+Checkaccessibility.isAccessible('id, Name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Opportunity-StageName\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 1'); fm = database.query('select '+Checkaccessibility.isAccessible('id, Name, HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__Shopify_Fields__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \'Opportunity-StageName\' and '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' limit 1'); system.debug('getDefaultOppStage'+ fm); if(!fm.isempty() && fm != null && String.isNotBlank(fm[0].HIC_ShopifySync__Shopify_Fields__c)){ return fm[0].HIC_ShopifySync__Shopify_Fields__c; }else{ Schema.DescribeFieldResult fieldResult = Opportunity.stageName.getDescribe(); List ple = fieldResult.getPickListValues(); if(!ple.isEmpty() && ple != null){ return String.valueOf(ple[0].getLabel()); } return null; } } /**************************************saveFieldMapping*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Save Field Mapping into the Saleforce Field Mapping Object. * @param String contactList - List of Contact fieldmapping * @param String orderList - List of Order fieldmapping * @param String orderProductList - List of Order Product fieldmapping * @param String draftOrderList - List of draft Order fieldmapping * @param String draftOrderProductList - List of order product fieldmapping * @param String opportunityList - List of Opportunity fieldmapping * @param String opportunityProductList - List of Opportunity Product fieldmapping * @param String DefaultAccountForContacts - List of Account and Contact fieldmapping * @param String DefaultAccountForOrders - List of Default Account for Order and Opportunity fieldmapping * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean saveFieldMapping( String contactList,String orderList,String orderProductList,String draftOrderList,String draftOrderProductList,String opportunityList,String opportunityProductList,String DefaultAccountForContacts,String DefaultAccountForOrders, String store, String isNewStoreMapping){ /*Boolean isNewStoreMappingBoolean = isNewStoreMapping.containsIgnoreCase('true') ? true : false; if(isNewStoreMappingBoolean){ List InitialList = new List(); List listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' LIMIT 49999]; if(!listOfFieldMappingofFixedFields.isEmpty()){ System.debug('listOfFieldMappingofFixedFields-->if'); for(HIC_ShopifySync__HIC_Field_Mapping__c fixedField : listOfFieldMappingofFixedFields ){ HIC_ShopifySync__HIC_Field_Mapping__c cloned = fixedField.clone(false,false,false,false); InitialList.add(cloned); } } for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :InitialList ){ checkname.HIC_ShopifySync__Store__c = store; checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c; if(checkname.name != null && checkname.name != ''){ checkname.name = checkFieldLengthAndReturnValue(checkname.name); } } if(!InitialList.isEmpty()){ upsert InitialList HIC_ShopifySync__Store_External_ID__c; } } */ try{ List fmList = new List(); if(contactList != null && contactList != ' '){ List accFMList = new List(); system.debug('**contactList--'+contactList); CheckAccessibility.isAccessible('HIC_ShopifySync__External_ID__c,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Shopify_Field_Type__c,HIC_ShopifySync__Nested__c,HIC_ShopifySync__Shopify_Fields__c,HIC_ShopifySync__SF_Field_Type__c,Name,HIC_ShopifySync__Object_Name__c,HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__Field_Mapping__c'); CheckAccessibility.isUpsertable('HIC_ShopifySync__External_ID__c,HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Shopify_Field_Type__c,HIC_ShopifySync__Nested__c,HIC_ShopifySync__Shopify_Fields__c,HIC_ShopifySync__SF_Field_Type__c,Name,HIC_ShopifySync__Object_Name__c,HIC_ShopifySync__SF_Field__c','HIC_ShopifySync__Field_Mapping__c'); accFMList = ( List )JSON.deserialize(contactList, List.class); for(FieldMappingWrapper ob : accFMList){ System.debug('ob***'+ ob); System.debug('ObjectSelectfield--> '+ob.selectedfields); System.debug('ObjectShopifyfield--> '+ ob.shopifyFieldName); System.debug('ObjectNestedfield--> '+ ob.shopifyNested); System.debug('Objectgraphqlfield--> '+ ob.graphqlfield); if(ob.selectedfields != null && ob.selectedfields != ''){ //System.debug('salesforce field'+ob.salesforceFieldLabel); HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; }else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } } } } if(orderList != null && orderList != null){ List ordFMList = new List(); ordFMList = ( List )JSON.deserialize(orderList, List.class); for(FieldMappingWrapper ob : ordFMList){ System.debug('ob***'+ ob); if(ob.selectedfields != null && ob.selectedfields != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; }else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else { fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } } } } if(orderProductList != null && orderProductList != ''){ List ordProFMList = new List(); ordProFMList = ( List )JSON.deserialize(orderProductList, List.class); for(FieldMappingWrapper ob : ordProFMList){ System.debug('ob***'+ ob); if(ob.selectedfields != null && ob.selectedfields != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; }else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } } } } if(draftOrderList != null && draftOrderList != null){ List drfOrdFMList = new List(); drfOrdFMList = ( List )JSON.deserialize(draftOrderList, List.class); for(FieldMappingWrapper ob : drfOrdFMList){ System.debug('ob***'+ ob); if(ob.selectedfields != null && ob.selectedfields != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; }else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else { fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } } } } if(draftOrderProductList != null && draftOrderProductList != ''){ List drfOrdProFMList = new List(); drfOrdProFMList = ( List )JSON.deserialize(draftOrderProductList, List.class); for(FieldMappingWrapper ob : drfOrdProFMList){ System.debug('ob***'+ ob); if(ob.selectedfields != null && ob.selectedfields != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; }else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } } } } if(opportunityList!= null && opportunityList != ''){ List oppFMList = new List(); oppFMList = ( List )JSON.deserialize(opportunityList, List.class); for(FieldMappingWrapper ob : oppFMList){ System.debug('ob***'+ ob); if(ob.selectedfields != null && ob.selectedfields != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; }else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } } } } if(opportunityProductList!= null && opportunityProductList!= ''){ List oppProFMList = new List(); oppProFMList = ( List )JSON.deserialize(opportunityProductList, List.class); for(FieldMappingWrapper ob : oppProFMList){ System.debug('ob***'+ ob); if(ob.selectedfields != null && ob.selectedfields != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; } else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != '' && fm.Name != null && fm.Name != ''){ fmList.add(fm); } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } } } } Account acc = new Account(); acc = ( Account )JSON.deserialize(DefaultAccountForContacts, Account.class); for(HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping : [select Id, Name,HIC_ShopifySync__GQL_Field_API__c, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Nested__c from HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c='default' AND HIC_ShopifySync__SF_Field__c ='Accountid']){ HIC_ShopifySync__HIC_Field_Mapping__c clonedMapping = fieldMapping.clone(false,false,true,false); if(acc != null && acc.get('Id') != null && acc.get('Id') != ''){ clonedMapping.HIC_ShopifySync__Default_Value__c = true; clonedMapping.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id')); clonedMapping.HIC_ShopifySync__GQL_Field_API__c = String.valueOf(acc.get('Id')); } fmList.add(clonedMapping); } /*if(acc != null){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'Contact-Accountid'; fm.HIC_ShopifySync__External_ID__c = 'Contact-Accountid'; fm.HIC_ShopifySync__Default_Value__c = true; fm.HIC_ShopifySync__Object_Name__c = 'Contact'; fm.HIC_ShopifySync__SF_Field__c = 'Accountid'; fm.HIC_ShopifySync__Shopify_Field_Type__c = 'String'; fm.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE'; if(acc.get('Id') != null && acc.get('Id') != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id')); } fmList.add(fm); HIC_ShopifySync__HIC_Field_Mapping__c fm1 = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm1.Name = 'Opportunity-Accountid'; fm1.HIC_ShopifySync__External_ID__c = 'Opportunity-Accountid'; fm1.HIC_ShopifySync__Default_Value__c = true; fm1.HIC_ShopifySync__Object_Name__c = 'Opportunity'; fm1.HIC_ShopifySync__SF_Field__c = 'Accountid'; fm1.HIC_ShopifySync__Shopify_Field_Type__c = 'String'; fm1.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE'; fm1.HIC_ShopifySync__Nested__c = null; if(acc.get('Id') != null && acc.get('Id') != ''){ fm1.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id')); } fmList.add(fm1); HIC_ShopifySync__HIC_Field_Mapping__c fm2 = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm2.Name = 'Order-Accountid'; fm2.HIC_ShopifySync__External_ID__c = 'Order-Accountid'; fm2.HIC_ShopifySync__Default_Value__c = true; fm2.HIC_ShopifySync__Object_Name__c = 'Order'; fm2.HIC_ShopifySync__SF_Field__c = 'Accountid'; fm2.HIC_ShopifySync__Shopify_Field_Type__c = 'String'; fm2.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE'; if(acc.get('Id') != null && acc.get('Id') != ''){ fm2.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id')); } fmList.add(fm2); HIC_ShopifySync__HIC_Field_Mapping__c fm3 = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm3.Name = 'DraftOrder-Accountid'; fm3.HIC_ShopifySync__External_ID__c = 'DraftOrder-Accountid'; fm3.HIC_ShopifySync__Default_Value__c = true; fm3.HIC_ShopifySync__Object_Name__c = 'DraftOrder'; fm3.HIC_ShopifySync__SF_Field__c = 'Accountid'; fm3.HIC_ShopifySync__Shopify_Field_Type__c = 'String'; fm3.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE'; if(acc.get('Id') != null && acc.get('Id') != ''){ fm3.HIC_ShopifySync__Shopify_Fields__c = String.valueOf(acc.get('Id')); } fmList.add(fm3); }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'Contact-Accountid'; fm.HIC_ShopifySync__External_ID__c = 'Contact-Accountid'; fm.HIC_ShopifySync__Default_Value__c = false; fm.HIC_ShopifySync__Object_Name__c = 'Contact'; fm.HIC_ShopifySync__SF_Field__c = 'Accountid'; fm.HIC_ShopifySync__Shopify_Field_Type__c = 'String'; fm.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE'; fm.HIC_ShopifySync__Shopify_Fields__c = 'id'; fmList.add(fm); HIC_ShopifySync__HIC_Field_Mapping__c fm1 = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm1.Name = 'Opportunity-Accountid'; fm1.HIC_ShopifySync__External_ID__c = 'Opportunity-Accountid'; fm1.HIC_ShopifySync__Default_Value__c = false; fm1.HIC_ShopifySync__Object_Name__c = 'Opportunity'; fm1.HIC_ShopifySync__SF_Field__c = 'Accountid'; fm1.HIC_ShopifySync__Shopify_Field_Type__c = 'String'; fm1.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE'; fm1.HIC_ShopifySync__Nested__c = 'customer'; fm1.HIC_ShopifySync__Shopify_Fields__c = 'Id'; fmList.add(fm1); HIC_ShopifySync__HIC_Field_Mapping__c fm2 = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm2.Name = 'Order-Accountid'; fm2.HIC_ShopifySync__External_ID__c = 'Order-Accountid'; fm2.HIC_ShopifySync__Default_Value__c = false; fm2.HIC_ShopifySync__Object_Name__c = 'Order'; fm2.HIC_ShopifySync__SF_Field__c = 'Accountid'; fm2.HIC_ShopifySync__Shopify_Field_Type__c = 'String'; fm2.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE'; fm2.HIC_ShopifySync__Nested__c = 'customer'; fm2.HIC_ShopifySync__Shopify_Fields__c = 'Id'; fmList.add(fm2); HIC_ShopifySync__HIC_Field_Mapping__c fm3 = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm3.Name = 'DraftOrder-Accountid'; fm3.HIC_ShopifySync__External_ID__c = 'DraftOrder-Accountid'; fm3.HIC_ShopifySync__Default_Value__c = false; fm3.HIC_ShopifySync__Object_Name__c = 'DraftOrder'; fm3.HIC_ShopifySync__SF_Field__c = 'Accountid'; fm3.HIC_ShopifySync__Shopify_Field_Type__c = 'String'; fm3.HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE'; fm3.HIC_ShopifySync__Nested__c = 'customer'; fm3.HIC_ShopifySync__Shopify_Fields__c = 'Id'; fmList.add(fm3); }*/ //check field's value length if(!fmList.isEmpty() && fmList.size() > 0){ System.debug('listOfFieldMappingofFixedFields-->'); /*list listOfFieldMappingofFixedFields = new list(); if(isNewStoreMappingBoolean){ listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' and (HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Inventory__c' Or HIC_ShopifySync__Object_Name__c = 'Product2' Or HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Collect__c' Or HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Inventory_Level__c' Or HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Location__c' Or HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Collection__c' Or HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Order_Fulfillment_Item__c' Or HIC_ShopifySync__Object_Name__c = 'HIC_ShopifySync__Variant__c' or (HIC_ShopifySync__SF_Field_Type__c = 'REFERENCE' AND HIC_ShopifySync__SF_Field__c != 'Accountid')) ]; }else{ listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' AND HIC_ShopifySync__SF_Field__c != 'Accountid' ]; } System.debug('listOfFieldMappingofFixedFields--> '+listOfFieldMappingofFixedFields.size()); if(!listOfFieldMappingofFixedFields.isEmpty()){ System.debug('listOfFieldMappingofFixedFields-->if'); for(HIC_ShopifySync__HIC_Field_Mapping__c fixedField : listOfFieldMappingofFixedFields ){ HIC_ShopifySync__HIC_Field_Mapping__c cloned = fixedField.clone(false,false,false,false); fmList.add(cloned); } } */ /*list listOfFieldMappingofFixedFields = new list(); if(isNewStoreMappingBoolean){ listOfFieldMappingofFixedFields = [SELECT name, HIC_ShopifySync__Default_Value__c, HIC_ShopifySync__External_ID__c, HIC_ShopifySync__IsSFID__c, HIC_ShopifySync__Nested__c, HIC_ShopifySync__Object_Name__c, HIC_ShopifySync__SF_Field__c, HIC_ShopifySync__SF_Field_Type__c, HIC_ShopifySync__Shopify_Fields__c, HIC_ShopifySync__Shopify_Field_Type__c, HIC_ShopifySync__Store__c, HIC_ShopifySync__Store_External_ID__c FROM HIC_ShopifySync__HIC_Field_Mapping__c where HIC_ShopifySync__Store__c = 'Default' AND (HIC_ShopifySync__Shopify_Field_Type__c = 'Reference' or Name = 'Order-Status') ]; } System.debug('listOfFieldMappingofFixedFields--> '+listOfFieldMappingofFixedFields.size()); if(!listOfFieldMappingofFixedFields.isEmpty()){ System.debug('listOfFieldMappingofFixedFields-->if'); for(HIC_ShopifySync__HIC_Field_Mapping__c fixedField : listOfFieldMappingofFixedFields ){ HIC_ShopifySync__HIC_Field_Mapping__c cloned = fixedField.clone(false,false,false,false); fmList.add(cloned); } }*/ for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :fmList ){ checkname.HIC_ShopifySync__Store__c = store; checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c; if(checkname.name != null && checkname.name != ''){ checkname.name = checkFieldLengthAndReturnValue(checkname.name); } } if(!fmList.isEmpty()){ upsert fmList HIC_ShopifySync__Store_External_ID__c; //Update fmList; } } return true; }catch( Exception e ){ System.debug('Exception'+e.getMessage()+'at line'+e.getLineNumber()); } return false; } /**************************************saveFieldMappingSecond*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Save account & Contact / Person Account Field mapping * ────────────────────────────────────────────────────────────────────────────────────────────── * @param String accountList - List of Account field mapping * @param String DefaultOpportunityStage - Default Opportunity stage selected by the user * @param String today - Identify records its person account or not * @param boolean check - check true means user selected the default value into the page * @param boolean Defaultmapping - Deafult Close date mapping by user * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean saveFieldMappingSecond(String accountList, String productList, String variantList, String DefaultOpportunityStage , String today, boolean check ,boolean Defaultmapping, String store ){ try{ List fmList = new List(); if(productList != null && productList != null){ List proFMList = new List(); proFMList = ( List )JSON.deserialize(productList, List.class); for(FieldMappingWrapper ob : proFMList){ System.debug('ob***'+ ob); if(ob.selectedfields != null && ob.selectedfields != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; }else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } }else if(ob.graphqlfield != null && ob.graphqlfield != ''){ System.debug('ob.graphqlfield'+ob.graphqlfield); fm.HIC_ShopifySync__GQL_Field_API__c = ''; if(ob.graphqlfield.containsIgnoreCase('.')){ System.debug('ob.graphqlfield'+ob.graphqlfield); if(ob.graphqlfield.containsIgnoreCase(',')){ System.debug('ob.graphqlfield'+ob.graphqlfield); for(String str : ob.graphqlfield.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__GQL_Field_API__c += ','+strList[1]; } } fm.HIC_ShopifySync__GQL_Field_API__c = fm.HIC_ShopifySync__GQL_Field_API__c.removeStart(','); }else{ List strList = new List(); strList = ob.graphqlfield.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__GQL_Field_API__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else { fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } } } } if(variantList != null && variantList != ''){ List variantFMList = new List(); variantFMList = ( List )JSON.deserialize(variantList, List.class); for(FieldMappingWrapper ob : variantFMList){ System.debug('ob***'+ ob); if(ob.selectedfields != null && ob.selectedfields != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; }else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } }else if(ob.graphqlfield != null && ob.graphqlfield != ''){ System.debug('ob.graphqlfield'+ob.graphqlfield); fm.HIC_ShopifySync__GQL_Field_API__c = ''; if(ob.graphqlfield.containsIgnoreCase('.')){ System.debug('ob.graphqlfield'+ob.graphqlfield); if(ob.graphqlfield.containsIgnoreCase(',')){ System.debug('ob.graphqlfield'+ob.graphqlfield); for(String str : ob.graphqlfield.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__GQL_Field_API__c += ','+strList[1]; } } fm.HIC_ShopifySync__GQL_Field_API__c = fm.HIC_ShopifySync__GQL_Field_API__c.removeStart(','); }else{ List strList = new List(); strList = ob.graphqlfield.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__GQL_Field_API__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = ob.sobjectType+'-'+ob.salesforcefields; if(ob.salesforcefields.contains('HIC_ShopifySync__')){ String tempfieldname = ob.sobjectType+'-'+ob.salesforcefields.replace('HIC_ShopifySync__','HIC_'); fm.Name = tempfieldname; }else{ fm.Name = ob.sobjectType+'-'+ob.salesforcefields; } } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''&& fm.Name != null && fm.Name != ''){ fmList.add(fm); } } } } if(DefaultOpportunityStage != null && DefaultOpportunityStage != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'Opportunity-StageName'; fm.HIC_ShopifySync__External_ID__c = 'Opportunity-StageName'; fm.HIC_ShopifySync__Default_Value__c = true; fm.HIC_ShopifySync__Object_Name__c = 'Opportunity'; fm.HIC_ShopifySync__SF_Field__c = 'StageName'; fm.HIC_ShopifySync__Shopify_Field_Type__c = 'pickList'; fm.HIC_ShopifySync__Shopify_Fields__c = DefaultOpportunityStage; fm.HIC_ShopifySync__GQL_Field_API__c = DefaultOpportunityStage; fmList.add(fm); } System.debug('today---'+today); if(check && today != null && today != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'Opportunity-CloseDate'; fm.HIC_ShopifySync__External_ID__c = 'Opportunity-CloseDate'; fm.HIC_ShopifySync__Default_Value__c = true; fm.HIC_ShopifySync__Object_Name__c = 'Opportunity'; fm.HIC_ShopifySync__SF_Field__c = 'CloseDate'; fm.HIC_ShopifySync__Shopify_Field_Type__c = 'date'; fm.HIC_ShopifySync__SF_Field_Type__c = 'Date'; fm.HIC_ShopifySync__Shopify_Fields__c = today; fm.HIC_ShopifySync__GQL_Field_API__c=today; fmList.add(fm); }else if(!Defaultmapping){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'Opportunity-CloseDate'; //fm.HIC_ShopifySync__Default_Value__c = false; fm.HIC_ShopifySync__External_ID__c = 'Opportunity-CloseDate'; fmList.add(fm); } List accFMList = new List(); if(fmList.size() > 0){ for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :fmList ){ checkname.HIC_ShopifySync__Store__c = store; checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c; if(checkname.name != null && checkname.name != ''){ checkname.name = checkFieldLengthAndReturnValue(checkname.name); } } upsert fmList HIC_ShopifySync__Store_External_ID__c; } return true; }catch( Exception e ){ System.debug('Exception'+e.getMessage()+'at line'+e.getLineNumber()); } return false; } //wrapper class for field mapping public class FieldMappingWrapper { public String sobjectType; public String salesforcefields; public String selectedfields; public String salesforceFieldType; public String salesforceFieldLabel; public String shopifyFieldName; public String shopifyNested; public String shopifyFieldType; public Boolean DefaultValue; public String graphqlfield; public FieldMappingWrapper parse(String json) { return (FieldMappingWrapper) System.JSON.deserialize(json, FieldMappingWrapper.class); } } /**************************************saveRecordTypeMapping*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Save Salesforce Object's Recordtypes * ────────────────────────────────────────────────────────────────────────────────────────────── * @param String PersonAccountRecordTypeId - personAccount RecordtypeID selected by user in page * @param String AccountRecordTypeId - business account RecordtypeID selected by user in page * @param String ContactRecordTypeId - contact RecordtypeID selected by user in page * @param String OrderRecordTypeId - order RecordtypeID selected by user in page * @param String OpportunityRecordTypeId - Opportunity RecordtypeID selected by user in page * @param String DraftorderRecordTypeId - draft order RecordtypeID selected by user in page * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean saveRecordTypeMapping(String PersonAccountRecordTypeId,String AccountRecordTypeId,String ContactRecordTypeId,String OrderRecordTypeId,String OpportunityRecordTypeId, String DraftorderRecordTypeId){ System.debug('PersonAccountRecordTypeId'+PersonAccountRecordTypeId); System.debug('AccountRecordTypeId'+AccountRecordTypeId); System.debug('ContactRecordTypeId'+ContactRecordTypeId); System.debug('OrderRecordTypeId'+OrderRecordTypeId); System.debug('OpportunityRecordTypeId'+OpportunityRecordTypeId); System.debug('DraftorderRecordTypeId'+DraftorderRecordTypeId); String[] paramList = PersonAccountRecordTypeId.split(','); if(paramList[0] == 'undefined'){ PersonAccountRecordTypeId = null; }else{ PersonAccountRecordTypeId = paramList[0]; } String store = paramList[1]; System.debug('store'+store); try{ List fmList = new List(); if(PersonAccountRecordTypeId != null && PersonAccountRecordTypeId != ''){ //System.debug('acc '+acc); HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'PersonAccount-RecordTypeId'; fm.HIC_ShopifySync__External_ID__c = 'PersonAccount-RecordTypeId'; fm.HIC_ShopifySync__Default_Value__c = true; fm.HIC_ShopifySync__Object_Name__c = 'PersonAccount'; fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; //fm.Shopify_Field_Type__c = 'date'; fm.HIC_ShopifySync__SF_Field_Type__c = 'reference'; fm.HIC_ShopifySync__Shopify_Fields__c = PersonAccountRecordTypeId; fm.HIC_ShopifySync__GQL_Field_API__c = PersonAccountRecordTypeId; fm.HIC_ShopifySync__Store__c = store; fm.HIC_ShopifySync__Store_External_ID__c = store+'PersonAccount-RecordTypeId'; fmList.add(fm); } if(AccountRecordTypeId != null && AccountRecordTypeId != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'Account-RecordTypeId'; fm.HIC_ShopifySync__External_ID__c = 'Account-RecordTypeId'; fm.HIC_ShopifySync__Default_Value__c = true; fm.HIC_ShopifySync__Object_Name__c = 'Account'; fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; //fm.Shopify_Field_Type__c = 'date'; fm.HIC_ShopifySync__SF_Field_Type__c = 'reference'; fm.HIC_ShopifySync__Shopify_Fields__c = AccountRecordTypeId; fm.HIC_ShopifySync__GQL_Field_API__c = AccountRecordTypeId; fm.HIC_ShopifySync__Store__c = store; fm.HIC_ShopifySync__Store_External_ID__c = store+'Account-RecordTypeId'; fmList.add(fm); } if(ContactRecordTypeId != null && ContactRecordTypeId != ''){ //System.debug('acc '+acc); HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'Contact-RecordTypeId'; fm.HIC_ShopifySync__External_ID__c = 'Contact-RecordTypeId'; fm.HIC_ShopifySync__Default_Value__c = true; fm.HIC_ShopifySync__Object_Name__c = 'Contact'; fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; //fm.Shopify_Field_Type__c = 'date'; fm.HIC_ShopifySync__SF_Field_Type__c = 'reference'; fm.HIC_ShopifySync__Shopify_Fields__c = ContactRecordTypeId; fm.HIC_ShopifySync__GQL_Field_API__c = ContactRecordTypeId; fm.HIC_ShopifySync__Store__c = store; fm.HIC_ShopifySync__Store_External_ID__c = store+'Contact-RecordTypeId'; fmList.add(fm); } if(OrderRecordTypeId != null && OrderRecordTypeId != ''){ //System.debug('acc '+acc); HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'Order-RecordTypeId'; fm.HIC_ShopifySync__External_ID__c = 'Order-RecordTypeId'; fm.HIC_ShopifySync__Default_Value__c = true; fm.HIC_ShopifySync__Object_Name__c = 'Order'; fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; //fm.Shopify_Field_Type__c = 'date'; fm.HIC_ShopifySync__SF_Field_Type__c = 'reference'; fm.HIC_ShopifySync__Shopify_Fields__c = OrderRecordTypeId; fm.HIC_ShopifySync__GQL_Field_API__c = OrderRecordTypeId; fm.HIC_ShopifySync__Store__c = store; fm.HIC_ShopifySync__Store_External_ID__c = store+'Order-RecordTypeId'; fmList.add(fm); } if(DraftorderRecordTypeId != null && DraftorderRecordTypeId!= ''){ //System.debug('acc '+acc); HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'DraftOrder-RecordTypeId'; fm.HIC_ShopifySync__External_ID__c = 'DraftOrder-RecordTypeId'; fm.HIC_ShopifySync__Default_Value__c = true; fm.HIC_ShopifySync__Object_Name__c = 'Draftorder'; fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; //fm.Shopify_Field_Type__c = 'date'; fm.HIC_ShopifySync__SF_Field_Type__c = 'reference'; fm.HIC_ShopifySync__Shopify_Fields__c = DraftOrderRecordTypeId; fm.HIC_ShopifySync__GQL_Field_API__c = DraftOrderRecordTypeId; fm.HIC_ShopifySync__Store__c = store; fm.HIC_ShopifySync__Store_External_ID__c = store+'DraftOrder-RecordTypeId'; fmList.add(fm); } if(OpportunityRecordTypeId != null && OpportunityRecordTypeId != ''){ //System.debug('acc '+acc); HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); fm.Name = 'Opportunity-RecordTypeId'; fm.HIC_ShopifySync__External_ID__c = 'Opportunity-RecordTypeId'; fm.HIC_ShopifySync__Default_Value__c = true; fm.HIC_ShopifySync__Object_Name__c = 'Opportunity'; fm.HIC_ShopifySync__SF_Field__c = 'RecordTypeId'; //fm.Shopify_Field_Type__c = 'date'; fm.HIC_ShopifySync__SF_Field_Type__c = 'reference'; fm.HIC_ShopifySync__Shopify_Fields__c = OpportunityRecordTypeId; fm.HIC_ShopifySync__GQL_Field_API__c = OpportunityRecordTypeId; fm.HIC_ShopifySync__Store__c = store; fm.HIC_ShopifySync__Store_External_ID__c = store+'Opportunity-RecordTypeId'; fmList.add(fm); } if(fmList.size() > 0){ for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :fmList ){ if(checkname.name != null && checkname.name != ''){ checkname.name = checkFieldLengthAndReturnValue(checkname.name); } } upsert fmList HIC_ShopifySync__Store_External_ID__c; } return true; }catch( Exception e ){ System.debug('Exception'+e.getMessage()+'at line'+e.getLineNumber()); } return false; } /**************************************InitializeAccount*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Use for Insert Default Account in Salesforce. * Whenever Shopify's Account is not found in Salesforce and its required on records * ────────────────────────────────────────────────────────────────────────────────────────────── * @param String accountList - save required fieldmapping of Account and Contact * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static boolean saveRequiredFieldMapping(String accountList, String store){ try{ // List gqllist = new ([select name, HIC_ShopifySync__GQL_Field_API__c,HIC_ShopifySync__Field_Name__c,HIC_ShopifySync__Nested__c,HIC_ShopifySync__Object_Name__c,HIC_ShopifySync__External_ID__c,HIC_ShopifySync__Data_Type__c from HIC_ShopifySync__Shopify_Fields__c WITH USER_MODE limit 49999]); system.debug('** I am Here at accountList'+accountList); List fmList = new List(); Set checkExternalId = new Set(); List accFMList = new List(); //system.debug('**contactList--'+contactList); accFmList = ( List )JSON.deserialize(accountList, List.class); for(FieldMappingWrapper ob : accFMList){ System.debug('ob***'+ ob); //System.debug('salesforce field'+ob.salesforceFieldLabel); if(ob.selectedfields != null && ob.selectedfields != ''){ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.salesforcefields != null && ob.salesforcefields != '' && (ob.salesforcefields == 'firstName' || ob.salesforcefields == 'lastName' || ob.salesforcefields.containsIgnoreCase('person') || ob.salesforcefields.contains('__pc')) ){ fm.HIC_ShopifySync__Object_Name__c = 'PersonAccount'; } else if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.shopifyFieldName != null && ob.shopifyFieldName != ''){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.shopifyFieldName; }else if(ob.selectedfields != null && ob.selectedfields != ''){ System.debug('ob.selectedfields'+ob.selectedfields); fm.HIC_ShopifySync__Shopify_Fields__c = ''; if(ob.selectedfields.containsIgnoreCase('.')){ System.debug('ob.selectedfields'+ob.selectedfields); if(ob.selectedfields.containsIgnoreCase(',')){ System.debug('ob.selectedfields'+ob.selectedfields); for(String str : ob.selectedfields.split(',')){ List strList = new List(); system.debug('*** str'+str); strList = str.split('\\.'); System.debug('ob.strList'+strList); system.debug('**size'+strList.size()); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c += ','+strList[1]; } } fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); }else{ List strList = new List(); strList = ob.selectedfields.split('\\.'); system.debug('strList-->'+strList); if(!strList.isEmpty()){ ob.shopifyNested = strList[0]; fm.HIC_ShopifySync__Shopify_Fields__c = strList[1]; } //fm.HIC_ShopifySync__Shopify_Fields__c = fm.HIC_ShopifySync__Shopify_Fields__c.removeStart(','); } }else{ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; } } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; if(fm.HIC_ShopifySync__Default_Value__c){ fm.HIC_ShopifySync__Shopify_Fields__c = ob.selectedfields; fm.HIC_ShopifySync__GQL_Field_API__c = ob.selectedfields; } } if(ob.shopifyNested != null && ob.shopifyNested != ''){ fm.HIC_ShopifySync__Nested__c = ob.shopifyNested; }else{ fm.HIC_ShopifySync__Nested__c = null; } if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = fm.HIC_ShopifySync__Object_Name__c+'-'+ob.salesforcefields; fm.Name = fm.HIC_ShopifySync__Object_Name__c+'-'+ob.salesforcefields; } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''){ if(!checkExternalId.contains(fm.HIC_ShopifySync__External_ID__c)){ checkExternalId.add(fm.HIC_ShopifySync__External_ID__c); fmList.add(fm); } } }else{ HIC_ShopifySync__HIC_Field_Mapping__c fm = new HIC_ShopifySync__HIC_Field_Mapping__c(); if(ob.salesforcefields != null && ob.salesforcefields != '' && (ob.salesforcefields == 'firstName' || ob.salesforcefields == 'lastName' || ob.salesforcefields.containsIgnoreCase('person') || ob.salesforcefields.contains('__pc')) ){ fm.HIC_ShopifySync__Object_Name__c = 'PersonAccount'; } else if(ob.sobjectType != null && ob.sobjectType != ''){ System.debug('inif salesforce field'+ob.sobjectType); fm.HIC_ShopifySync__Object_Name__c = ob.sobjectType; } if(ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__SF_Field__c = ob.salesforcefields; } if(ob.salesforceFieldType != null && ob.salesforceFieldType != ''){ fm.HIC_ShopifySync__SF_Field_Type__c = ob.salesforceFieldType; } if(ob.graphqlfield != null && ob.graphqlfield != ''){ fm.HIC_ShopifySync__GQL_Field_API__c = ob.graphqlfield; } if(ob.salesforceFieldLabel != null && ob.salesforceFieldLabel != ''){ //fm.Object_Name__c = ob.salesforceFieldLabel; } if(ob.DefaultValue != null){ fm.HIC_ShopifySync__Default_Value__c = ob.DefaultValue; } fm.HIC_ShopifySync__Shopify_Fields__c = null; fm.HIC_ShopifySync__Nested__c = null; if(ob.shopifyFieldType != null && ob.shopifyFieldType != ''){ fm.HIC_ShopifySync__Shopify_Field_Type__c = ob.shopifyFieldType; }else{ fm.HIC_ShopifySync__Shopify_Field_Type__c = null; } if(ob.sobjectType != null && ob.sobjectType != '' && ob.salesforcefields != null && ob.salesforcefields != ''){ fm.HIC_ShopifySync__External_ID__c = fm.HIC_ShopifySync__Object_Name__c+'-'+ob.salesforcefields; fm.Name = fm.HIC_ShopifySync__Object_Name__c+'-'+ob.salesforcefields; } if(fm.HIC_ShopifySync__External_ID__c != null && fm.HIC_ShopifySync__External_ID__c != ''){ if(!checkExternalId.contains(fm.HIC_ShopifySync__External_ID__c)){ checkExternalId.add(fm.HIC_ShopifySync__External_ID__c); fmList.add(fm); } } } } if(fmList.size() > 0){ for(HIC_ShopifySync__HIC_Field_Mapping__c checkname :fmList ){ checkname.HIC_ShopifySync__Store__c = store; checkname.HIC_ShopifySync__Store_External_ID__c = store+checkname.HIC_ShopifySync__External_ID__c; if(checkname.name != null && checkname.name != ''){ checkname.name = checkFieldLengthAndReturnValue(checkname.name); } } upsert fmList HIC_ShopifySync__Store_External_ID__c; } return true; }catch( Exception e ){ System.debug('Exception'+e.getMessage()+'at line'+e.getLineNumber()); } return false; } /** * * Handling Graph QL Fields */ // public static string handleGraphQlFields(String selectedFields){ // String graphQlFields = null; // if(String.isNotBlank(selectedFields)){ // try{ // for(HIC_ShopifySync__Shopify_Fields__c graph:gqllist){ // } // }Catch(Exception ex){ // System.debug('@@@ Exception occured at line : '+ex.getLineNumber()+' with message : '+ex.getMessage()); // } // } // return graphQlFields; // } /**************************************checkCreds*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * Verify Shopify Credetials via callout into the Shopify * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static Boolean checkCreds(String shopifyUrl, String USER_NAME, String PASSWORD){ try { List cyptokeyquery = new List(); cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Cryptokey__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1'); if(cyptokeyquery.isEmpty()) return null; System.debug('USER_NAME++'+USER_NAME); if(PASSWORD.containsIgnoreCase('True')){ PASSWORD = PASSWORD.removeEnd('True'); Blob cryptoKey1 = Blob.valueOf(String.valueOf(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c)); Blob data = EncodingUtil.base64Decode(PASSWORD); Blob decryptedData = Crypto.decryptWithManagedIV('AES128', cryptoKey1, data); String dryptDatapsd = decryptedData.toString(); if(dryptDatapsd != null && dryptDatapsd != ''){ PASSWORD = dryptDatapsd; } } System.debug('PASSWORD++'+PASSWORD); Http h = new Http(); HttpRequest req = new HttpRequest(); String responseBody; String endPointValue = shopifyUrl + '/admin/shop.json'; req.setEndpoint(endPointValue); //Adding certificate to HTTP Requests req.setClientCertificateName('Shopify'); /*Blob headerValue = Blob.valueOf(USER_NAME + ':' + PASSWORD); String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue); req.setHeader('Authorization', authorizationHeader);*/ req.setHeader('X-Shopify-Access-Token', PASSWORD); req.setHeader('content-type', 'application/json'); req.setMethod('GET'); req.setTimeout(120000); HttpResponse res ; res = h.send(req); responseBody = res.getBody(); if(res.getStatusCode() == 200){ return True; } }catch(Exception e){ return false; } return False; } /**************************************checkCAccesscope*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * check Shopify store access for the entity * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static String checkCAccesscope(String shopifyUrl, String USER_NAME, String PASSWORD){ try{ List cyptokeyquery = new List(); cyptokeyquery = database.query('select '+Checkaccessibility.isAccessible('id,HIC_ShopifySync__Cryptokey__c','HIC_ShopifySync__Configuration__c')+' from HIC_ShopifySync__Configuration__c where '+Checkaccessibility.isAccessible('Name','HIC_ShopifySync__Configuration__c')+' = \'Default\' limit 1'); if(cyptokeyquery.isEmpty()) return null; if(PASSWORD.containsIgnoreCase('True')){ PASSWORD = PASSWORD.removeEnd('True'); Blob cryptoKey1 = Blob.valueOf(String.valueOf(cyptokeyquery[0].HIC_ShopifySync__Cryptokey__c)); Blob data = EncodingUtil.base64Decode(PASSWORD); Blob decryptedData = Crypto.decryptWithManagedIV('AES128', cryptoKey1, data); String dryptDatapsd = decryptedData.toString(); if(dryptDatapsd != null && dryptDatapsd != ''){ PASSWORD = dryptDatapsd; } } Http h = new Http(); HttpRequest req = new HttpRequest(); String responseBody; String AccessResponse = ''; String endPointValue = shopifyUrl + '/admin/oauth/access_scopes.json'; req.setEndpoint(endPointValue); req.setClientCertificateName('Shopify'); /*Blob headerValue = Blob.valueOf(USER_NAME + ':' + PASSWORD); String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue); req.setHeader('Authorization', authorizationHeader);*/ req.setHeader('X-Shopify-Access-Token', PASSWORD); req.setHeader('content-type', 'application/json'); req.setMethod('GET'); req.setTimeout(120000); try { HttpResponse res ; res = h.send(req); responseBody = res.getBody(); if(res.getStatusCode() == 200){ map main = (map) JSON.deserializeUntyped(responseBody); if(!main.isempty() && main.containskey('access_scopes')){ List objectList = (list) main.get('access_scopes'); for(object accessobj : objectList){ map access_scopemap = (map)accessobj ; if(!access_scopemap.isEmpty() && access_scopemap.containskey('handle') && access_scopemap.get('handle') != null){ AccessResponse += access_scopemap.get('handle')+ ','; } } }if(AccessResponse != null || AccessResponse != '' ){ AccessResponse.removeEnd(','); return AccessResponse; } } }catch(Exception e){ return null; } return null; }catch(exception e){ return null; } } /**************************************checkFieldLengthAndReturnValue*************************************************/ /** * ─────────────────────────────────────────────────────────────────────────────────────────────┐ * check Saleforce field length * return trimed shopify trimed value based on salesforce field length * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ public static String checkFieldLengthAndReturnValue(String body){ /*Schema.SObjectType t = Schema.getGlobalDescribe().get('HIC_ShopifySync__Field_Mapping__c'); Schema.DescribeSObjectResult ObjectResult = t.getDescribe(); Schema.DescribeFieldResult fieldResult = ObjectResult.fields.getMap().get('Name').getDescribe(); if(fieldResult.getLength() > 0 && body != null){ system.debug('*****BodyLength*** '+ body.length()); if( body.length() <= fieldResult.getLength()){ return body; }else{ return body.subString(0,fieldResult.getLength()); } }else{ return ''; }*/ if(body != null){ system.debug('*****BodyLength*** '+ body.length()); if( body.length() <= 40){ return body; }else{ return body.subString(0,40); } }else{ return ''; } } /**************************************RemoveStore*************************************************/ /* To remove particular store configuration, webhooks and field mappings * ────────────────────────────────────────────────────────────────────────────────────────────── * ─────────────────────────────────────────────────────────────────────────────────────────────┘ */ @AuraEnabled public static Boolean RemoveStore(String store){ try{ List listofallcustomSetting = new List(); String query = ' select '+CheckAccessibility.isAccessible('id','HIC_ShopifySync__HIC_Field_Mapping__c')+' from HIC_ShopifySync__HIC_Field_Mapping__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Field_Mapping__c')+' = \''+store+'\' LIMIT 49999'; listofallcustomSetting = database.query(query); //system.debug('listofallcustomSetting--> '+listofallcustomSetting); if(!listofallcustomSetting.isEmpty()){ if(CheckAccessibility.isDeletable('HIC_ShopifySync__HIC_Field_Mapping__c')) database.delete (listofallcustomSetting,false); } /*Long startTime = DateTime.now().getTime(); Long finishTime = DateTime.now().getTime(); while ((finishTime - startTime) < 3000) { //sleep for 3s finishTime = DateTime.now().getTime(); }*/ List ConfigListToDelete = new List(); String query1 = ' select '+CheckAccessibility.isAccessible('id,HIC_ShopifySync__API_Key__c,HIC_ShopifySync__Private_Key_Password__c,HIC_ShopifySync__Shopify_URL__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c','HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999'; ConfigListToDelete = database.query(query1); //system.debug('listofallcustomSetting--> '+listofallcustomSetting); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Update', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Create', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Collection__c', 'Delete', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('Customer', 'Create', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('Customer', 'Update', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('Customer', 'Delete', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Connect', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Disconnect', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Inventory_Level__c', 'Update', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Update', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Create', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('HIC_ShopifySync__Location__c', 'Delete', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('Product2', 'Create', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('Product2', 'Delete', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('Product2', 'Update', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('DraftOrder', 'Create', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('DraftOrder', 'Delete', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('DraftOrder', 'Update', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('Order', 'Create', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('Order', 'Update', store, JSON.serialize(ConfigListToDelete)); HICWebhookUtility.deleteWebhook('Order', 'Delete', store, JSON.serialize(ConfigListToDelete)); if(!ConfigListToDelete.isEmpty()){ if(CheckAccessibility.isDeletable('HIC_ShopifySync__HIC_Configuration__c')) database.delete (ConfigListToDelete,false); } //HICWebhookUtility.deleteStoreConfigs(store); return true; }catch(Exception e){ return false; } } @AuraEnabled public static List accFields(){ List fieldsList = new List(); Schema.SObjectType targetType = Schema.getGlobalDescribe().get('account'); Map fieldMap = targetType.getDescribe().fields.getMap(); for (Schema.SObjectField field : fieldMap.values()) { System.debug('Acc field:: '+field.getDescribe().getName()); fieldsList.add(field.getDescribe().getName()); } return fieldsList; } @AuraEnabled public static String getShopifyFields(String objectName){ return HIC_ShopifyUtility.getShopifyFields(objectName); } public static HIC_ShopifySync__HIC_Field_Mapping__c processFieldMappingSobjectWithAllFields(string objectName, string sfField, string shopifyField, string nested, boolean isDefault, boolean isSfId, String sfFieldType, String shopifyType, String Store){ HIC_ShopifySync__HIC_Field_Mapping__c fieldMapping = new HIC_ShopifySync__HIC_Field_Mapping__c(); try{ String tempObname=objectName; String tempfieldname=sfField; if(objectName.contains('HIC_ShopifySync__')){ tempObname= objectName.subString(17); /* ___________________________________________*/ if(tempObname.contains('Fulfillment')){ String tempHold= tempObname.replace('Order','Ord'); tempHold= tempHold.replace('Fulfillment','Ful'); tempObname=tempHold; } /* ___________________________________________*/ } if(sfField.contains('HIC_ShopifySync__')){ tempfieldname= sfField.subString(17); } if(string.valueOf(tempObname+'-'+tempfieldname).length() >38){ fieldMapping.name = string.valueOf(tempObname+'-'+tempfieldname).substring(0,38); }else{ fieldMapping.name = tempObname+'-'+tempfieldname; } if(sfField != null && sfField != ''){ fieldMapping.HIC_ShopifySync__Object_Name__c = objectName; fieldMapping.HIC_ShopifySync__SF_Field__c = sfField; fieldMapping.HIC_ShopifySync__Shopify_Fields__c = shopifyField; fieldMapping.HIC_ShopifySync__Nested__c = nested; fieldMapping.HIC_ShopifySync__Default_Value__c = isDefault; fieldMapping.HIC_ShopifySync__IsSFID__c = isSfId; fieldMapping.HIC_ShopifySync__External_ID__c = objectName+'-'+sfField; fieldMapping.HIC_ShopifySync__Store_External_ID__c = objectName+'-'+sfField; fieldMapping.HIC_ShopifySync__SF_Field_Type__c=sfFieldType; fieldMapping.HIC_ShopifySync__Shopify_Field_Type__c=shopifyType; fieldMapping.HIC_ShopifySync__Store__c = store; return fieldMapping; } return null; }catch(Exception e){ return null; } } }