Inventory Planner

Last updated 4 days ago

A simple guide to setting up the Inventory Planner plugin in Neuro, understanding how orders and products sync, and using the Stock Orders API (passthrough endpoints).

Who is this for? Store managers, operations staff, and anyone who uses Neuro with Inventory Planner. No technical background required for the setup section.


What the Inventory Planner Plugin Does

The Inventory Planner plugin in Neuro lets you:

  • Push orders from Neuro to Inventory Planner (so they appear in Inventory Planner for fulfillment).

  • Sync products between Neuro and Inventory Planner (so both systems use the same product catalog).

  • Sync stock levels so inventory in Neuro stays in sync with Inventory Planner.

  • Use the Stock Orders API (purchase orders, transfers, etc.) through Neuro using passthrough endpoints.

To do all of this, the plugin must be set up correctly in Neuro and your products must be linked (see next section).


Important: Products Must Be Linked for Orders to Sync

For orders in Neuro to sync to Inventory Planner, every product on the order must be a “main product” in Neuro that is linked to an Inventory Planner “plugin product.”

  • Main product = the product in Neuro (under Products).

  • Plugin product = the same product as stored for the Inventory Planner plugin (under Stores → Plugins → [Your IP Plugin] → Products).

If a product on an order is not linked (no plugin product linked to the main product), that order line cannot be sent to Inventory Planner correctly, and the order may not sync or may show as “missing order items.”

You have two ways to create and link products:


Option A: Bring Your Catalog From Inventory Planner Into Neuro (Download Products)

Use this when your product catalog already lives in Inventory Planner and you want Neuro to use it.

  1. In Neuro, turn on Download Products for the Inventory Planner plugin (see Setup From the Neuro UI).

  2. Neuro will pull your product catalog from Inventory Planner into Neuro as plugin products and link them to main products (by SKU).

  3. Make sure you have main products in Neuro with the same SKUs as in Inventory Planner (or let Neuro create them if your setup does that). Once linked, orders that use those products can sync to Inventory Planner.

In short: Download Products = “Copy my Inventory Planner product catalog into Neuro and link it to my main products.”


Option B: Send Your Neuro Products to Inventory Planner (Add Products)

Use this when your main product catalog lives in Neuro and you want Inventory Planner to have the same products.

  1. Create your main products in Neuro (under Products).

  2. In Neuro, turn on Add Products to Inventory Planner for the Inventory Planner plugin (see Setup From the Neuro UI).

  3. Neuro will create or update products in Inventory Planner and create plugin products in Neuro linked to those main products.

  4. Once linked, orders that use those products can sync to Inventory Planner.

In short: Add Products = “Send my Neuro products to Inventory Planner and keep them linked so orders can sync.”


Summary for order sync

  • Orders in Neuro sync to Inventory Planner only when each product on the order is a main product that is linked to an Inventory Planner plugin product.

  • Use Download Products to bring the catalog from Inventory Planner into Neuro and link it, or use Add Products to push your Neuro catalog to Inventory Planner and link it. Both ways achieve the linking you need for order sync.

This same requirement applies when using the API: any automation or integration that sends orders (or relies on order sync) should ensure products are linked in Neuro as described above.


Setup From the Neuro UI

Follow these steps in Neuro to add and configure the Inventory Planner plugin.

Step 1: Open Your Store and Add the Plugin

  1. Log in to Neuro.

  2. Go to Stores and select your store.

  3. Open the Plugins tab.

  4. Click Add Plugin (or similar) and choose Inventory Planner.

  5. Give the plugin a name (e.g. “My Inventory Planner”) and save if prompted.

Step 2: Fill In Connection Details

In the plugin form you will see these fields. Fill them in as you get the information from Inventory Planner and your IT or admin.

FieldWhat to enterWhere to get it

SFTP Endpoint

