# Pick-n-Scan: Magento 2 Barcode Pick and Pack Scanning

> Scan products, confirm picks and packs, and track warehouse progress - all from a barcode-driven interface inside your Magento admin.

---

## Overview

Pick-n-Scan brings Magento 2 barcode pick and pack scanning into your admin panel, turning it into a live picking and packing station. Pickers work through assigned orders by scanning product barcodes; packers verify packed quantities and can enter tracking numbers at the point of packing. Every action updates order status instantly, and a stats dashboard shows throughput by role and time period.

![Pick-n-Scan scanning interface](images/overview.png)

This module helps you:

- Reduce mis-picks by validating each product against the order before it leaves the shelf
- Keep pickers and packers in sync with real-time status updates and auto-load queues
- Enforce accountability - every pick and pack is stamped with the user, time, and quantity
- Handle out-of-stock situations cleanly with substitution and skip workflows
- Track warehouse performance with per-role picking and packing stats

---

## When to use this

Use Pick-n-Scan when you want to:

- Replace paper picklists with a barcode-scanning workflow that catches mistakes before dispatch
- Separate picking and packing roles so each team only sees their relevant queue
- Auto-assign incoming orders to available pickers without manual intervention
- Record which staff member picked or packed each order for accountability and performance reviews
- Connect scanning to shipment creation and tracking number entry at the packing station

---

## Key barcode pick and pack scanning capabilities

- **Barcode-validated picking** - scans product barcodes against order items; incorrect scans are rejected before they cause a mis-ship
- **Separate pick and pack modes** - each role has its own scanning page, queue, and status columns in the orders grid
- **Auto-assignment** - a cron-backed rule assigns unassigned Processing orders to active pickers based on capacity and priority
- **Pick Pool** - a staging queue that holds orders before a named picker claims them, useful for shared warehouse workstations
- **Substitution handling** - pickers can swap an out-of-stock item with an alternative; optional admin verification and price-limit checks enforce approval before the sub is saved
- **Stats dashboard** - per-role charts showing throughput, on-time rate, and individual performance against configurable work-day windows
- **PickPack PDF printing** - trigger packing sheets, invoices, and picklists directly from the scan screen when PickPack is installed
- **ShipEasy OrderTag integration** - set OrderTags automatically when picking or packing completes

---

## Installation

Pick-n-Scan installs via Composer, then activates with a license key from your Moogento.com account. The whole flow takes about 5 minutes.

### Step 1: Get your Composer keys from Moogento.com

1. Sign in at **https://www.moogento.com** and open **My Plugins** in your account menu.
2. Find **Pick-n-Scan** in the list of plugins you own.
3. Generate (or reveal) the Composer access keys for that plugin - a **public key** and a **private key**.
4. **Add your install domain to the key.** Each Composer key is tied to a specific domain - if you're installing on `yourstore.com`, add `yourstore.com` to the key's allowed domains. The Composer download will be rejected on any other domain.

If you run staging and production on different domains, add both - separate keys per environment are fine too.

### Step 2: Install the module with Composer

From your Magento 2 root directory:

```
composer require moogento/module-picknscan
```

When Composer asks for credentials, paste the **public key** as the username and the **private key** as the password. They'll be cached in `~/.composer/auth.json` for future runs.

### Step 3: Enable the module in Magento

```
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:clean
```

If you run `php bin/magento module:status Moogento_Picknscan` you should see it listed as enabled.

### Step 4: Add your license key in the Moogento admin

1. Still on **https://www.moogento.com > My Plugins**, copy the **license key** for Pick-n-Scan (separate from the Composer keys you used above).
2. In your Magento admin, go to **Stores > Configuration > Moogento > Licenses**.
3. Find the row for **Pick-n-Scan** and paste the license key.
4. Click **Save Config**, then run `php bin/magento cache:clean` once.

The license validates within a few seconds. You should see the module's status flip to active. If it stays inactive, double-check the domain on the license matches where you've installed - domain mismatch is the most common cause.

---

## Setup overview

Most setup happens in:

Stores > Configuration > Moogento > Pick-n-Scan

You'll mainly work with:

