Bulk products integration
Bulk products are products that are sold in shops without packaging. The consumers fills a container s/he brought her/himself or is offered by the shop. This way the consumer can buy as much as needed and there is no impact on the environment due to the consumer packaging. The shop keeper buys the product in bulk packaging and keeps the containers filled up.
OFF can support these kind of products by creating products without barcode, such as this one. The advent of OFF prices allows us to do things a bit differently.
But this raises also other issues that will be discussed. The end goal is to update OFF with Bulk products entered on OFF Prices.
Bulk product categories
OFF Prices allows the user to enter the prices of bulk products. For each product the user has to specify a category. As the variety of bulk products is not very large, there is no need to expose the user to the complexities of the Categories taxonomy, which consists of 72.000 products. A subset of the categories taxonomy is sufficient for OFF Prices.
Virtually all products are sold with a barcode on the packaging. Which product categories are however also available without "official" barcode. This will be a very small subset of the categories taxonomy. For prices we need to identify these product categories.
Super category
We could also add the super category en:Bulk for easy retrieval of bulk products. This has the advantage that the indexing facilities can be used
Property
The identification of these bulk categories will be done by adding a property to each relevant category. The property sales_format will indicate whether that category is also sold by bulk. This can be by weight (for example almonds), by volume (for example olive oil) or by item (for example lemons).
By adding this property to each category that is sold as bulk, OFF Prices can figure out what categories need to be shown to the user.
Unfortunately the category name corresponding to the bulk product can be very extensive. For instance bulk almonds are only sold shelled, whole, unsalted, unroasted and unblanched. To simplify the category a specific convenience category has been created, called raw almonds. (better than Almonds(whole/unsalted/unroasted/unblanched). This might even be too large for OFF Prices, a shorted name would be more convenient to the user. Why not call them just almonds?
By adding a proxy category to be used for bulk categories, OFF Prices can show a more simple name. The property bulk_proxy_category can be used for that. This property points to the en:almonds category.
Bulk product integration
Bulk product information
The information association with bulk product can differ a lot:
- minimal information - These products only have a category name, an associated price, an origin and possibly an organic label. This often occurs on markets, wher the user selects the products and the gives a filled basket to the shop keeper. The shop keeper then makes a simple receipt which consists only of a list of prices, without associated product (categories);
- self service label. These products only have a category name, an associated price, an origin and possibly an organic label - The user weighs the product himself and prints out a label on a weighing station. The information might on the label consists of a price, a weight and a price per weight. The printed label encodes the price;
- cashiers weighing - These products only have a category name, an associated price, an origin and possibly an organic label. The receipt will contain the price, a weight and a price per weight;
- no waste shops - This is either similar to the cashiers weighing or the self service situation, but the product is displayed with the same information that can be found on standard food packing (ingredients, nutritional values, etc.);
Bulk product barcodes
Distinguish between what kind of info is available in the shop.
At the moment these bulk products stay in OFF Prices. It would be nice to create new products in OFF, especially when there a corresponding product labels.
Instead of just creating a next barcode in the sequence, we could create a specific barcode. This specific barcode should prevent some doubling.
Elements of this barcode could be:
- OSM type (node/way/relation) (1 digit)
- shop name as encoded in the OSM id (12 digits?);
- category as encoded in the agribalyse food code (5 digits);
Clearly this will not fit a standard 13 digit EAN-code.
For example the Almonds (agribalyse: 15000) I bought at the SuperU in Veynes (node: 486004903) could be encoded as: 1 00486004903 15000 00. This is a 19 digit code where some padding has been added just in case.
This would lead this product on OFF.