Skip to content
Back to Site

Prepare XML Source Data Files

Prepare Product data for the XML Source Platform using the required products.xml filename, product/item hierarchy, and 43-field record structure.

When XML is selected as the Source Platform, Next-Cart reads Product data from products.xml through File Upload. This Source option is handled through Custom Service. The included XML file workflow migrates Products only unless additional entity handling has been explicitly approved and developed for the project.

Keep the XML declaration, root element, record wrapper, element names, and element order defined below. Change the values inside the Product elements without changing the structure that Next-Cart uses to recognize records.

The XML structure below covers Products. Additional XML structures do not add Customers, Orders, or other entity types unless that handling has been explicitly included in the approved Custom Service scope and developed for the migration.

If the project requires additional entity types, non-standard fields, relationship reconstruction, or other custom logic, define those requirements before execution. Use Prepare Custom Service Requirements to document the additional work.

Use the XML Product sample as the starting structure. Replace all sample records with your own Product data, preserve the structure below, and save the upload as products.xml.

RequirementRequired format
Source PlatformXML
Migration ServiceCustom Service
Included file scopeProducts
Connection methodFile Upload
Filenameproducts.xml
Encoding declaration<?xml version="1.0" encoding="UTF-8"?>
Root element<product>
Product recordOne <item> element per Product or Product variant
Fields per record43, in the required order

Use this hierarchy for every file:

<?xml version="1.0" encoding="UTF-8"?>
<product>
<item>
<product_id></product_id>
<sku></sku>
<price></price>
<status></status>
<weight></weight>
<length></length>
<width></width>
<height></height>
<manage_stock></manage_stock>
<qty></qty>
<name></name>
<description></description>
<short_description></short_description>
<barcode></barcode>
<manufacturer></manufacturer>
<categories></categories>
<images></images>
<option_name_1></option_name_1>
<option_value_1></option_value_1>
<option_name_2></option_name_2>
<option_value_2></option_value_2>
<option_name_3></option_name_3>
<option_value_3></option_value_3>
<attribute_name_1></attribute_name_1>
<attribute_value_1></attribute_value_1>
<attribute_name_2></attribute_name_2>
<attribute_value_2></attribute_value_2>
<attribute_name_3></attribute_name_3>
<attribute_value_3></attribute_value_3>
<attribute_name_4></attribute_name_4>
<attribute_value_4></attribute_value_4>
<attribute_name_5></attribute_name_5>
<attribute_value_5></attribute_value_5>
<attribute_name_6></attribute_name_6>
<attribute_value_6></attribute_value_6>
<attribute_name_7></attribute_name_7>
<attribute_value_7></attribute_value_7>
<attribute_name_8></attribute_name_8>
<attribute_value_8></attribute_value_8>
<attribute_name_9></attribute_name_9>
<attribute_value_9></attribute_value_9>
<created_at></created_at>
<updated_at></updated_at>
</item>
</product>

Repeat the complete <item>...</item> block for each additional Product or Product variant. Do not rename, remove, add, or reorder the Product field elements. When a field has no value, keep the element and leave it empty.

Field groupFields
Product identity, pricing, status, dimensions, stock, and contentproduct_id, sku, price, status, weight, length, width, height, manage_stock, qty, name, description, short_description, barcode, manufacturer, categories, images
Product optionsoption_name_1, option_value_1, option_name_2, option_value_2, option_name_3, option_value_3
Product attributesattribute_name_1 through attribute_name_9, paired with attribute_value_1 through attribute_value_9
Timestampscreated_at, updated_at
  • Use one <item> for each Product or Product-variant record.
  • Variants of the same Product can use the same <product_id> with different <sku> and option values.
  • Keep option and attribute name/value elements aligned by their numeric suffix.
  • Leave unused fields as empty elements instead of removing them.
  • In <categories>, separate multiple category entries with commas and use > for hierarchy where needed.
  • In <images>, separate multiple image URLs with commas.
  • Escape XML-reserved characters inside values so the document remains well formed, for example &amp; for & and &gt; for > where escaping is required.
  • Use numeric 0 or 1 values for <status> and <manage_stock> rather than text labels.
  • Use YYYY-MM-DD HH:MM:SS for <created_at> and <updated_at> when timestamps are provided.
  1. Create or open products.xml with the UTF-8 XML declaration.
  2. Keep <product> as the single root element.
  3. Use one complete <item> block for each Product or Product variant.
  4. Keep all 43 field elements inside every <item> in the required order.
  5. Replace element values with the Product data that should be migrated and keep unused elements empty.
  6. Escape XML-reserved characters in values and save the file as UTF-8 XML with the filename products.xml.
  7. Validate that the XML is well formed and that every <item> contains the complete field structure before upload.
CheckPass condition
Filenameproducts.xml
DeclarationThe file begins with <?xml version="1.0" encoding="UTF-8"?>.
RootOne <product> root contains all Product records.
Record wrapperEach Product or variant uses one <item>.
FieldsEvery <item> contains all 43 fields in the required order.
Empty valuesUnused fields remain as empty elements.
XML syntaxReserved characters are escaped and the document is well formed.
Options and attributesEach numbered name/value pair remains aligned.
TimestampsSupplied timestamps use YYYY-MM-DD HH:MM:SS.

XML does not require a Source Store URL. For a paid migration, the Target URL therefore locks when the Target setup provides one, Connect Stores is saved, and the migration advances to Configuration. Later migration activity can use another valid products.xml file, including one prepared from a different originating store, but it cannot replace a locked Target Store.

See Store URL Locking and Store Identity for the complete rule.

A 0/0 Product result means Next-Cart did not recognize Product records from the uploaded XML structure.

Check the filename, XML declaration, <product> root, repeated <item> blocks, element names, element order, and empty-element preservation. Correct the file and upload it again. If all structural checks pass but Product progress remains 0/0, use Troubleshoot Connection Setup and provide the filename, a privacy-safe example <item> block, and the migration result.

File Upload is migration input, not recurring synchronization

Section titled “File Upload is migration input, not recurring synchronization”

Selecting XML provides a file-based Source for a migration. It does not create a recurring synchronization feed between the file and the Target Store. The included standard XML workflow recognizes Products from products.xml when the required Next-Cart structure is used.

If the project needs scheduled imports, repeated external-feed processing, Customers, Orders, another data type, non-standard relationships, or business logic beyond the standard Product XML structure, define that requirement through Custom Service.

Continue with Upload Source Data Files to prepare and validate the file for the Source connection.