# Catalog

# Catalog Sync

# Catalog Sync

Spectre maintains a shared bowling catalog (balls, bags, shoes, accessories) and syncs it into your store so you don't have to add those products yourself. The sync runs automatically during your onboarding wizard and produces a stocked, ready-to-sell catalog within minutes.

## How the sync works

The catalog sync pulls products and their variations directly from the Spectre bowling database into your WooCommerce products table. It runs as a background job and writes a progress record so you can see where it is.

Each product is imported with:

- Title, description, and images
- Pricing
- **Barcode** in the `_global_unique_id` and `_upc` postmeta fields
- Variations (for variable products like balls available in multiple weights)
- Category and tag assignments

After the sync finishes, the WooCommerce product lookup table is rebuilt so search, filtering, and reports are fast on day one.

## When it runs

- **During onboarding.** Step 2 of the onboarding wizard kicks the sync off automatically.
- **After onboarding.** Spectre re-runs the sync periodically to pick up new products, price changes, and image updates.

You do not normally have to trigger the sync manually — it's a managed background process.

## Watching progress

Sync progress is stored in the `spectrepos_sync_progress` site option and updates as the job runs. The progress record includes:

- **status** — `idle`, `running`, `finished`, or `error`
- **current / total** — items processed so far
- **created / updated / skipped** — counters by action
- **step** — which phase the job is in
- **message** — the most recent status line

The onboarding wizard reads this same record and shows you a progress bar during step 2.

## Sync history

The last 20 sync runs are recorded in the `spectrepos_sync_history` site option, with the date and a summary of what changed (created, updated, skipped, reassigned, total). Your administrator can look back through this to see when changes landed and how many products each run touched.

## What if a product is missing

If a product you expected from the bowling catalog is missing, the most likely reasons are:

- The sync hasn't run since the product was added upstream.
- The product was created or updated in your store with the same barcode and Spectre skipped it to avoid overwriting your edit.

Wait for the next sync, or contact Spectre support and we'll re-run the import for the specific items you need.

## What if a sync errors out

If the sync `status` shows `error`, the `message` field has the most recent error line. The job is safe to re-run — Spectre's import is idempotent (the same barcode won't be imported twice as a duplicate). Contact support if errors persist across runs.

## Stock tracking

If you opted in to stock tracking during onboarding, the bowling catalog is bulk-enabled for stock management after the first sync. If you opted out, products are still imported but stock is not tracked — you can turn it on later per-product under **Products → (edit) → Inventory** (see *Managing Products*).

# Managing Products

# Managing Products

Spectre POS uses WooCommerce's standard Products screen. You can add a product manually, edit an existing one, set its barcode, and create variations (sizes, weights, colors). The bowling catalog is added for you by Spectre's *Catalog Sync* — this page covers the products you create or edit by hand.

## Open Products

In the WordPress admin sidebar, go to **Products → All Products**. You see the catalog list with name, SKU, stock, price, categories, and date.

## Add a product

1. Click **Add New** at the top of the Products list.
2. Enter the product **Name** and **Description**.
3. In the **Product data** panel, choose the product type:
   - **Simple product** for a single SKU.
   - **Variable product** when the product has variations (e.g. different shoe sizes).
4. Fill in:
   - **Regular price** (and **Sale price** if applicable)
   - **SKU** under the **Inventory** tab
   - **Tax class** and **Tax status** as needed
   - Categories and images on the right side
5. Click **Publish**.

## Set the barcode

Spectre POS scans barcodes against two postmeta fields:

- `_global_unique_id` — your primary barcode (UPC, EAN, or any unique scan code).
- `_upc` — a secondary fallback.

In the product editor, scroll to the **Inventory** tab and enter the barcode in the field provided. For **variable products**, set the barcode on each variation under the **Variations** tab — each variation has its own barcode metabox.

> **Tip:** A barcode must be unique. If two products share the same barcode, the scanner can't tell them apart and the cashier will see a search list instead of the product going straight into the cart.

## Variable products

For products that come in multiple sizes, weights, or colors:

1. Set the product type to **Variable product**.
2. Open the **Attributes** tab and add each attribute (e.g. "Size"). For each, tick **Used for variations** and **Visible on the product page**.
3. Open the **Variations** tab.
4. Use **Add variation** for each combination, or **Create variations from all attributes** to generate them in bulk.
5. For each variation, set **Price**, **SKU**, **Barcode**, and **Stock** if you track it.

## Inventory

Stock tracking is optional. Open the **Inventory** tab and tick **Manage stock?** to enable per-product stock counts. If you opted in during onboarding, the bowling catalog already has stock tracking enabled in bulk.

## Tips

- For the cashier app to show a product, it must be **Published**. Drafts and private products don't appear.
- Image and price changes show in the cashier app after the next sync (usually within a minute).
- Use **Categories** liberally — they make the product grid in the POS easier to browse.