Difference between revisions of "Project:Product versions and history"

From Open Food Facts wiki
Jump to navigation Jump to search
(Problems to address, start of solution)
 
Line 21: Line 21:
 
** includes product packs that contain several instances of a product
 
** includes product packs that contain several instances of a product
 
* Multilingual products - addressed by [[Project:Multilingual products]]
 
* Multilingual products - addressed by [[Project:Multilingual products]]
 +
* Adding the ability for the upload script to set an obsolete version (for the supermarket Dada pictures from the 1990s)
  
 
== Current status ==
 
== Current status ==

Revision as of 09:22, 22 September 2015

Product versions and history

This page is to discuss how to handle products that have different versions and/or that evolve over time.

Problems addressed

  • Products with the same barcode that have different packaging and labels
    • Completely different products
      • Same barcode used by different products (e.g. conflicts with "internal" barcodes)
    • Products that have different versions being distributed simultaneously
      • Different versions for different markets
        • With or without product variations (packaging, ingredients, nutrition facts etc.)
      • Different flavors of the same product
      • Different marketing on the labels
    • Products that evolve over time
      • Versions can coexist for a while, but previous versions rapidly disappear

Problems not addressed

  • Products that are the same product, or versions of another product but that have different barcodes
    • includes product packs that contain several instances of a product
  • Multilingual products - addressed by Project:Multilingual products
  • Adding the ability for the upload script to set an obsolete version (for the supermarket Dada pictures from the 1990s)

Current status

  • We use the barcodes as product identifiers in the database
  • For each barcode, only one product version exists in the database
    • In practice, there are some barcodes for which we have pictures corresponding to different products, different versions, or different evolutions.
  • We store revisions of the product pages. Those revisions were intended for revisions of the product page itself (e.g. adding more data or fixing data corresponding to one set of product pictures), not for different versions or evolutions of the products.
    • In practice, revisions mix different versions, evolutions and revisions.

Solution

Introduce product versions and product evolutions

  • Current identifier of a product page: barcode + revision id (1,2,..)
  • Proposed identifier of a product page: barcode + version id (1,2..) + evolution id (1,2..) + revision id (1,2,..)
  • Product versions correspond to versions of the same product that are being sold simultaneously
    • Product versions must have different pictures
    • Product versions can have completely different data
    • Products versions co-exist
      • Several product versions can be displayed on OFF
        • Some versions might be not shown for some queries (e.g. depending on the values of the "countries of distribution" field)
    • In practice, product versions can be abused to handle completely different products with the same barcode
  • Product evolutions correspond to products that evolve over time
    • Only the latest evolution is shown on OFF in regular searches
    • We track all the changes and can display the evolutions: differences in ingredients, nutrition facts etc.
    • Product evolutions must have different pictures
    • Product evolutions can have completely different data

Allow to create new versions and evolutions

  • Create new version or new evolution by moving pictures to it
    • Similar to the existing feature to move pictures from one barcode to another


To be continued.