The full SFTP address for file uploads (e.g. sftp://your-host/path)

Inventory Planner SFTP / integration settings

Account ID

Your Inventory Planner account identifier

Inventory Planner account or API settings

Access Token

Your Inventory Planner API token

Inventory Planner API / integration settings

Warehouse ID

The warehouse code used in Inventory Planner

Inventory Planner warehouse list

Vendor ID

The default vendor code (if you use one)

Inventory Planner vendor list

SSH key (for SFTP):
Neuro may show a Copy Public SSH Key button. Copy this key and add it in Inventory Planner’s SFTP settings so Neuro can upload files (e.g. orders, product data) to your SFTP path.

Step 3: Order and Product Settings

Use these switches to control what the plugin does:

SettingWhat it does

Push Orders to Plugin

When ON, Neuro sends orders to Inventory Planner.

Exclude Unfulfillable Orders

When ON, orders with items that don’t have enough stock in the plugin are excluded from sync.

Deduct Stock via Orders

When ON, Neuro deducts stock when orders are sent to the plugin.

Add Products to Inventory Planner

When ON, Neuro pushes your main products to Inventory Planner and keeps plugin products linked (use this to link products for order sync if your catalog lives in Neuro).

Download Products

When ON, Neuro downloads your product catalog from Inventory Planner and links them to main products (use this to link products for order sync if your catalog lives in Inventory Planner).

Auto Sync Stock

When ON, Neuro syncs stock levels between the plugin and your main products.

Allow Order Split

When ON, orders can be split into multiple shipments when needed.

Recommendation:

Step 4: Save and Check

  1. Click Save.

  2. Check Transaction Records (or Logs) for the plugin to see if orders and product syncs are running without errors.

  3. In Stores → [Your Store] → Plugins → [Inventory Planner] → Products, confirm that plugin products are present and linked to main products for the items you sell.


Passthrough API Endpoints (Postman-Style Reference)

The following endpoints pass your request through to Inventory Planner’s Stock Orders API. Neuro forwards the request to Inventory Planner using the plugin’s Account ID and Access Token.

You must set Account ID and Access Token in the plugin (in the UI) for these endpoints to work.

Base URL pattern:
https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner

Replace:

  • YOUR_NEURO_BASE_URL with your actual Neuro URL (e.g. https://app.heyneuro.io).

  • {plugin_uuid} with your Inventory Planner plugin’s UUID (you can find it in the Neuro UI when you open the plugin, or in the plugin list).

Headers for every request:

HeaderValue

Authorization

Bearer YOUR_NEURO_API_TOKEN

Accept

application/json

Content-Type

application/json (for POST, PATCH, PUT)

Order sync reminder (for API users):
For orders in Neuro to sync to Inventory Planner, main products must be linked to plugin products. Use Download Products to pull the catalog from Inventory Planner into Neuro, or Add Products to push Neuro products to Inventory Planner. See Important: Products Must Be Linked for Orders to Sync.


1. List Stock Orders

GET
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders

Query parameters (examples):

  • page_no – Page number (e.g. 1).

  • page_size – Items per page (e.g. 20).

  • status – Filter by status.

  • warehouse – Filter by warehouse.
    (Other filters may be supported by Inventory Planner; pass them as query params.)

Example (Postman-style):

  • Method: GET

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders?page_no=1&page_size=20


2. Get One Stock Order

GET
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}

Example:

  • Method: GET

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345


3. Create Stock Order

POST
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders

Body (JSON):

  • warehouse (required) – Target warehouse ID.

  • source_warehouse – Required when type is assembly.

  • type – e.g. po, transfer, assembly.

  • status – e.g. OPEN, CLOSED.

  • reference – Your reference number.

  • vendor – Vendor ID (for PO type).

  • expected_date – Date (e.g. YYYY-MM-DD).

  • connections – Array of connection objects.

  • variants_filter – Filter for variants.

  • items – Array of line items (id, sku, title, replenishment, components, etc.).

Example (Postman):

  • Method: POST

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders

  • Body (raw JSON):

{
  "warehouse": "WH-001",
  "type": "po",
  "status": "OPEN",
  "reference": "PO-2025-001",
  "vendor": "VENDOR-001",
  "expected_date": "2025-02-15"
}

4. Update Stock Order

PATCH
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}

