[SalesForce] Using SF Quote Sync and Custom Fields – Better to roll the own Sync functionality

I've got the SF Labs Quote Sync Unmanaged package (https://appexchange.salesforce.com/listingDetail?listingId=a0N30000003Iop5EAC).

Well, I've got some code that runs on Opportunity line item to make bundling happen. What happens is there's a junction object between product2 and product2, when a product is added to an Opportunity that is flagged as a 'bundle item' I insert the rest of the items from this junction object and reference a custom field with the parent OpportunityLineItem's ID (OpportunityLineItem can't lookup to itself). I have some code that cascade deletes these child objects and a custom VF page to help display them in a way that makes sense. A similar process happens on QuoteLineItem and I use the SF Labs app to get my custom fields carried over, I can then relate them (QuoteLineItem can lookup to itself). I have some custom VF pdfs to handle the top level items and everything seems to work great.

Except when I start syncing the quote to opportunity. I'm not sure what exactly is happening here, but the timing of the trigger from SF Labs Custom Quote Synce is causing some weirdness, items stop relating correctly and my trigger that related items no longer seems to fire properly.

My Question is this:
Rather than modify the SF Labs code and spend countless hours debugging, would there be any problems with rolling my own sync process? Something that could break core SF functionality? Do many installed packages depend on this function in your experience?

I would make a button on Quote to start syncing that works just like the 'Start Sync' button does now, except it turns on my own sync field. I then handle all of the updates up to Opportunity and down to Quote with my own code – code that fires in exactly the order I control.

Best Answer

There is no problem in creating your own process. The SF labs app is just something custom that a couple of developers created. You still might want to copy some of the main principles from that package, though.

I don't think any managed packages depend on the syncing functionality. I know for a fact that e.g. BigMachines comes with its own (custom) syncing code as they even have their own custom Quote object.

Related Topic