CROP
ProjectsParts Services

SEO Data Flow Diagrams

1. Field Transformation

SEO Data Flow Diagrams

Diagrams

1. Field Transformation

pbcopy < /Users/vova/Code/CROP/microservices/docs/DIAGRAM_SEO_FIELDS.txt

2. Full Data Flow

pbcopy < /Users/vova/Code/CROP/microservices/docs/DIAGRAM_SEO_DATA_FLOW.txt

Data Flow Layers

LayerComponentRole
1Data SourcesVendor Website, Manual, Amazon
2MongoDB AtlasSource of truth
3TransformersNormalize, generate SKU/slug
4ElasticsearchSearch index
5Search APIREST endpoints
6FrontendSEO HTML output

Field Journey

title

LayerFieldValue
Sourcescraped"Hydraulic Filter Element"
MongoDBtitle"Hydraulic Filter Element"
Elasticsearchtitle"Hydraulic Filter Element"
APItitle"Hydraulic Filter Element"
SEOmetaTitle"Hydraulic Filter Element | New Holland"

partNumber

LayerFieldValue
Sourcescraped"00907566"
MongoDBpartNumber"00907566"
TransformpnNorm"907566"
ElasticsearchpartNumber, pnNorm"00907566", "907566"
APIpartNumber"00907566"
SEOschemaData.mpn"00907566"

sku

LayerFieldValue
TransformgeneratedCT-{code}-{partNumber}
MongoDBsku"CT-NHL-00907566"
Elasticsearchsku"CT-NHL-00907566"
APIsku"CT-NHL-00907566"
SEOschemaData.sku"CT-NHL-00907566"

media.primaryImage

LayerFieldValue
GCSuploadedgs://crop_parts/nhl/...
MongoDBmedia.images[0].gcpUrlhttps://storage...
MongoDBmedia.primaryImagehttps://storage...
Elasticsearchmedia.primaryImagehttps://storage...
APImedia.primaryImagehttps://storage...
SEOogImagehttps://storage...

price

LayerFieldValue
Sourcescraped/ERP45.99
MongoDBprice.list{value: 45.99, currency: "USD"}
Elasticsearchprice.list.value45.99
APIprice.list{value: 45.99, currency: "USD", formatted: "$45.99"}
SEOschemaData.offers.price45.99

categoryPath

LayerFieldValue
Sourcescraped["Filters", "Hydraulic"]
Transformnormalized"Parts > Filters > Hydraulic Filters"
MongoDBcategoryPath["Parts > Filters > Hydraulic Filters"]
ElasticsearchcategoryPath["Parts > Filters > Hydraulic Filters"]
APIcategoryPath["Parts > Filters > Hydraulic Filters"]
SEOBreadcrumbListJSON-LD with positions

MongoDB Collections

CollectionDatabaseStatusUse
partscrop_stageLIVEProduction (~10)
partscrop_prodREADYProduction (3,740+)
nh_unifiedcrop_parts_archiveDEPRECATEDArchive only

Transformer Actions

ActionInputOutput
normalize"00907566"pnNorm: "907566"
generateSku{code: "NHL", pn: "00907566"}"CT-NHL-00907566"
generateSlug{code, title, pn, id}"nhl-hydraulic-filter-00907566-abc123"
processMediaimages[]primaryImage, hasGcpImages
normalizeCategoriesraw pathsCategoryNode[]

Consistency Check

All fields use camelCase naming:

OKFieldLayers
partNumberAll
categoryPathAll
primaryImageAll
metaTitleSEO
ogImageSEO
schemaDataSEO

On this page