Available for projects & agency overflow · Quick reply, from the person who does the work

Personalised products, printed textiles and marking: what has to be built

On a promotional products, printed textile or online print store, the catalogue holds no prices: it holds the elements used to work them out. That shift is what makes the field demanding, and it explains why personalisation and configurators are among the development requests merchants raise most often.

Describe my issue Send a message

The price is not read, it is computed

The amount depends on quantity, with tiered discounts; on the marking technique chosen — screen printing, embroidery, engraving, digital printing; on the number of colours; on how many positions are marked; and on fixed setup or screen charges spread across the quantity ordered. One reference can therefore produce hundreds of different prices, which rules out storing them one by one.

That calculation belongs on the server. A price built only in the browser can be tampered with: altering the values sent is enough to obtain an amount that never existed in the rate card. Client-side script should only display an estimate; the amount added to the basket, the one sent to payment and the one printed on the invoice must all be recomputed from the same rules, in the same place.

What a CMS does not provide

  • Artwork upload from the product page, with checks on format (vector or raster), resolution, colour mode and bleed.
  • Attaching the file to the order line rather than the customer account, and keeping it through the move from basket to order — that transition is where files are lost most often.
  • The proof: production only starts after approval. That needs a status waiting on agreement, a notification, an automatic reminder and a timestamped record of the approval.
  • Exclusion from the right of withdrawal for goods made to the consumer’s specifications or clearly personalised, under article L221-28 of the French consumer code, with the notice shown at the moment the customer confirms.
  • The stated lead time: it depends on technique and quantity, not on the product. It is derived from the workshop’s workload and working days, and displayed as a date.
  • The production file: an on-screen preview is not enough, the server has to generate the file actually used in production, at the right dimensions and with the right marks, attached to the job sheet.

Where the server gives way first

Customer files are large: vector artwork with outlined fonts, a high-resolution image meant for wide-format printing, sometimes several per order. PHP limits are reached very quickly, and the symptom on the customer side is always the same: an upload that appears to complete, then a blank page, or an order recorded without its file.

So the limits need raising, but their existence also has to be accepted: check the size before sending, split the upload when the file is heavy, and refuse explicitly rather than failing silently. A message stating what is wrong with the file saves an exchange of emails and an order stuck for two days.

php.ini
upload_max_filesize = 64M
post_max_size = 72M
max_file_uploads = 20
max_execution_time = 300
memory_limit = 256M

Same ground

Frequently asked questions

Can an off-the-shelf configurator be enough?
Sometimes, when personalisation stops at a line of text and a colour on a single position. Once quantity tiers, several positions, techniques with different rules and fixed charges enter the picture, generic modules hit their limit and the calculation has to be written for the workshop.
Where should the customer file be stored?
Outside the web root, under a name that cannot be guessed, referenced from the order line. Attaching it to the customer account causes trouble the moment one person orders twice with two different designs.
How is proof approval handled without external software?
With a dedicated order status waiting on agreement, an approval page reachable by link, an automatic reminder after a few days, and a record of the date and IP address of the approval. Production only starts when that status is passed.
Can a personalised item be returned?
Goods made to the consumer’s specifications or clearly personalised are excluded from the right of withdrawal under article L221-28 of the French consumer code. In practice the notice must appear at the confirmation step and the acceptance be stored with the order.
Why do uploads fail on large files?
Usually because a server limit was reached: maximum upload size, total request size, number of files or execution time. The browser shows nothing explicit; the server logs tell you which limit was crossed.
Is the preview shown to the customer enough to produce from?
No. The preview is a screen image, without real dimensions or trim marks. The production file is generated server-side from the same data, then attached to the job sheet so the workshop has nothing to rebuild.

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

type
existant
stack (facultatif)
utilisateurs (facultatif)
echeance (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.