Product Code: CODEX
FullHouse Name: PIMS
HomeChoice Name: (not deployed)
Codex is the centralised document and product content management
system. It handles document storage, versioning, search, product
images, metadata, Shopify sync, AI-boosted OCR, and digital
signatures (TODO).
| Module | Location | Purpose |
|---|---|---|
ObjDocument |
factory.core | Document management, storage, retrieval, versioning |
ObjDocumentFile |
factory.core | Individual file operations, metadata |
ObjDocumentSet |
factory.core | Group documents into sets (application packs, folders) |
ObjDocumentTools |
factory.core | Document utilities and helpers |
ObjImage |
factory.core | Image processing, resize, format conversion |
| Module | Purpose |
|---|---|
ObjServiceFHShopify.py |
Two-way Shopify product sync (images, descriptions, pricing, variants) |
ObjServiceFHwebsite.py |
Website product content rendering from PIMS |
ObjServicePromocardimage.py |
Promotional card image generation from PIMS |
| Module | Purpose |
|---|---|
ObjReportFHproduct.py |
Product detail page |
ObjReportFHproductjson.py |
Product data as JSON API |
ObjReportFHproductsale.py |
Product sale/pricing display |
ObjReportFHpriceticketfancy.py |
Price ticket rendering |
ObjReportFHpromotion.py |
Promotion report — product images, pricing, Shopify status, quality checks |
| Module | Purpose |
|---|---|
ObjTextFHImages.py |
PIMS image handling and serving |
ObjTextFHDeletePimsImage.py |
PIMS image deletion |
| Module | Purpose |
|---|---|
ObjAILlm.py |
AI-generated product descriptions from PIMS data |
| Table | Purpose |
|---|---|
trader.products |
Product master — PM_PRODUCTCODE, PM_Description, pricing |
trader.meta_product |
Product metadata — descriptions (pipe-delimited), features |
trader.meta_product_alternates |
Sibling/alternate product mapping for image fallback |
trader.promotion_detail |
Products in promotions |
| Table | Purpose |
|---|---|
def_document |
Document definitions and types |
data_documentmeta_pims |
PIMS image metadata (13,900+ products) |
fullhouse.axion.def_promotion |
Active promotions |
Source Image Upload
|
v
Resize -> Compress -> Convert
|
v
{CODE}_pims.jpg (full-size product image)
{CODE}_pims_icon.jpeg (thumbnail)
|
v
Public CDN: fhgo.co.za/image/pims/{CODE}_pims.jpg
Internal: /objects/local.documents/pims/{CODE}_pims.jpg
|
v
Fallback: logo_pims_icon.jpeg (if no product image exists)
|
v
Alternate lookup: trader.meta_product_alternates
Products sync to Shopify via ObjServiceFHShopify:
Status tracked in trader.products:
PushedToWeb — Y/N/ErrorPushedToWebDate — last sync timestamppushedresultjson — Shopify API responseQueries across three databases:
fullhouse.axion.def_promotion — active promotionstrader.promotion_detail — product codes in promotiontrader.meta_product — descriptions (pipe-delimited features)trader.products — master data, images, pricingQuality checks:
logo_pims_icon.jpeg)JPG, JPEG, PNG, GIF, WEBP, SVG, BMP, TIFF
PDF, DOCX, DOC, XLSX, XLS, PPTX, PPT
CSV, JSON, XML, YAML, GEOJSON
MP3, WAV, OGG, FLAC, AAC, MP4, WEBM, MOV, AVI
ZIP, TAR, GZ
STL, OBJ, PLY, OFF
PY, JS, TS, CSS, SCSS, SQL, MD, HTML, TXT, LOG, EPUB
JPG, JPEG, GIF, PNG, PDF, WEBP, BMP, TIFF
ObjFieldSignature (factory.field/package.core) provides
canvas-based signature capture using SignaturePad.js:
resource.notes/package.fullhouse/pims_original_spec.md — original PIMS specresource.notes/package.fullhouse/how_to_push_shopify_products.md — Shopify sync guideresource.modules/specs/salesman_portal.yaml — salesman app with PIMS product display