-- Python 2.7 - Desired CPython or Jython (due to improved thread support)
-- Process must handle input files of an average of 50 thousand lines
-- Output file must be validated against XSD as part of the process
-- Process must manage logs to report problematic lines as well as generate CSV files with those lines
-- Mapping between CSV columns and XML elements must be configurable
Description of problem:
The project consists of processing an input file (CSV format with variable columns) and transform it into an output file (XML following a specific XSD). More specifically, the problem is transforming a feed of products (CSV file) into Demandware's custom XML catalog format, while providing flexibility in the mapping of columns from the CSV into elements in the XML.
Background:
The input files contains records for products which need to be imported into the Demandware platform. Each record of the CSV represents a product, which can be simple or variant.
Simple products are individual/independent products, while variant products are instances of a model (e.g. a Blue (color), Medium (waist) t-shirt)
++ Individual products are represented as "complete" <product> elements in the output XML, including child elements such as <images> or <custom-attributes>.
++ Variant products are represented in the CSV as records sharing the "item_group_id" column and are converted to the following in the XML:
-- One <product> element that specifies the attributes that define the "model", including child elements such as <images> and <variations>
E.g. <variation-attribute attribute-id="color"> or <variation-attribute attribute-id="size">
-- "partial" <product> elements in the output XML, including the <custom-attribute> values for each instance
E.g. <custom-attribute attribute-id="color">GREENLEAF</custom-attribute> or <custom-attribute attribute-id="size">XS</custom-attribute>
Attached are the files needed for the above examples and XSD.
Hi. I am an experienced Python programmer. I am interested in working on your project and can deliver it in 2 days. Please contact me to discuss more details. Thanks.
C/C++/Java/Python software engineer with 4 years hands-on experience in: system software, client/server applications and compilers.
Proficient English speaker.