I know that one can apply a regular expression based validator to data
fields such as the postcode e.g. the email field has one. However,
that's fairly static versus what you are proposing which is a
parameterised criteria.
The Criteria class implementation is very straightforward to modify,
but I think that your problem is that a criteria is intended to choose
a set of metadata for the order based on a set of rules, so the
Criteria class takes as input the order details and outputs things
like postage costs. I can't see how it could interface with the UI in
order to say that some postcode is incorrect you see. It could however
convert a postcode into an address.
Given your thing is a theme, perhaps you ought to override the data
field declaration with a regular expression validator for your
particular country? That does give UI feedback, but of course
restricts sales to just one country.
It's an interesting problem, and I'm not at all familiar enough with
Easyshop to say for sure.
BTW I intend to start a port of Easyshop to Plone 4 in the next few
days. I'll have it on a separate branch though.
HTH,
Niall