- **General** - enable the module, set per-role order status transitions, auto-load behavior, safety restrictions, and bundle handling
- **Customise: Orders Page** - show or hide the Pick and Pack buttons in the sales orders grid
- **Customise: Scanning Pages** - enable scanning buttons (Pick, Pack, Sub, Skip, Pick Later), barcode attributes, product info fields, location attributes, and scan sounds
- **Automate: Assign Orders to Users** - configure the auto-assignment switch and eligible order statuses
- **Stats page: Settings** - define work hours, break times, working days, holidays, and target completion times
- **Connect: Integrations** - ShipEasy OrderTag settings and PickPack PDF printing buttons
- **Set: User Management** - enable individual admin users for scanning and configure auto-assignable capacity and priority

---

## Common setups

### Set up a pick-and-pack workflow from scratch

You have pickers pulling items from shelves and packers verifying them at packing stations. Both roles scan barcodes to confirm their work.

#### How to set it up

1. Go to:
   Stores > Configuration > Moogento > Pick-n-Scan > Customise: Orders Page

2. Set:
   - **Enable Button: Pick** = Yes
   - **Enable Button: Pack** = Yes

3. Go to:
   Stores > Configuration > Moogento > Pick-n-Scan > Customise: Scanning Pages

4. Set:
   - **Enable button: Pick** = Yes
   - **Enable button: Pack** = Yes
   - **Enable: Product barcode scanning** = Yes
   - **Attribute for: Product barcode scanning** = the product attribute that holds your barcode values (e.g. `barcode`, `upc`, `ean`)
   - **Attribute for: Location** = the attribute that stores your shelf/bin location (e.g. `warehouse_location`)
   - **Set order status: Pick complete** = your chosen in-progress status (e.g. "Picked")
   - **Set order status: Pack complete** = your dispatch-ready status (e.g. "Packed")

5. Save Config, then run `php bin/magento cache:clean`.

#### Notes

- `Safety restrictions: Allow Packing orders that haven't been Picked` defaults to **No** - leave it that way to enforce the pick-before-pack sequence.
- `Safety restrictions: Allow Picking & Packing Complete orders` defaults to **No** - this prevents double-shipping a completed order.
- Pickers access the scan interface via the **Pick** button in Sales > Orders, or directly at `Moogento > Pick-n-Scan` in the admin nav.

![Pick-n-Scan General config group](images/config-settings.png)

---

### Enable auto-assignment of orders to pickers

Rather than manually assigning orders, let Pick-n-Scan distribute incoming Processing orders across your available pickers automatically.

#### How to set it up

1. Go to:
   Stores > Configuration > Moogento > Pick-n-Scan > Customise: Orders Page

2. Set **Enable Button: Pick** = Yes (required for auto-assign to appear).

3. Go to:
   Stores > Configuration > Moogento > Pick-n-Scan > Automate: Assign Orders to Users

4. Set:
   - **Add in Pick Button: Auto-assign switch** = Yes
   - **Auto-assign: Orders with Status** = Processing (or whichever status you want eligible)

5. Go to:
   Stores > Configuration > Moogento > Pick-n-Scan > Set: User Management

6. In the users table, set each picker's **Auto-Assignable** column to **Yes**. Optionally set **AA Order Priority** and capacity to balance load across pickers.

7. Save Config and run `php bin/magento cache:clean`.

#### Notes

- Auto-assign runs every minute via cron. Users must have logged in or shown Pick-n-Scan activity within the previous 2 hours to receive orders.
- The auto-assign switch inside the Orders page Pick button can also be toggled by the picker at scan time. The config field `Auto-assign switch: Set to Enabled` sets its default state.

![Pick-n-Scan auto-assign config group](images/config-auto_assign.png)

---

### Allow substitutions when an item is out of stock

Pickers can swap an out-of-stock item with an alternative. An optional admin verification code and price limit prevent unauthorised substitutions.

#### How to set it up

1. Go to:
   Stores > Configuration > Moogento > Pick-n-Scan > Customise: Scanning Pages

