Plastic Emoji

Emoji – plastic

Plastic Emoji

Six years ago, I wrote a blog entry about a clock implemented using emoji-characters, at that time, they were a pretty obscure feature of Unicode, a compatibility element to support the Japanese market. Recently, Coop – one of the biggest retail chains in Switzerland – started giving plastic emoji with a suction cup support as customer gifts.

On this picture, you can see rocket (🚀), alien face (👽), smiling face with hearts shaped eyes (😍), grimacing face (😬) thumb up sign (👍). In six years, theses symbol went from typographic oddity of the Japanese market to being the main subject of a marketing campaign for a Swiss supermarket.

To quote the internet, I’m not even mad, that’s amazing

Flattr this!

Coop@home

coop@home

Même si je travaille dans le domaine de la vente en ligne, je n’avais jamais pensé à faire mes courses par le web. L’inauguration d’un point de dépôt à mon travail à changé cela. En gros, je peux commander mon épicerie en ligne le matin, et elle est livrée le jour même dans une pièce réservée à cet effet non loin de la réception.

J’ai donc fait une première commande, et tout s’est passé sans encombres: le soir, avant de rentrer, j’ai transféré les courses dans les fontes de mon vélo. C’est d’autant plus pratique que le soir j’ai soit l’aïkidō, soit je finis après la fermeture des magasins. Cette fois-ci je n’ai aucune denrée périssables, ce sera pour la prochaine commande.

La commande peut se faire via le web, mais Coop offre aussi une application pour iOS qui n’est pas trop buggée, j’aime bien le fait de pouvoir scanner le code barre d’un produit pour le mettre dans la commande, très utile pour remplacer les produits d’usage courant.

Bref une première expérience concluante, qui me permettra – j’espère – de simplifier mes courses.

Flattr this!

Le retour des codes barres de la Coop

Ticket de caisse de la Coop 
Vielen Dank für Ihren Einkauf 
990006007940903130003960
09:03:13 13:52 00794 00361704 006 0001910

Les rayons à la pesée ne sont pas le seule endroit où la Coop émet ses propres codes barres, il y en a aussi un sur le ticket de caisse, si on le regarde de plus près, on peut remarquer les choses suivantes :

  • Il est plus long que le code sur les produits
  • Il commence toujours pas le nombre 99

Code-barre 990006007940903130003960Le nombre est représenté grâce au système Interleaved 2 of 5, c’est un encodage différent de celui utilisé pour les codes barre sur les articles (EAN/GTIN). Le nombre représenté par le code suit le format GS1-128, mais n’utilise pas l’encodage GS-128, tout est simple. GS1-128 permet d’utiliser des codes barres pour des applications plus complexes que la simple identification de produits, il permet aussi de joindre les codes ensembles, un code barre peut ainsi contenir le numéro EAN, la date d’expiration, le numéro de lot, etc. Chaque code commence par une sorte d’indicatif, qui explique quel genre de code (quelle application en terme GS1) suit.

En l’occurence le code commence par la séquence 99, qui en parler GS1 signifie, je fais ce que je veux m’enfin !, chaque utilisateur est libre de mettre les données qu’il veut dans un code commençant par 99, naturellement de tels codes ne fonctionnent qu’auprès d’une seule entité, ici un ticket de la Coop ne sera compris que par la Coop.

990006007940903130003960

De manière fort classique, le code est découpé en sections de longueur fixe, cette fois-ci il n’y a pas de nombre de vérification à la fin, ce qui est probablement raisonnable, ces codes ne seront probablement jamais recopiés à la main. Les 4 chiffres suivants indiquent le numéro de caisse. Je comprends assez bien qu’on veuille garder cette information pour régler les questions de service-client, mais avec 4 chiffres, ils ont vu large. Les cinq chiffres suivants semblent former le numéro de transaction, vu les faibles valeur que je vois sur mes tickets, ce nombre est probablement relatif à la caisse et au jour.

