Who this is for
Operations manager or developer at a distributor whose supplier XML feed imports zero items, some items, or stops with an unhelpful message.
The import fails with a parse message after the supplier's latest file, or items with prefixed tags such as g:price are skipped, or product names contain stray markup.
The result
A named XML sample imports every well-formed item with namespaced fields, CDATA text and escaped characters stored as the agreed values. A deliberately broken copy is rejected as a whole with the line and column of its first error, and the previously stored products are unchanged.
What is included
- One existing importer path for one named supplier XML layout
- Reproduce the fault on a synthetic sample built from your redacted file, with up to six item-level cases (namespace prefix, CDATA, escaped ampersand, missing optional element, repeated element, empty element)
- Read the file with a real XML parser configured for the agreed layout, including its namespaces, and map the agreed fields
- Reject a file that is not well-formed with the first error's line and column, before any product is changed
- Refuse documents that declare entities or external resources unless your layout needs them, and add a regression test
You receive
- A change to the importer with its regression test
- A table of the synthetic items, the expected field values and the stored values
- The rejection message for the broken copy, written so you can send it to the supplier
- Steps to revert the change
What is not included
- Correcting the supplier's XML so that it becomes well-formed; we report exactly what the supplier must fix
- Designing a schema or XSD for the supplier
- Converting XML to another feed format for a different platform
- Tuning very large files beyond the agreed sample
- Outbound XML feeds you send to a shopping platform, which are a different job
What we need from you first
- A redacted XML sample with three to six items, including the item that goes wrong, as text
- The exact parse message, with any private path removed
- The importer's name and language. No real price lists, customer data, credentials or code in the first enquiry
Never send passwords, keys, customer records or confidential code in the first enquiry. Secure handover is agreed after scoping.
How we check it is done
- The synthetic well-formed sample imports every item, with the namespaced price, the CDATA description and the escaped ampersand each stored as the agreed value.
- A copy of the sample with one unescaped ampersand is rejected as a whole with the line and column of the first error, and the stored products are identical before and after the attempt.
- A synthetic file declaring an entity or an external resource is refused, or the entity is left unexpanded, as agreed, and nothing is fetched.
- The importer's existing tests still pass with the change applied.
You inspect the stored values, the rejection message and the test results, and sign off in writing. Payment follows sign-off; applying the change live stays with your maintainer.
When we would stop or decline
- The supplier file relies on a document type definition or external entities that the importer must resolve: we explain the risk and quote separately
- The only reproduction needs production data or credentials
- The feed is a stream or archive format that cannot be read from a file
Questions
Can you make a broken supplier file import anyway?
Not as part of this job. A file that is not well-formed cannot be read reliably, and repairing it by guesswork can store wrong products. We make the message precise so the supplier can fix it.
Does this change the products I already have?
No. This job changes how future files are read. Earlier imports are not touched.
Is this the same as the Merchant Center feed job?
No. This job reads a supplier's file coming in. The Merchant Center jobs concern the file you send to Google.
Price and terms
£295 · untested offer price. £295 after the agreed XML sample imports as specified, the broken copy is rejected as specified and you sign off. No payment before sign-off.
This is a new service with no published client results. The price is a starting point we have not yet tested with buyers. Nothing is ordered or charged by the enquiry. The full specification is on the Synthetic Industry catalogue.