Skip to content
Back to the letter

Relard Digital Solutions

Enclosure to the letter from Sebastian Relard

Enclosure 1

Orders from the inbox, straight into the shop’s format

For a paint manufacturer, via a Düsseldorf agency · in operation since 2025

Retailers send their order as an Excel, CSV or PDF file to a fixed address. A few minutes later they get back a finished import file for the online shop, with a note on every line that couldn’t be matched.

The task

The manufacturer’s online shop imports orders as a file with two columns: item number and quantity. Retailers, though, order the way they are used to: as an Excel list with its own layout, as a CSV with their own item numbers, or as a PDF, some of them in Polish, English or Vietnamese.

What was needed was a way to turn each of these orders into a file the shop can import directly, without anyone retyping it.

An example

How it works

  1. The retailer emails their order to a fixed address, as they always have.
  2. Every minute the program collects new emails. It recognises the format from the sender; for emails from within the company, a code in the subject line decides.
  3. It reads the lines from the file, matches each item number to the shop’s number and converts packs into single units where a format requires it.
  4. The finished import file goes back to the sender as a reply. Lines without a matching item number are listed as a note in the email.

When something doesn’t fit

If a file arrives in a format that hasn’t been set up, or from an unknown address, the sender gets an error email that explains the problem. I set up a new order format once; after that it runs like the others.

Status and limits

In operation
Since 2025, with seven order formats set up.
No AI
The conversion follows fixed rules. There are no running AI costs, and every result can be traced.
Limit
The program stops at the import file. It does not enter anything into the shop itself.
Monitoring
Since September 2026 a protected statistics page has shown how it is running. An alert for faults, an external check and a daily report are in place; they have not yet been tested in operation.
My role
Programmed and maintained by me, on behalf of a Düsseldorf agency.
Technical details

Python 3.12 with pandas, openpyxl and pdfplumber. The item number mapping is stored in MySQL. The program fetches and sends email over IMAP and SMTP; it runs as a cron job at Mittwald.

165 automated tests, file locks and atomically written state files.

  • Python
  • pandas
  • openpyxl
  • pdfplumber
  • MySQL
  • IMAP/SMTP
  • pytest

Is there a similar step in your own work? Then let’s talk about it for 30 minutes, free and without obligation.

Book a call Choose a free slot yourself in Microsoft Bookings.
Prefer to write? kontakt@post.relard.dev