Need suggestions to build a service which communicate with nopcommerce database and microsoft dynamics crm the master product catalog sits in dynamics CRM, for frontend we want to use nopcommerce platform which handles e commerce transactions the middle service will sync products tables of nopcommerce with dynamics CRM products and when products are ordered, sync dynamics order entity with nopcomerce orders tables.
what do you think it can be achieved? ant tools or guideline available someone has done like that previously?
The solution is depending on how complex your system is and how many orders/products you are going to process.
The easiest solution is to create a scheduled task which will synchronize orders and products every hour or ore often as needed. You may use Dynamics Web API - https://msdn.microsoft.com/en-us/library/mt779074.aspx.
You can also handle OrderPlacedEvent or OrderPaidEvent nopCommerce events to create orders in Dynamics CRM.
You site performance won't be acceptable, you can replace Dynamics CRM calls with an MQ publishing, e.g. use RabbitMQ. Then you will have to create a service subscribed to the MQ and calling Dynamics CRM. Personally, I would try the option without MQ first.
I think you can implement both tasks (orders and products) inside single plugin. The plugin will create a task to sync orders, a task to sync products, e.g. get the products created since yesterday, and a button to sync all products from Dynamics into nopCommerce. In this case you will be able to use nopCommerce services to create products.
Make sure you have a created an ID which is shared between Dynamics CRM and nopCommerce. It will help you to choose between update or insert operation. the easiest key is SKU, I usually use it. You can also use GTIN, etc. If you have a lot of products, make sure you've created an index on dbo.Product's Sku columns.
Another option is to build a console tool or SSIS package to move product from Dynamics to nopCommerce, but it will take more time.