Engineering
Why We Built Catalogue Import for a Pharma Procurement Platform
We built Catalogue Import to solve a simple but expensive problem: suppliers and pharmacies were manually creating and updating products from supplier catalogues. The system now processes PDF and image catalogues using OCR and AI, updates existing products, and creates new ones.

Why We Built Catalogue Import for a Pharma Procurement Platform
Some features start with a product roadmap.
Others start with someone doing the same boring task for the hundredth time.
Catalogue Import was the second kind.
While building our pharma procurement B2B SaaS platform, we noticed a recurring problem with how suppliers and pharmacies were maintaining their product catalogues.
The problem wasn't finding products.
The problem was keeping product data up to date.
The manual catalogue problem
A supplier might have hundreds or thousands of products.
Each product has information that can change regularly:
- Product name
- Price
- Availability
- Offers
- Discounts
- Catalogue-specific pricing
- Other commercial information
Without an import system, these changes have to be handled manually.
Create a product.
Enter its information.
Update the price.
Add an offer.
Repeat for the next product.
Now imagine receiving an updated catalogue from a supplier.
The catalogue might arrive as a PDF, a scanned document, or even an image.
The information is already there.
But someone still has to manually transfer it into the system.
That is where the real operational cost appears.
The problem isn't one product taking five minutes.
It's thousands of products requiring repeated attention every time the catalogue changes.
We didn't want another CSV uploader
Our first instinct could have been to build a standard import tool.
Upload a CSV.
Map the columns.
Import the products.
That solves part of the problem, but it still assumes that someone has already converted the supplier's catalogue into a structured spreadsheet.
In the real world, that's not always how catalogues arrive.
Suppliers already have their catalogues in formats they use for their own operations.
Usually, that means documents and images.
So we approached the problem differently.
What if the supplier could simply give us the catalogue they already have?
That became the foundation of Catalogue Import.
Upload the catalogue you already have
The supplier can upload a catalogue as a PDF or image.
Instead of requiring them to manually prepare structured data first, the platform processes the catalogue.
The first step is OCR.
We extract the text and information available inside the document.
But OCR alone isn't enough.
A catalogue isn't necessarily a clean database table.
It can contain product names, codes, prices, discounts, quantities, sections, formatting and other information arranged for humans to read rather than machines to consume.
So we added AI-assisted extraction on top of the OCR layer.
The system interprets the extracted information and attempts to turn it into structured product data.
The objective isn't simply to "read the PDF."
The objective is to turn an unstructured catalogue into something the application can actually work with.
The important part: existing products
Creating new products is only half of the problem.
The more important challenge is what happens when a product already exists.
Suppose a supplier already has 2,000 products in the system.
They upload a new catalogue next month.
We don't want the system to create another 2,000 products.
That would make the catalogue worse instead of better.
The importer therefore needs to identify existing products and distinguish them from genuinely new products.
When an existing product is identified, the system can update the relevant catalogue information rather than creating a duplicate.
For example:
Existing Product
↓
New Catalogue
↓
Product Matching
↓
Update Price
Update Offers
Update Catalogue Data
For a product that doesn't exist yet:
New Catalogue Product
↓
Extract Information
↓
Validate Data
↓
Create Product
That distinction is what turns a basic file uploader into an actual catalogue management system.
Why this matters for suppliers
For suppliers, the benefit is mostly about reducing repetitive work.
Their catalogue already exists.
Their pricing information already exists.
Their offers already exist.
The import system lets them reuse that information instead of manually entering it again.
This becomes particularly valuable when catalogues change frequently.
A supplier shouldn't have to spend hours updating product records simply because a new catalogue was published.
And pharmacies benefit too
The same problem exists on the pharmacy side.
Pharmacies may work with multiple suppliers, each with their own catalogues and pricing.
Keeping that information current manually creates another layer of operational work.
A catalogue import workflow gives them a much easier way to bring supplier information into the platform and keep it updated.
That means the benefit isn't just fewer clicks.
It's reducing one of those background tasks that quietly consumes operational time every week.
There is still a human in the loop
One thing we were careful about was not treating AI extraction as magic.
Documents can be inconsistent.
Images can be low quality.
Prices can be formatted differently.
Product names can be ambiguous.
So the goal isn't to blindly trust whatever the model extracts.
The system should provide a structured workflow where extracted information can be reviewed and validated before it becomes part of the catalogue.
AI handles the tedious interpretation.
The application handles the rules and data processing.
The user remains in control of the final catalogue.
That distinction matters when dealing with commercial data.
The bigger lesson
Catalogue Import looks like a feature.
But the actual problem we were solving was much bigger:
How do you keep a large product catalogue maintained without making someone manually maintain every product?
That changed how we thought about the feature.
We weren't trying to build another import button.
We were trying to remove an operational bottleneck.
The supplier already has the information.
The pharmacy already needs the information.
The catalogue already exists.
The missing piece was a system that could move that information into the platform without requiring someone to retype it.
That's what Catalogue Import is designed to do.
And this is one of the features we consider sustainable because the value doesn't depend on a one-time setup.
Every time a supplier publishes a new catalogue, the same workflow can be used again.
Upload the catalogue. Extract the information. Match existing products. Update what changed. Create what's new.
Less manual maintenance.
Less repetitive data entry.
And a catalogue that is much easier to keep current.
Frequently asked questions
Quick answers to common questions about this topic.
Related articles
Continue exploring systems, architecture, and automation topics.