The matcher fields ProductRouteService.search derives from the
entity row itself. search() owns these outright — callers cannot supply
them as criteria, because the SQL merges last and would override them
anyway, and accepting both would make it ambiguous which derivation
actually ran.
entityType is the one field the caller must also state, as the separate
search({ entityType }) parameter rather than as criteria: it names which
table to read the others from. It is still listed here because the emitted
value comes from search(), not from the caller's criteria object.
identityId / organizationId are the entity's own external id, emitted on
exactly one branch each. They are derived rather than caller-supplied for
the same reason as the rest: the id that decides which rules fire must be
the id the quote is actually for.
All nine come from routeCriteriaEntityView, the only derivation of
them; ProductRouteService.getEntity reads them back. An unknown
entity yields NULL criteria and so no candidates. See
docs/PRODUCT_SERVICES.md § Branch exclusivity.
The matcher fields ProductRouteService.search derives from the entity row itself.
search()owns these outright — callers cannot supply them as criteria, because the SQL merges last and would override them anyway, and accepting both would make it ambiguous which derivation actually ran.entityTypeis the one field the caller must also state, as the separatesearch({ entityType })parameter rather than as criteria: it names which table to read the others from. It is still listed here because the emitted value comes fromsearch(), not from the caller's criteria object.identityId/organizationIdare the entity's own external id, emitted on exactly one branch each. They are derived rather than caller-supplied for the same reason as the rest: the id that decides which rules fire must be the id the quote is actually for.All nine come from routeCriteriaEntityView, the only derivation of them; ProductRouteService.getEntity reads them back. An unknown entity yields NULL criteria and so no candidates. See docs/PRODUCT_SERVICES.md § Branch exclusivity.