channelAustin is now testing MERCI's import feature and looking to expand its capabilities. We have a large database of equipment and want to minimize the amount of manual data entry required. Some basic information about MERCI's import feature is located in the Open Media Project handbook in the section on Equipment.
Even better information is found in the merci_import.php file import/ directory in the merci module. It lists the fields needed for two CSV files: content_types.csv and items.csv And, this import process is explained in this screencast https://www.denveropenmedia.org/project/open-media-project/show/merci-sc...
The content_type.csv only handles some of the basic information under Merci settings. The Merci Inventory Master allows you to create additional fields for information that's needed in an inventory (serial number, model, manufacturer, etc.). The current import feature doesn't include importing that data. So the method we're exploring is this:
1) Use the existing import script to import new content types
2) Establish additional fields with Merci Inventory Master and sync those fields to the new content types
3) Use the existing import script to import items into those content types
3) Either write a new custom script (i.e. expanding upon the existing one) to import data into the additional fields in the database or use a node_save approach.
The node_save approach is this:
create an example merci content_type and node
export the content_type
export the example node
then write a php script to do the mapping and call node_save
The latter was a described method on the IRC chat #drupal-openmedia, and I admit that I don't completely understand it. We have someone on staff who has some SQL background so we're going to see how well we can proceed with this.

Comments
Customizing the merci_import.php
I think I found the easiest way to do this. Take a look at the function merci_import_2() in merci_import.php.
// Node data.
$item = new stdClass();
$item->type = $data[0];
$item->name = $user->name;
$item->uid = $user->uid;
$item->title = $data[1];
$item->body = $data[2];
$item->status = 1;
$item->promote = 0;
$item->sticky = 0;
// MERCI specific data.
$merci_settings = merci_load_content_type_settings($item->type);
$is_resource = $merci_settings->type_setting == 'resource' ? TRUE : FALSE;
$item->merci_default_availability = $data[3];
$item->merci_sub_type = MERCI_SUB_TYPE_ITEM;
// Only resources get per item accounting data.
$item->merci_late_fee_per_hour = $is_resource ? $data[4] : 0;
$item->merci_rate_per_hour = $is_resource ? $data[5] : 0;
$item->merci_fee_free_hours = $is_resource ? $data[6] : 0;
$item = node_submit($item);
node_save($item);
The $data[0] - $data[6] reference the columns of the .csv, but it doesn't have to stop at 6. Additional columns added to the .csv will be in the $data array. The structure for the node_save is already there. The only thing that would need to be changed is adding an example for formatting CCK fields to the item object. The the user could extend the example .csv and populate the CCK fields they've synchronized across multiple content types.
I haven't tested this approach, but this something an entry level developer should be able to do. I'm hoping one of the many tech savvy folks who tend to sit on sidelines waiting for someone else to "finish" these modules will step up and help Stefan implement and document this improvement to the import process.
Getting the values into the content types
The one problem I'm having with this is getting the correct line of code to get the values associated with the content types.
For example, there is a variable field_merci_model_value
I'm not sure what follows $item in order for the value from $data[x] to be placed into field_merci_model_value
is it something like this?
is it something like this?
$item->field_merci_model_value[0][value] = $data[7];
the correct answer is
item->field_merci_model[0]['value'] = $data[7];