Bringing photo prints to Piwigo with Familink

I recently worked on a small but surprisingly useful project: adding a print ordering workflow directly inside Piwigo.

The idea was simple. I already use Piwigo as a private photo gallery, but sharing digital images is not always enough. Sometimes you just want to send real prints. Instead of exporting photos manually and using a third-party service, I wanted a seamless, integrated experience.

The idea

The goal was to turn Piwigo into a lightweight print shop:

  • Browse photos as usual

  • Select images directly from the gallery

  • Add them to a cart

  • Choose formats and quantities

  • Enter a delivery address

  • Send everything for printing

No exports, no uploads elsewhere, no friction.

Why Familink?

I chose Familink as the backend service because it provides a simple API to send printed photos by mail. Moreover, it's based in France ๐Ÿ˜Š.

How it works

The plugin is built around a straightforward architecture:

  • A Piwigo plugin layer that handles the UI (cart, buttons, checkout)

  • A secure bridge that exposes images through temporary URLs

  • A server-side order handler that sends everything to the Familink API

This approach keeps the system simple while ensuring that private images remain protected.

Key features

  • Add photos to a cart directly from the gallery

  • Select print formats (10x15, 15x20)

  • Adjust quantities in a dedicated cart page

  • Fill a minimal shipping form

  • Send orders via API (sandbox or production)

  • Empty the cart or update it dynamically

The plugin integrates into the existing Piwigo interface, so it feels like a natural extension rather than a separate tool.

Development notes

This project was also an opportunity to experiment with a different workflow:
it was developed with the help of ChatGPT, used as a coding assistant for architecture, debugging, and iterative improvements.

This made it possible to move quickly, especially when dealing with:

  • Piwigo plugin structure

  • API integration

  • UI/UX adjustments

  • Debugging edge cases

Whatโ€™s next?

There are several directions for future improvements:

  • Support for photo albums

  • More print formats and options

  • Order history

  • UI refinements

But even in its current state, the plugin already covers the core use case.

Source code

The project is available on GitHub:

๐Ÿ‘‰ https://github.com/silaxe/piwigo-familink

Feel free to explore, use, or adapt it to your own setup. And, of course, any improvement to the code, which I mostly produced using ChatGPT, is more than welcome!