---
alias: "fc.button.print.pick"
aliases:
  - fc.button.print.pick
category: action
module: Store
---

# fc.button.print.pick

Store module print button that generates a pick list document by fetching and transforming wave item data, then delegates to the core `fc.button.print` component.

## When to Use
- Print a pick list for a wave in the Store (pick/pack) module
- Generate formatted pick documents with product details, quantities, and on-hand inventory
- Provide a print/download button on wave detail pages

## Key Props
| Prop | Type | Required | What it controls |
|------|------|----------|------------------|
| `label` | string | Yes | Button text label |
| `setting` | string | Yes | Setting key for the print template configuration |
| `data` | any | No | Data context containing `waveById.id` -- the wave ID to fetch items for |
| `behavior` | `"newTab"` / `"print"` / `"download"` | No | How the document is presented. Default: `"print"` |

## Data Binding
Fetches wave items via a built-in GraphQL query (`waveById`) using the wave ID from the data context. For each item, also fetches virtual position (on-hand quantity) from the location context. Transforms the raw wave data into a structured format with:
- `requiredQty` -- quantity needed for the pick
- `sku.name`, `sku.skuRef`, `sku.productRef`, `sku.catalogueRef` -- product details
- `sku.onHand` -- current on-hand quantity from virtual positions
- `sku.references.BARCODE` -- GTIN/barcode for scanning
- `sku.category`, `sku.imageUrlRef` -- product metadata

## Composition Patterns
- `fc.page.section.header` > `fc.button.print.pick` for a print button in a wave detail header
- `fc.button.bar` > `fc.button.print.pick` alongside other action buttons

## Gotchas
- This is the V2 version (`InlineCompatibilityV2`) registered by the Store plugin. It delegates to `fc.button.print` (the core print component), not the older `fc.button.print.inline`.
- The wave data transformation happens asynchronously -- items are fetched and virtual positions are queried per-item, so the transformed data populates incrementally.
- Requires the Store module to be loaded -- this component is registered in `mystique-store`, not core.
- The `data` prop must contain `waveById.id` for the wave query to work. Typically this comes from the page-level data context on a wave detail page.
- The older `fc.button.print.inline.compatibility` (V1) delegates to `fc.button.print.inline` instead.

## Manifest Example
```json
{
  "component": "fc.button.print.pick",
  "props": {
    "label": "Print Pick List",
    "setting": "fc.mystique.picklist.template",
    "behavior": "print"
  }
}
```

## AI Parse Notes
- **Primary intent:** Declarative Mystique component definition for manifests.
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
- **Safety checks:** Validate required props and data bindings before manifest generation.
