Search Everywhere

Find pipelines, controller routes, hooks, step types and custom APIs by name in the B2C Entry Points tab of Search Everywhere

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

Search Everywhere finds routes, hooks, step types and custom APIs in the All tab and in a B2C Entry Points tab with a filter by kind. File results name their cartridge, so copies of one file stay apart

Open the B2C Entry Points tab

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

KindRowExample
Pipeline The pipeline name and the type of its <pipeline> elementCart view app_storefront_pipelines
Start node The route of the start node and start nodeCart-Show start node app_storefront_pipelines
Controller route The full route name and its method. A SiteGenesis route shows its guards, such as get, httpsCart-Show GET app_storefront_base
Hook The hook name, system for a Salesforce hook point and the script pathdw.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 runscustom.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 schemaGET /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 typeFinds
cart-shCart-Show first, then Cart-SelectShippingMethod and Cart-MiniCartShow
MiniCSCart-MiniCartShow
order.calcdw.order.calculate
syncmemcustom.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 loyalty or v1/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 loyaltyCalculate finds the dw.order.calculate hook 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

ResultOpens
PipelineThe pipeline in the Pipeline Editor
Start nodeThe pipeline in the Pipeline Editor, on that start node
Controller routeThe line that defines the route, such as server.append('Show', ...)
HookThe 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 typeThe 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 APIThe 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

SymptomWhat to do
There is no B2C Entry Points tabThe project has no linked cartridge yet. Link one, see Cartridges & Modules
The tab finds nothingCheck 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 tabThe 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 nameThe 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 firstSelect its site in the Site Scope widget, equal matches then follow that site's cartridge path
A hook opens hooks.json, not its scriptThe script path doesn't resolve to a file. Cmd+Click the path in hooks.json to check it
A file result has no cartridge labelThe file is outside your linked cartridges and modules, or the license has expired

On this page