Press Shift twice and Search Everywhere gets a B2C Entry Points tab next to Files and Symbols. It finds the pipelines, controller routes, hooks, step types and custom APIs of your linked cartridges by name, the same entries as the B2C Entry Points tool window, and Enter opens the code that runs. The same results join the All tab, and file results across Search Everywhere name the cartridge they come from
Open the B2C Entry Points tab
Link a cartridge
The tab shows up in projects with at least one linked cartridge, see Cartridges & Modules. Results need a valid license or trial
Press Shift twice
Search Everywhere opens. B2C Entry Points sits after Symbols and before Actions. Click it, or press Tab until it is selected
Type part of a name
Results update as you type. An empty field lists nothing
Press Enter
The selected entry opens at the code that runs it, see Open the code. Double-clicking a row does the same
What a result shows
Each row is the row of the tool window's tree with the cartridge at the end in grey
| Kind | Row | Example |
|---|---|---|
| Pipeline | The pipeline name and the type of its <pipeline> element | Cart view app_storefront_pipelines |
| Start node | The route of the start node and start node | Cart-Show start node app_storefront_pipelines |
| Controller route | The full route name and its method. A SiteGenesis route shows its guards, such as get, https | Cart-Show GET app_storefront_base |
| Hook | The hook name, system for a Salesforce hook point and the script path | dw.order.calculate system ./cartridge/scripts/hooks/cart/calculate.js app_storefront_base |
| Step type | The step type ID, its kind (Script, Chunk or Pipeline) and the module file or pipeline it runs | custom.Loyalty-SyncMembers Chunk syncMembers.js int_loyalty |
| Custom API | The method in bold, the path the way SCAPI addresses it (/<api>/v<version><path>) and the operation ID in grey. An operation that schema.yaml doesn't describe shows its ID and not in the schema | GET /loyalty/v1/members/{memberId}/points getPoints int_loyalty |
Methods use the colours of the tool window: GET blue, POST green, PUT orange, PATCH purple and DELETE red. Other methods, such as APPEND, PREPEND and REPLACE, are grey, and a SiteGenesis guard list takes the colour of its first guard. The part of the text your search matched is highlighted
How names match
Names match the way class and file names do in the IDE: case doesn't matter, and the letters you type can match the starts of words and camel humps anywhere in the name
| You type | Finds |
|---|---|
cart-sh | Cart-Show first, then Cart-SelectShippingMethod and Cart-MiniCartShow |
MiniCS | Cart-MiniCartShow |
order.calc | dw.order.calculate |
syncmem | custom.Loyalty-SyncMembers |
A -, . or _ you type has to appear in the name, so cart-sh doesn't find the file Cart.js. Besides its name:
- A custom API also matches by its API name and its versioned path, such as
loyaltyorv1/members. These matches rank one step below a name match - Other text of a row matches as plain text and ranks below every name match: the script path of a hook, the module, function and pipeline of a step type, the summary of a custom API and the group and type of a pipeline. So
loyaltyCalculatefinds thedw.order.calculatehook whose script it is
The best match comes first. Equal matches follow the cartridge path of the site selected in the Site Scope widget, so the copy that runs on that site comes first, for example the APPEND of Cart-Show in app_custom before the GET in app_storefront_base. Cartridges outside that path, and every cartridge with Global scope, follow in the order of the tool window
Filter by kind
The funnel at the right of the tab row picks the kinds the tab shows. Its list has a checkbox for each kind, Pipelines, Controllers, Hooks, Step Types and Custom APIs, and the buttons All, None and Invert. The results update as you check and uncheck
- The funnel shows a dot while a kind is hidden
- The kinds you hide are saved for the project and stay hidden the next time you open Search Everywhere
- The filter applies to the All tab too, so a hidden kind is missing there as well
- With every kind unchecked, the tab finds nothing
Open the code
Results have no preview. Enter or a double-click opens the code that runs, the same way the tool window does. When that code can't be found, the declaration opens instead
| Result | Opens |
|---|---|
| Pipeline | The pipeline in the Pipeline Editor |
| Start node | The pipeline in the Pipeline Editor, on that start node |
| Controller route | The line that defines the route, such as server.append('Show', ...) |
| Hook | The script the hook runs. A system hook opens at the function named after the hook point, such as calculate for dw.order.calculate. Without the script, the entry in hooks.json |
| Step type | The step's function in its module, or execute for a script step that names none. A pipeline step opens its pipeline on the start node it calls. Without the module, the declaration in steptypes.json |
| Custom API | The function of the implementation script named after the operation ID. Without it, the operation in schema.yaml, then the endpoint in api.json |
The All tab
Entry points also show up in the All tab under a B2C Entry Points group, next to the IDE's own groups such as Files and Symbols. One search finds a controller file and the routes it defines. The kinds you hide with the funnel of the B2C Entry Points tab stay hidden here too, see Filter by kind
The cartridge on file results
In the All, Files and Symbols tabs and in Go to File (Cmd+Shift+O, Ctrl+Shift+N), results from linked cartridges and modules show their cartridge on the right, with an icon for its kind: cartridge , B2C module or modules folder . Three copies of productHelpers.js become three clearly different rows. Choose Declaration and the lists of gutter icons show the same label, see Search & Navigation. The label needs a valid license or trial
ISML custom tags are in the Symbols tab by their tag name, see ISML Custom Tags
While the IDE indexes
The tab keeps working while the IDE indexes: it searches the entries it collected last and catches up when indexing finishes
Troubleshooting
| Symptom | What to do |
|---|---|
| There is no B2C Entry Points tab | The project has no linked cartridge yet. Link one, see Cartridges & Modules |
| The tab finds nothing | Check that the license or trial is valid. Open the funnel and check the kinds, with every kind unchecked nothing matches |
| Routes or hooks are missing from the All tab | The funnel of the B2C Entry Points tab hides that kind. A dot on the funnel means a kind is hidden |
A search with - or . misses a name | The separator has to appear in the name. Leave it out to match word starts, such as cartsh for Cart-Show |
| The copy you want isn't first | Select its site in the Site Scope widget, equal matches then follow that site's cartridge path |
A hook opens hooks.json, not its script | The script path doesn't resolve to a file. Cmd+Click the path in hooks.json to check it |
| A file result has no cartridge label | The file is outside your linked cartridges and modules, or the license has expired |
Related
B2C Entry Points
Every entry point of your cartridges in one tool window
Code Vision
Lenses above routes, hooks, step types, custom APIs and cartridge paths
Search & Navigation
Cartridge labels, gutter icons and Go to Declaration
Site Scopes
Order results by one site's cartridge path
Pipeline Editor
Where pipelines and start nodes open
Cartridges & Modules
Link the cartridges the search covers