2. Set:
   - **Enable Button: Substitute** = Yes
   - **Require: Verification Scan** (Sub) = Yes (recommended - requires an admin user's 6-character verification code before the sub is accepted)
   - **Product Replacement Allowance** = Yes (optional - enforce a price cap on the substitute item)
   - **Allowance Multiplier** = e.g. `2` (substitute may cost up to 2× the original item's price)
   - **Set order status: Sub'd product** = a suitable on-hold status so you can contact the customer before dispatch

3. Save Config.

4. Generate and print verification codes for authorised supervisors:

```
bin/magento moogento:picknscan --action=users:verification-codes
```

   Distribute the printed auth cards (or use **Assign: Users > Print** in the config page) to supervisors.

#### Notes

- Verification codes are the first 6 characters of the MD5 hash of the admin username - they are static per user and don't expire.
- If you enable **Set order status: Sub'd product**, review those orders before shipping so the customer is aware of the change.

![Pick-n-Scan scanning pages config group](images/config-scanning_page.png)

---

### Configure the stats dashboard for your work schedule

The picking and packing stats pages (`Moogento > Pick-n-Scan > Stats: Picking` and `Stats: Packing`) calculate on-time rates against a configurable work-day window.

#### How to set it up

1. Go to:
   Stores > Configuration > Moogento > Pick-n-Scan > Stats page: Settings

2. Set:
   - **Working day starts** - e.g. `08:00`
   - **Working day ends** - e.g. `17:00`
   - **Break time** - e.g. `12:00-13:00`
   - **Working days** - select the days your warehouse operates
   - **Holidays in a year** - one `mm/dd` date per line for public holidays
   - **Cutoff time** - orders assigned after this time won't count toward the current day's stats
   - **Target Picked/Packed completion time period** - e.g. `02:00` (orders should be processed within 2 hours)

3. Save Config.

#### Notes

- Stats are also accessible under Reports > Pick-n-Scan in the Magento admin.
- Per-user stats are visible in each stats page - use this to review individual throughput.

![Pick-n-Scan stats config group](images/config-pns_stats.png)

---

## Features reference

### Orders page buttons

- **What it does:** Adds Pick and Pack action buttons to the Sales > Orders grid, as mass-action buttons and per-row buttons. Clicking Pick opens the scanning interface for the selected orders.
- **When to use it:** Always enable these if you use Pick-n-Scan - they are the primary entry point.
- **Config path:** `moogento_picknscan/orders_page/show_pick` and `moogento_picknscan/orders_page/show_pack`

---

### Scanning page customisation

The scanning page has extensive display controls - location attributes (up to 3), product info attributes (up to 4), barcode attribute (primary and secondary), product title attribute, configurable options display, single vs double product image, and a custom logo for the scanning titlebar.

- **What it does:** Controls exactly what pickers and packers see on the scan screen - shelf location, product details, barcode, and branding.
- **When to use it:** Configure before going live. Showing the right location field dramatically reduces look-up time at the shelf.
- **Config paths:** `moogento_picknscan/scanning_page/attribute_item_location`, `moogento_picknscan/scanning_page/attribute_barcode`, `moogento_picknscan/scanning_page/extra_product_into_display_1` through `_4`

---

### Auto-load next order

After a picker completes an order, Pick-n-Scan can automatically load the next assigned order without returning to the queue screen.

- **What it does:** Keeps the picker in the scan flow without manual navigation between orders.
- **When to use it:** Enable for high-volume warehouses. Disable if pickers need to see completion stats between orders, or if packers need to enter tracking after each pack.
- **Config paths:** `moogento_picknscan/settings/pick_auto_return` and `moogento_picknscan/settings/pack_auto_return`

---

### Skip button

Allows a picker or packer to skip a product they cannot locate, optionally requiring a verification scan before the skip is recorded.

- **What it does:** Marks the item as skipped and optionally sets the order to a configurable status (e.g. "On Hold") so the order can be reviewed.
- **When to use it:** Enable when out-of-stock situations occur regularly. Combine with a dedicated on-hold status so skipped-product orders don't ship unfulfilled.
- **Config paths:** `moogento_picknscan/scanning_page/show_skip`, `moogento_picknscan/scanning_page/admin_auth_skip`, `moogento_picknscan/settings/skip_button_set_order_status`

---

### Tracking number entry after packing

When pre-printed tracking labels are assigned at pack time, Pick-n-Scan can prompt the packer to scan the tracking number after each order is packed.

- **What it does:** Records the tracking number against the shipment at the moment of packing - no separate data-entry step required.
- **When to use it:** Enable when your courier labels are printed in advance and applied at the packing table.
- **Config path:** `moogento_picknscan/scanning_page/tracking_number_enabled`
- **Note:** Set `moogento_picknscan/settings/pack_auto_return` = No, otherwise the next order loads before the packer can scan the tracking number.

---

### Bundle product handling

Controls whether bundle products are processed as the bundle parent or as their child component products.

- **What it does:** Sets whether the scanner prompts for the bundle SKU or each child SKU individually.
- **When to use it:** If your warehouse stocks bundle components separately, set to **Child products** (default). If you pick bundles pre-assembled, set to **Bundle product**.
- **Config path:** `moogento_picknscan/settings/bundle_strategy`

---

### SKU skip list

Specific SKUs can be excluded from scan prompts - useful for items always included in every order (e.g. a freebie placed at the packing table) or products with no barcode.

- **What it does:** Pick-n-Scan will not prompt the picker to scan listed SKUs; they are treated as already picked.
- **When to use it:** Enable `Specific Products: Don't request a scan` and list SKUs when you have items that are physically always present without scanning.
- **Config paths:** `moogento_picknscan/settings/show_pick_pack_specific_product`, `moogento_picknscan/settings/skip_sku`

---

### Warehouse timezone offset

Adjusts the timestamp shown in order comments (added when an order is picked or packed) to reflect your warehouse's local time, independently of the Magento store timezone.

- **What it does:** Stores pick/pack comment timestamps in local warehouse time rather than the store's configured timezone.
- **When to use it:** When your warehouse and your Magento store are in different timezones and you need comment timestamps to be locally meaningful.
- **Config path:** `moogento_picknscan/settings/timezone_warehouse_offset`

---

### Order commenting during pick

Pickers can add admin-visible comments to an order during the picking process, and existing order comments can be surfaced in the scan screen (with optional stop-word filtering).

- **What it does:** Creates an audit trail and surfaces customer-facing notes (e.g. gift messages, special instructions) directly in the scanning screen.
- **When to use it:** Enable order commenting when pickers need to flag issues, and enable order comments display when customer notes should be visible at pick time.
- **Config paths:** `moogento_picknscan/scanning_page/order_commenting`, `moogento_picknscan/scanning_page/order_comments_yn`, `moogento_picknscan/scanning_page/order_comments_filter_yn`

---

## Advanced configuration

### Pick Pool

#### What it does

The Pick Pool is a virtual user (internal ID `99999999`, shown as "Pick Pool") used as a staging assignment. Orders are placed into the pool before a real picker claims them. This is most useful in shared workstation setups where pickers self-select from a common queue rather than having orders pre-assigned.

#### Setup

1. Enable auto-assign in Stores > Configuration > Moogento > Pick-n-Scan > Automate: Assign Orders to Users.
2. Use the CLI to manage the pool:

```
bin/magento moogento:picknscan --action=pick-pool:status
bin/magento moogento:picknscan --action=pick-pool:assign --order-id=12345
bin/magento moogento:picknscan --action=pick-pool:clear
```

#### Notes

- If auto-assign is not running, check whether the auto-assign process flag is stuck. Use `pick-pool:clear` to reset a stuck flag.
- TrolleyBox extends the pick pool when installed - see TrolleyBox documentation for TrolleyBox-mode pool behaviour.

---

### Split shipments during packing

#### What it does

Allows a packer to create multiple shipments from a single order at the pack screen - useful when an order spans multiple boxes or must be dispatched in stages.

#### Setup

1. Go to:
   Stores > Configuration > Moogento > Pick-n-Scan > Customise: Scanning Pages

2. Set:
   - **Pack: Allow splitting shipments?** = Yes
   - **Pack: Show button split shipments manually** = Yes (shows an explicit split button; otherwise splitting only happens programmatically)

#### Notes

- Enabling split shipments adds a button to the pack screen. The packer decides at pack time how to distribute items across shipments.
- Config path: `moogento_picknscan/scanning_page/pack_show_split_shipment`

---

### REST API access

Pick-n-Scan exposes assigned order data via REST at `/V1/pns/assigned-orders`. Supports GET (list and by sales order ID), POST (create assignment), and PUT (update assignment). Requires the `Moogento_Picknscan::pns` ACL role.

Use this to integrate external WMS or reporting tools with Pick-n-Scan's assignment data.

---

### ShipEasy OrderTag integration

When ShipEasy is installed, Pick-n-Scan can automatically set OrderTags when picking or packing completes. Configure which tag values to apply for pick completion and pack completion separately.

- **Config path (pick):** `moogento_picknscan/pns_shipeasy/pick_set_ordertag_enabled` and `moogento_picknscan/pns_shipeasy/pick_ordertag_1`
- **Config path (pack):** `moogento_picknscan/pns_shipeasy/pack_set_ordertag_enabled` and `moogento_picknscan/pns_shipeasy/pack_ordertag_1`
- Also supports showing the Priority OrderTag in the scanning screen: `moogento_picknscan/pns_integrations/show_ordertag_priority`

---

## Tips & best practices

- Set a dedicated **order status for each stage** (picked, packed, stopped, substituted, skipped). This makes it trivial to filter orders at each stage and spot workflow bottlenecks in the orders grid.
- **Print auth cards** for all supervisors before enabling verification scans for Sub and Skip. The `users:verification-codes` CLI command lists them all at once; the admin config page has print buttons per user.
- **Test barcode scanning with your actual scanner hardware** before going live. USB barcode scanners behave like keyboards - scan speed and termination characters (Enter vs Tab) affect how Pick-n-Scan receives the value. Adjust scanner configuration if products are being over- or under-counted.
- **Disable `Auto-load next order: Packing`** when you use tracking number entry - otherwise the next order loads immediately and the packer never sees the tracking prompt.
- **Keep logging off in production** (`moogento_picknscan/settings/enable_log` = No) once the setup is stable. The log at `var/log/moogento_picknscan.log` is useful for debugging but adds disk I/O under high scan volume.
- Use the **stats cutoff time** to exclude late-arriving orders from the current day's targets - orders placed after the cutoff count toward the next working day.
- When running TrolleyBox mode, configure auto-assign and pick pool settings in the TrolleyBox config panel, not in Pick-n-Scan - TrolleyBox overrides Pick-n-Scan's pool logic when installed.

---

## Troubleshooting

### Scan results seem delayed or the UI doesn't update after a successful scan

Sync lag or stale assigned-order data in the scan screen.

- **Cause:** The assigned-order refresh interval is set too long, or the cron/queue is not running.
- **Check:** Verify `moogento_picknscan/scanning_page/poll_interval` - default is 1 minute. Also confirm Magento cron is active (`bin/magento cron:run` completes without errors).
- **Resolution:** Lower the poll interval to `0.5` (30 seconds) or check cron configuration. If the queue processor is used for sync, confirm the consumer is running.

---

### Auto-assign is not distributing orders to pickers

Orders sit unassigned despite auto-assign being enabled.

- **Cause:** The auto-assign process flag may be stuck, or eligible users have not been active in the previous 2 hours.
- **Check:** Run `bin/magento moogento:picknscan --action=pick-pool:status` and `--action=users:list` to see which users are marked auto-assignable and when they last had activity.
- **Resolution:** Run `bin/magento moogento:picknscan --action=pick-pool:clear` to reset the flag. If users are not appearing, verify that their user assignments are active and not locked.

---

### The Sub button is not visible on the scan screen

Substitution is intended but the button does not appear.

- **Cause:** The Substitute button is disabled in configuration, or the scanning page is in Pack mode.
- **Check:** Stores > Configuration > Moogento > Pick-n-Scan > Customise: Scanning Pages - confirm **Enable Button: Substitute** = Yes.
- **Resolution:** Enable the button, save config, and clear cache. The Sub button is only available in Pick mode.

---

### Users are not appearing in the user management table or cannot be assigned

Admin users do not show up as assignable pickers/packers.

- **Cause:** The user has not been enabled for Pick-n-Scan in the user management table, or the user record is locked.
- **Check:** Stores > Configuration > Moogento > Pick-n-Scan > Set: User Management - confirm the user row shows **Enabled**.
- **Resolution:** Toggle the user to Enabled and save. If the user is locked (e.g. from a stale session), run `bin/magento moogento:picknscan --action=users:configure --username=USERNAME --auto-assignable=yes` to unlock and re-enable auto-assign for that user.

---

### Wrong product accepted during pick (barcode mismatch)

A scan that should have been rejected was accepted, or the correct barcode is being rejected.

- **Cause:** The product attribute selected for barcode scanning does not contain the correct barcode value for the product, or a second barcode attribute is conflicting.
- **Check:** Stores > Configuration > Moogento > Pick-n-Scan > Customise: Scanning Pages - verify **Attribute for: Product barcode scanning** points to the correct attribute. Check the product record in catalog to confirm the attribute has the expected value.
- **Resolution:** Correct the attribute selection or update the product's barcode attribute value. If you use both a primary and secondary barcode attribute, confirm neither attribute has overlapping values across different products.

---

## FAQs

<!-- seo: FAQPage schema - the page converter should emit JSON-LD for this section -->

## How do I start barcode pick and pack scanning in Magento 2 with Pick-n-Scan?

Go to Sales > Orders in your Magento admin, select the orders you want to pick, and click the **Pick** button that Pick-n-Scan adds to the grid. The scanning interface loads and guides your picker through each item in barcode sequence. See [Common setups](#set-up-a-pick-and-pack-workflow-from-scratch) for the full first-time configuration.

## How do I set up automatic order assignment to pickers?

Enable the auto-assign switch under Stores > Configuration > Moogento > Pick-n-Scan > Automate: Assign Orders to Users, then mark each eligible picker as Auto-Assignable in the User Management table. The cron runs every minute and distributes unassigned Processing orders to active users. See [Enable auto-assignment of orders to pickers](#enable-auto-assignment-of-orders-to-pickers) for step-by-step instructions.

## What happens if a picker can't find a product?

If the **Skip** button is enabled, the picker can skip that item - Pick-n-Scan records it and can set the order to an on-hold status for review. If the item has a suitable replacement, the **Sub** (substitute) button lets the picker swap it with an alternative product, with optional admin verification and price-limit controls.

## Does Pick-n-Scan work with PickPack for printing packing sheets?

Yes - when [PickPack](../pickpack) is installed, you can enable PDF print buttons directly in the scan screen (packing sheets, invoices, combined picklists, separated picklists). Enable them under Stores > Configuration > Moogento > Pick-n-Scan > Connect: Integrations > Integration with PickPack.

## Can different users pick and pack the same order?

Yes. By default (`All users: Can Pack all orders` = Yes), any enabled user can pack any unpicked or picked order. Set that field to No if you want to restrict packing to the picker who picked the order. The config is at `moogento_picknscan/settings/anyone_can_pack`.

## What is the Pick Pool and when should I use it?

The Pick Pool is a virtual staging queue - orders are assigned to "Pick Pool" before a real picker claims them. Use it in shared workstation environments where pickers self-select from a common queue rather than having orders pre-assigned by name. Manage it via `bin/magento moogento:picknscan --action=pick-pool:status`.

## Is Pick-n-Scan compatible with Hyvä, Luma, and Porto themes?

Pick-n-Scan is an admin-only module - it runs entirely inside the Magento backend and does not affect your storefront. It is compatible with all storefront themes including Hyvä, Luma, and Porto because no storefront code is modified.

## What happens when I disable Pick-n-Scan?

Disabling the module (`moogento_picknscan/settings/enable` = No) removes the Pick and Pack buttons from the orders grid and prevents access to the scanning interface. Order data already recorded (pick status, pack status, assigned users) is retained in the database and remains visible as grid columns. Re-enabling the module restores full functionality.

## How do I track individual picker and packer performance?

Go to Moogento > Pick-n-Scan > Stats: Picking or Stats: Packing (also available under Reports > Pick-n-Scan). Configure work hours, break times, and a target completion window under Stores > Configuration > Moogento > Pick-n-Scan > Stats page: Settings. The dashboard shows throughput and on-time rates per user.

## Which plan do I need for Pick-n-Scan?

Licensing is managed via your Moogento.com account. Visit **https://www.moogento.com > My Plugins** to review available plans and purchase a license. Feature availability per plan is detailed in the license documentation on that page.

---

## Related guides

- [PickPack](../pickpack) - print packing sheets, invoices, and picklists from the scan screen
- [StockEasy](../stockeasy) - manage stock levels that feed into Pick-n-Scan's available inventory
- **TrolleyBox** - extends Pick-n-Scan's pick pool and auto-assign flows for multi-trolley warehouse operations (guide coming soon)

---

## Need help?

- moo@moogento.com
- Include:
  - Magento version
  - Module name
  - What you're trying to do
