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.
In Neuro, turn on Download Products for the Inventory Planner plugin (see Setup From the Neuro UI).
Neuro will pull your product catalog from Inventory Planner into Neuro as plugin products and link them to main products (by SKU).
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.
Create your main products in Neuro (under Products).
In Neuro, turn on Add Products to Inventory Planner for the Inventory Planner plugin (see Setup From the Neuro UI).
Neuro will create or update products in Inventory Planner and create plugin products in Neuro linked to those main products.
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
Log in to Neuro.
Go to Stores and select your store.
Open the Plugins tab.
Click Add Plugin (or similar) and choose Inventory Planner.
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.
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:
Recommendation:
For order sync, ensure products are linked using either Download Products or Add Products as described in Important: Products Must Be Linked for Orders to Sync.
Turn Push Orders to Plugin ON if you want orders to be sent to Inventory Planner.
Step 4: Save and Check
Click Save.
Check Transaction Records (or Logs) for the plugin to see if orders and product syncs are running without errors.
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_URLwith 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:
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:
GETURL:
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:
GETURL:
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 isassembly.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:
POSTURL:
https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrdersBody (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:
PATCHURL:
https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345Body:
{"status": "CLOSED", "expected_date": "2025-02-20"}
5. List Stock Order Items
GET/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/items
Example:
Method:
GETURL:
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:
GETURL:
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 withidand optionalreceived(and other fields as per Inventory Planner).skip_background_jobs– Optional boolean.
Example:
Method:
PATCHURL:
https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/itemsBody:
{"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 withidand optional fields such asreceived.
Example:
Method:
PATCHURL:
https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/items/item-1Body:
{"item": {"id": "item-1", "received": 30}}
9. List Stock Order Connections
GET/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/{stockOrderId}/connections
Example:
Method:
GETURL:
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:
GETURL:
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:
PUTURL:
https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/connections/shopifyBody:
{"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:
GETURL:
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 withitemsarray. Each item:id,delta,stock_before.forDst– Optional boolean.
Example:
Method:
POSTURL:
https://YOUR_NEURO_BASE_URL/api/v1/plugins/{plugin_uuid}/inventoryPlanner/stockOrders/po-12345/stock-updateBody:
{"stock_update": {"items": [{"id": "item-1", "delta": 25, "stock_before": 75}]}, "forDst": true}
Postman Tips
Create an Environment with variables:
base_url= your Neuro base URLplugin_uuid= your Inventory Planner plugin UUIDapi_token= your Neuro API token
Set the request URL to:
{{base_url}}/api/v1/plugins/{{plugin_uuid}}/inventoryPlanner/...In Headers, set:
Authorization:Bearer {{api_token}}Accept:application/jsonContent-Type:application/jsonfor POST/PATCH/PUT
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
Last updated: January 2026