XML Import
Upload product, category, customer, and order data to your store via an HTTP request. The XML import interface processes the data on the server side and returns a structured response in JSON format, including a summary of results and error messages.
Available Imports
Products
Import and update product data, including descriptions, prices, images, and attributes.
Documentation →Inventory & Status
Quick updates to inventory levels and product status—optimized for frequent updates with minimal data volume.
Documentation →Categories
Import of category structures, including hierarchy, descriptions, and SEO data.
Documentation →Update Orders
Update order status, tracking numbers, and shipping information for existing orders.
Documentation →Customers
Importing customer data, including addresses, customer groups, newsletter subscriptions, and external customer numbers.
Documentation →Features
Batch Processing
Process multiple records in a single request—ideal for bulk imports and regular updates.
JSON Response
Structured processing response with status per data record—machine-readable for seamless integration.
Validation
Automatic validation of all submitted data with detailed error messages for invalid entries.
API Keys
Access via configurable API keys with individual permissions for secure data transmission.
HTTPS Encryption
All data is transmitted in encrypted form—ensuring secure communication between the store and external systems.
Error Handling
Detailed error messages for invalid data enable quick diagnosis and correction.
Responses and Error Cases
Each import returns a JSON object. Starting with xoPort API 2.115.0 (Shop 4.9.65), it also includes:
outcome:ok(no files rejected),partial(individual files rejected, the rest processed), orfailed(files rejected, none processed)files.failed: Rejected files with count, filenames, error message including line number, and storage locationwarnings.invalid_xml_chars_removed: Number of removed characters not permitted by XML 1.0
Characters prohibited by XML 1.0 (e.g., control characters in descriptive text) are removed by the import process before the file is processed. If a file still cannot be read as XML, it is not archived but moved to xoport/xml/import/error/ and deleted there along with the archive after the retention period (default 14 days). Rejected files are not available at files.processed.filenames.
"state": "error" and HTTP 422. Individual rejected files do not change the HTTP status—check outcome or files.failed.count for this. "state": "success" alone does not confirm a successful import.