> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ordergroove.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ordergroove.com/_mcp/server.

# Debugging with Redux

The Subscription Manager (SM) uses a Redux store to manage the state of the customer's subscriptions and orders. If you are making custom changes to the SM, checking the Redux store directly may help with debugging or understanding the objects being used.

***

## Requirements

This guide is for developers already working on customizations to their SM.

***

## Install Redux DevTools

First, install a browser extension that gives you insight into the Redux store. Redux DevTools is available for [Chrome](https://chromewebstore.google.com/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd?hl=en) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/reduxdevtools/).

***

## Inspect the Subscription Manager

With Redux DevTools installed, navigate to the Subscription Manager on your store and open the browser inspector. Then navigate to the new **Redux** tab.

The image below shows what you should see. Make sure the Store selector has **Ordergroove SMI** selected.

The left panel shows all actions being dispatched. You can take different actions in the SM and see the corresponding Redux actions in real time. The right panel shows the state at the end of each action — this state reflects the exact objects available to Subscription Manager templates by default. For example, typing `{{ orders }}` in a template accesses the `orders` key from the Redux state.

In the image above, the first visible actions are all for loading the Subscription Manager, so the state after each may be minimal. To check the final state after load, scroll to the bottom of the action list and click the last action.

***

## How to Use Redux

### Checking Available Objects and Properties

If you're building custom features for the Subscription Manager, you may be accessing objects and their properties in ways that differ from the base template. Reviewing the state after the SM loads lets you see exactly what is available and determine how different objects can be connected together for your custom experience. There may also be properties we haven't used in the base template that will be useful for your use case.

### Debugging Errors

If your Subscription Manager is having difficulty loading after a customization, you may be accessing properties or objects that don't exist. The state preview lets you verify exactly what objects and properties are available.

If you create custom JavaScript functions that trigger actions in Ordergroove — such as the functions covered in the [REST APIs guide](/docs/lifecycle/sm/rest-apis#option-2---leverage-the-existing-api-calls-via-windowogsmi) — you may find it helpful to check the expected action in the Redux store and confirm the expected inputs are being passed to it in the **Action** tab on the right panel, based on actions that run successfully in the base template.