node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »

cc-import-xml-writer

cc-import-xml-writer

ClassicCars.com module to write an xml file our importer can process.

Exposes a method that will take a string that is the path of the file to ouput and return a writable stream that expects a Listing object per write (data event) for processing to the output file.

Install

npm install cc-import-xml-writer

Usage

Direct writes...

var ccWriter = require('cc-import-xml-writer');
 
var output = ccWriter('output.xml');
...
  output.write({
    //required
    id: 1 //dealer stock number [string or number], must be unique to the account
    ,year: 1968
    ,make: 'Chevrolet'
    ,model: 'Camaro'
    ,price: 45000.00
 
    //suggested
    ,vin: '...' //[string]
    ,description: "..." // text/markdown, no html
    ,images: ["http://..../image1.jpg",...]
       // either an array of urls, or a string with a comma/white-space separated list
 
    //optional
    ,video: 'http://youtube.com/...' //url (only supporting youtube)
  });
...
output.end(); //finish outputting the file.

Piped from an input stream...

var fs = rquire('fs'),
    es = require('event-stream'),
    ccWriter = require('cc-import-xml-writer`)
    getListingFromData = require('./getListingFromData');
 
//create input stream
fs.createReadStream('input.txt')
    //convert input stream to expected structure
    .pipe(es.map(function processData(data,callback){
        //transform input to expected structure here
        callback(getListingFromData(data));
    })
    //ouput result to xml
    .pipe(ccWriter('ouput.xml'));

Listing object

A listing item requires the following properties: (required)

  • id - number or string - must be unique for the account
  • year - number - between 1880 - current+1)
  • It's recommended to limit listings to vehicles over 20 years old, of a classic/retro style, one-offs, and other exceptional listings
  • make - string - Manufacturer
  • model - string - Model
  • price - number - Required unless the account is for auctions

A listing item should have the following fields: (suggested)

  • images - string or array - url for full-size images
  • for strings, should be comma/white-space separated list of urls
  • for arrays, should be a list of urls
  • description - string - the description for the listing
  • Should be plain text or markdown
  • Most HTML will be stripped out from the importer
  • vin - string - vin may be required for advanced features

A listing item may have the following fields: (optional)

  • video - YouTube URL to the video for the specific vehicle

A listing item may have the following fields: (deprecated)

  • exterior - string - color (deprecated)
  • interior - string - color (deprecated)
  • transmission - string - 'a' or 'm' (deprecated)
  • milage - number - miles on the vehicle