The Open Catalog goal is to create an open source catalog that based on Pepperi's order center with fast performance. The Open Catalog data export data to ElasticSearch, a search engine that provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.
On ElasticSearch there is an index per user, created from installing Pepperi ElasticSearch addon.
Installing the OpenCatalog addon will create a new type on the user's index: open_catalog.
In order to work with versions of open_catalog and allow multiple catalog the API works on scopes containing pointing to the specific catalog (transaction type) and version - no option to get/post data on more then one specific scope at a call.
This specific scope will contains all the needed data for the open catalog:
1. Items (transaction line scope exported from Pepperi order center).
2. Categories (based on Pepperi filters).
The open catalog scope will export the needed fields for the items and categories and create them dynamically, except from the non indexed fields, those for display only. The non indexed fields will be save on an array, so in case the user will change his mind it will be possible to index this field (because the enable setting for existing fields cannot be updated). The array will save only the formatted values, therefore from data type string.