Les 6 chiffres suivants sont faciles à interpréter : il s’agit de la date au format DDMMYY, i.e. deux chiffres pour le jour dans le mois, deux chiffres pour le mois, et deux chiffres pour l’année. On regrettera le fait que la date n’est pas au format ISO 8601, mais bon. Enfin les sept chiffres suivants sont le montant de la transaction en centimes, on appréciera le fait qu’il est donc impossible de faire des emplettes pour plus de CHF 99999.95 à la Coop.

Si ce qui se trouve dans le code barre est intéressant, j’ai surtout trouvé intéressant ce qui ne s’y trouve pas : le numéro de succursale. Il se trouve sur le ticket, sous le code barre, en dernière position. On peut se convaincre que la succursale de Wollishofen est la numéro 1910, en regardant les urls utilisée sur le site web de la Coop : la page d’information avec le paramètre betrnr 1910 affiche la succursale de Wollishofen, et avec le code 2194 celle de la Cour de Sainte Anne. Il serait donc techniquement possible que deux tickets émis dans des magasins différents aient le même code, même si c’est très improbable. Il est aussi possible que le numéro de transaction soit émis de manière à empêcher une telle ambiguité.

Flattr this!

Coop – Code Bare pour des Champignons Shitake

Les codes barres de la Coop

Coop – Code Bare pour des Champignons Shitake

Les codes barres sont une de ces choses omniprésente qu’on ignore facilement : on passe à la caisse, la caissière passe le code devant la laser, ça fait bip et le prix est sur le ticket. Sur la majorité des codes barres, le prix n’est pas encodé dans le code, le code est simplement l’identificateur du produit, assigné par le fabricant. Si un produit est présent dans deux magasins, on peut très bien le sortir du magasin A et le mettre dans le magasin B, et le prix sera toujours celui du magasin B.

Une exception à cette règle sont les codes barres à la pesée, clairement ma sélection de champignons shitake de 44 grammes ne se trouve pas dans la base de donnée du magasin. Les informations sont donc codées dans le code barre. En dessous du code barre se trouve sa représentation numérique :

0540226001752

Si on regarde les chiffre de plus près, on peut remarquer certaines choses.

  • Le code comporte 13 chiffres
  • Le prix en centimes est représenté sur les chiffres 8 à 12.
  • Le code commence toujours par les chiffres 02 ou 05.

Le préfixe 02 désigne des codes à usage restreint, c’est à dire qu’ils n’ont de signification que dans le magasin qui les a émis. Ils sont typiquement utilisé pour les produits en quantités variables, pesé au magasin, exactement comme mes champignons. Ces codes barres n’auront pas de sens, ou un sens différent dans un autre magasin. Le préfixe 05 est techniquement réservé pour les coupons de rabais. Leur utilisation pour un produit à la pesée est techniquement une violation de la spécification. Je suppose que la Coop n’accepte pas de coupons avec le préfixes 05, sinon elle va au devant de bricoles techniques.

Le dernier nombre est le check digit, il est calculé en prenant les chiffres depuis l’avant dernier et en les multipliant alternativement par 3 et par 1. Pour le code 0540226001752, il se calcule de la manière suivante: 5 × 3 + 7 + 1 × 3 + 0 × 1 + 0 × 3 + 6 × 1 + 2 × 3 + 2 × 1 + 0 × 3 + 4 × 1 + 5 × 3 = 108. On garde le dernier chiffre de 108 → 8, et ont fait le complément à 10, i.e. 10 – 8 = 2. Ce qui correspond bien au dernier chiffre.

Les quatre premier nombres semblent indiquer le type de produit, et les trois suivants le produit exact. J’ai pour l’instant relevé la structure suivante :

  • 0540 – fruits & légumes à la pesée.
  • 0580 – fromages, viande pré-découpée (poulet).
  • 0220 – viande
  • 0210 – produit pré-emballés: charcuterie, légumes en barquette, etc.

À noter que pour les fruits & légumes le code du produit ne correspond pas au numéro sur la balance. Les bananes sont au n°1 sur la balance, mais leur code est 313.

Ce qui est un peu bizarre, c’est que le code de la carte Supercard commence par un 2, et se trouve ainsi dans une autre zone réservée aux produits à la pesée (à noter que la carte Cumulus de la Migros aussi).

Flattr this!