# Configure Stock Sync

## What it is

The **Stock** tab in an app's management view is where you configure inventory sync for that integration. From here you turn stock sync on and off, choose how and when it runs, map your NetSuite locations to locations in your external system, and trigger an immediate sync at any time.

{% hint style="info" %}
**Stock tab vs. the Inventory page** The Stock tab (covered here) is where you *configure* how inventory syncs. The [Inventory](/idc/idc-core/inventory.md) page is a separate tool for *reviewing* variances between NetSuite and your warehouse after syncs have run. They work together but are different parts of the product.
{% endhint %}

## When you'd use it

Use this when you need to:

* Enable or disable inventory sync for an integration.
* Choose whether stock syncs on a schedule or in real time when a NetSuite transaction is saved.
* Map NetSuite locations to the corresponding locations in your external system.
* Trigger an immediate stock sync without waiting for the schedule.
* Adjust how stock quantities are calculated or rounded.

## Before you start

* You need integration admin access.
* The app must be installed and its credentials configured. See [Configure App Settings](/idc/idc-core/apps/app-settings.md).
* Know the names of your NetSuite locations and what they're called in your external system — you'll need these when setting up location mappings.

## Step by step

### Open the Stock tab

1. Click **Apps** in the left menu.
2. Find the app and click its **gear icon**. The app's management view opens.
3. Click the **Stock** tab in the menu bar at the top of the management view.

   ![The app management menu bar with the Stock tab highlighted](/files/dpP9ZoWXV4crC5fyYRXh)

### Configure the core settings

4. The Stock tab shows a settings table. Work through the key rows:

   * **Active** — the master on/off toggle for stock sync. Turn this on to enable syncing, off to pause it entirely. Next to the toggle, IDC shows the **Last Sync** time. Click **Edit** next to it if you need to manually adjust when IDC considers the last sync to have run (for example, to force a full re-sync from a specific date).
   * **Sync Filter** — controls which items are included in each sync run:
     * **Last Sync Time** — only items on transactions that have changed since the last sync ran.
     * **Today's Transactions** — only items on transactions from today (since 12:01 am).
     * **All** — all items that have a sync ID on their NetSuite item record.
   * **Sync Type** — choose how syncs are triggered:
     * **Scheduled** — syncs run automatically on a recurring schedule set in NetSuite.
     * **User Event** — syncs run in real time whenever a matching NetSuite transaction is saved (see step 6 for which transaction types to select).

   ![The Stock settings table showing Active toggle, Last Sync time, Sync Filter, and Sync Type](/files/XDjMmY00h9u6b6IsFkf7)

### Set up location mappings

5. Scroll down to **Stock Type & Location Mappings**. Each row maps one NetSuite location to the corresponding location in your external system.

   The table has a row for each location. The columns are:

   * **Enable** — checkbox to turn this location mapping on or off individually without deleting it.
   * **NetSuite Location** — select the NetSuite location from the dropdown.
   * **\[App Name] Location** — type the location name or ID exactly as it appears in your external system. The column header shows the integration's name (for example, "Lightspeed Location").
   * **Stock Types** — select which quantity type to sync for this location. Options: **Available**, **On Hand**, **On Order**, **Committed**, **Back Ordered**.
   * **Field Identifier** — an optional field for a custom identifier used by some integrations. Leave blank unless your integration admin specifies otherwise.

   Click **Add Location** to add a new row. When done, click **Save** to save your location mappings.

   ![The Stock Type and Location Mappings table showing location rows with Enable, NetSuite Location, external location, Stock Types, and Field Identifier columns](/files/q7QtmaRgT4SziHngWyA2)

### Configure User Event triggers (User Event sync type only)

6. If you set **Sync Type** to **User Event**, a **User Event Settings** section appears at the bottom of the page. Select the NetSuite transaction types that should trigger a stock sync when saved:

   * Inventory Adjustment
   * Inventory Transfer
   * Inventory Count
   * Item Receipt
   * Transfer Order
   * Purchase Orders
   * Enter Inventory Count
   * Sales Orders
   * Cash Sale (Standalone)
   * Invoice (Standalone)
   * Intercompany Transfer Orders

   Hold Ctrl (Windows) or Command (Mac) to select multiple types.

### Save and run

7. Click **Save** at the bottom of the page to save all your settings.
8. To run a stock sync immediately without waiting for the schedule, click **Run**. The sync starts in the background — check [Stock Logs](https://github.com/In8Sync2/IDC/blob/main/core/stock-logs.md) to monitor the result.

   Two additional buttons are also available at the bottom of the page:

   * **Schedule** — opens the NetSuite scheduled script deployment for this stock sync, where you set the sync interval.
   * **View Logs** — jumps to the Stock Logs page to see the history of recent sync runs.

## What success looks like

* **Active** is toggled on.
* Location mappings show the correct NetSuite and external system locations.
* After clicking **Run** (or after a scheduled sync), the **Last Sync** time updates and stock levels in your external system reflect the current NetSuite quantities.

## Common issues

* **Stock sync is enabled but nothing is syncing.** Check that at least one location mapping is set up and that the external location name is typed exactly as it appears in the external system.
* **All quantities in the external system are showing as zero.** Check the **Stock Types** column in your location mappings — you may be syncing **Available** quantity when all stock is committed. Try switching to **On Hand** for the affected location rows.
* **User Event sync isn't firing.** Confirm that the correct transaction types are selected in **User Event Settings**, and that **Sync Type** is set to **User Event** (not Scheduled).
* **Run button does nothing or returns an error.** Check that **Active** is toggled on and that your app credentials are still valid. See [Configure App Settings](/idc/idc-core/apps/app-settings.md).

## Related

* [Configure App Settings](/idc/idc-core/apps/app-settings.md) — set up credentials before configuring stock sync.
* [Configure Triggers](/idc/idc-core/apps/triggers.md) — set the schedule for the stock export flow if using Scheduled sync type.
* [Inventory](/idc/idc-core/inventory.md) — review stock variances between NetSuite and your external system.
* [Logs](/idc/idc-core/logs.md) — check sync run history and investigate errors.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.in8sync.com/idc/idc-core/apps/stock-sync.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
