Case description:
I have one centralized 'Asset management' Drupal website "A" (something like a simple ERP site) which manages the administration of purchased Assets, being ECK entities. The assets are unique, no stock management required.
I also have a Drupal webshop "B" using the Drupal Commerce modules, which has Commerce Product entities.
Goal:
The assets and products need to be two-way synchronized between the two sites, in such a way that:
- New Assets in site A will create new Products in site B.
- Some fields (title, price, status) will need to be two-way syncronized (so that when a product is sold, the Asset status field will be changed)
Requirements
Preferably without custom coding, but using existing Drupal modules in combination with Rules to allow flexibility in configuration.
Question:
- What would be a good approach in this case? Preferably without custom coding.
My current investigations:
There are multiple ways to construct a non-coding contributed module combination to get the result needed. My preference is a lightweight but configurable solution using Rules. I checked out these modules:
- Services module: Without other modules this requires custom coding to import and sync entities. Most services-based modules are dependent on it.
- Web Service Data module, This module allows you to bypass the default data storage location for fields and entities and instead load the data from a web service. Does not import or sync. Probably not suitable because the entities are not identical (assets and products)
- Remote Entity Api module but this might not be the most efficient way because that module creates local copies of the remote entities. This means that in site B there would exist also the same amount of asset entities as in site A, which are synchronized with the Product entities.
- Feeds module allows one-way import and sync, could be two-way but probably complex.
- The Migrate module: large framework, is a developer's tool, must have php skills.
- Services Client module the UUID needs to be inserted per entity? Not for many entities.
- Service Rules module creates endpoint for Rules Components. Requires a services client module. Might be of use (optional, see below)
[UPDATE MAY 30 2016]
According to my research the following modules combined, will likely be the most lightweight and configurable solution. I take into account that this case is not so much about migration of data, but about creating and updating using rules triggers and actions (as per the requirements).
- Web Service Client module is made to consume services without custom coding. It integrates with Rules to perform the required actions.
- Web Service Client for Feeds integrates the Web Servcice Client module with Feeds, which allows for a cron-based import of created or changed entities.
- Sevices Views module: in order to create a view of the assets fields that need to be created or updated.
TO DO: The suggested approach mentioned above needs to be tested in order to prove that it works. I still don't quite understand how to configure the Web Service Client module configuration of the 'REST service descriptions'. Probably because I am a newbie to services. In order to figure that out, I posted a question about it. I will add screenshots to that where needed.
For those answering this BONUS question: The answers have been rather broad up to now. Using the abovementioned update (may 30) please provide specific support for the solution suggested by me using the Web Service Client module configuration. This allows me to choose who gets the bonus. You may answer in the connected question in order to keep the answers on topic per question. I have also created two test sites with the modules installed and can provide admin login details if you want to test it out, or help me out with the configuration.