Skip to content
INGER
SK Contact
Notes · Engineering log

Notes

Field notes from production work — the landmines, the decisions, the trade-offs. Written for engineers, not for marketing.

PrestaShop 9's getImageLink() — the 404 that looks like a working image

PrestaShop · 1 July 2026

PrestaShop 9 quietly rewrote Link::getImageLink($name, $idImage, $type = null). The first thing it now does is check whether the image id contains the substring default — its way of detecting placeholder images — and if it does, it builds a flat /img/p/<id>.jpg path with no digit-folder split.

The old PrestaShop 1.7 / 8 pattern jammed the type into the id argument: getImageLink($rewrite, $id . '-small_default'). Under PS9 that string contains default, so the core treats a real product image as a placeholder and emits /img/p/1054-small_default.jpg — a flat path that 404s — instead of /img/p/1/0/5/4/1054-small_default.jpg. The symptom is nasty: a broken <img> with a non-empty src, so it doesn't fall back to a placeholder, it just fails to load. The fix is to pass the type in the third argument and keep the id numeric: getImageLink($rewrite, $imageId, 'small_default'). PS8 never had this behaviour, so it's exactly the kind of regression a migration surfaces on day two.

A micro-entity can still fall under NIS2 — through the supply chain

Compliance · 20 June 2026

The first instinct on NIS2 is to check the size-cap rule in Article 2 and, if you're below the threshold, move on. For a two-person studio that lands on "out of scope" — and for direct obligations, that's correct. But that's only half the map.

The other half is Article 21(2)(d): supply-chain security. When you engineer and operate systems for clients who are in NIS2 scope, their obligation to secure their supply chain reaches you. You don't become a regulated entity, but you inherit contractual security requirements you have to be able to evidence — access control, incident notification timelines, patching discipline. We documented our own binding determination (direct scope: none; indirect scope: yes, via supply chain) publicly on our trust page rather than hand-waving it, because procurement teams at regulated clients ask for exactly this, and "we're too small for NIS2" is the wrong answer.

Legal-grade RAG: retrieval you can cite

Applied AI · 15 June 2026

Most RAG systems optimise for a plausible answer. For legal and compliance work, plausible is worthless — you need an answer that resolves to a specific provision, in the version that was in force on a specific date, and that you can hand to a lawyer to verify. That is a different engineering problem.

Three things separate citation-grade retrieval from a chatbot over PDFs. First, chunks carry structural breadcrumbs (act → paragraph → point) so an answer cites § 289(2), not "somewhere in this document." Second, provisions are versioned in time: the same paragraph has different text on different effective dates, and a citator flags whether the act is in force, amended, or repealed before anything relies on it. Third, a verification pass checks every citation the model produced against the source corpus — an ungrounded citation is dropped, not shipped. Hybrid retrieval (vector + full-text + rerank) does the recall; the provenance layer is what makes the output auditable. It's the same infrastructure that powers our NIS2 tooling and our legal-AI work for law firms.

Working on something where these trade-offs matter? Start a conversation →

INGER INGER technologies
Home Contact Notes Trust & security For procurement Privacy SK
© 2026 Inger s.r.o.