Body (JSON):

  • status – e.g. OPEN, CLOSED.

  • reference – Reference number.

  • expected_date – Date (e.g. YYYY-MM-DD).

Example:

  • Method: PATCH

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345

  • Body: {"status": "CLOSED", "expected_date": "2025-02-20"}


5. List Stock Order Items

GET
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/items

Example:

  • Method: GET

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/items


6. Get One Stock Order Item

GET
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/items/{itemId}

Example:

  • Method: GET

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/items/item-1


7. Update Stock Order Items (Bulk)

PATCH
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/items

Body (JSON):

  • items – Array of objects with id and optional received (and other fields as per Inventory Planner).

  • skip_background_jobs – Optional boolean.

Example:

  • Method: PATCH

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/items

  • Body: {"items": [{"id": "item-1", "received": 25}, {"id": "item-2", "received": 50}]}


8. Update One Stock Order Item

PATCH
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/items/{itemId}

Body (JSON):

  • item – Object with id and optional fields such as received.

Example:

  • Method: PATCH

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/items/item-1

  • Body: {"item": {"id": "item-1", "received": 30}}


9. List Stock Order Connections

GET
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/connections

Example:

  • Method: GET

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/connections


10. Get One Connection

GET
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/connections/{connection}

Example:

  • Method: GET

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/connections/shopify


11. Update Connection

PUT
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/connections/{connection}

Body (JSON):

  • connection – Object with settings (e.g. save_po).

Example:

  • Method: PUT

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/connections/shopify

  • Body: {"connection": {"save_po": true}}


12. Get Stock Update

GET
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/stock-update

Query params:

  • forDst – Optional boolean (e.g. include destination stock).

Example:

  • Method: GET

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/stock-update?forDst=true


13. Push Stock Update

POST
/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/stock-update

Body (JSON):

  • stock_update – Object with items array. Each item: id, delta, stock_before.

  • forDst – Optional boolean.

Example:

  • Method: POST

  • URL: https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/stock-update

  • Body: {"stock_update": {"items": [{"id": "item-1", "delta": 25, "stock_before": 75}]}, "forDst": true}


Postman Tips

  1. Create an Environment with variables:

    • base_url = your Neuro base URL

    • plugin_uuid = your Inventory Planner plugin UUID

    • api_token = your Neuro API token

  2. Set the request URL to:
    {{base_url}}/api/v1/plugins/{{plugin_uuid}}/inventoryPlanner/...

  3. In Headers, set:

    • Authorization: Bearer {{api_token}}

    • Accept: application/json

    • Content-Type: application/json for POST/PATCH/PUT

  4. For endpoints that use SFTP/CSV (e.g. warehouse, vendor, variant uploads), the existing backend docs describe the request body format; the passthrough section above covers only the Stock Orders passthrough endpoints.


Quick Troubleshooting

IssueWhat to check

Orders not syncing to Inventory Planner

Ensure Push Orders to Plugin is ON and that every product on the order is a main product linked to an Inventory Planner plugin product (use Download Products or Add Products as in Important: Products Must Be Linked for Orders to Sync).

“Missing order items” or similar

Same as above: link main products to plugin products and ensure SKUs match where relevant.

Stock Orders API returns errors

In the Neuro UI, confirm the plugin has Account ID and Access Token set and that the token is valid in Inventory Planner.

CSV/SFTP uploads not appearing in Inventory Planner

Check SFTP Endpoint format, add Neuro’s Public SSH Key in Inventory Planner SFTP settings, and check Transaction Records for the plugin for upload errors.

Plugin not found (404) when calling API

Verify the URL uses the correct plugin_uuid and that the plugin is Active in Neuro.


Last updated: January 2026