> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gamecart.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure product delivery commands

> Set the commands Gamecart sends when a product reaches a delivery trigger

Product commands tell Gamecart what to send to a server integration after a purchase event.

## Add a command to a product

<Steps>
  <Step title="Open the product">
    Open **Products** in the dashboard. Create a product or edit an existing one.
  </Step>

  <Step title="Add a command">
    Find **Commands** and select **New command**.
  </Step>

  <Step title="Choose when it runs">
    Select **On Purchase**, **On Expiration**, or **On Dispute**, based on when the command should run.
  </Step>

  <Step title="Select the target server">
    Choose the server integration that should receive the command.
  </Step>

  <Step title="Write the console command">
    Enter the command exactly as the target server expects it. Do not add a leading slash unless that runtime specifically requires one.
  </Step>

  <Step title="Set delivery behavior">
    Enable **Offline delivery** if the command may run while the player is offline. Enable **Ignore quantity** if it should run once even when the buyer purchases more than one unit.
  </Step>

  <Step title="Save the product">
    Save the product to apply the command configuration.
  </Step>
</Steps>

<Frame caption="Add a command, choose its trigger and server, then enter the console command.">
  <img src="https://mintcdn.com/gamecart-acec9933/Dq0cBp0LrLW7eLct/images/tutorials/server-delivery/product-commands.png?fit=max&auto=format&n=Dq0cBp0LrLW7eLct&q=85&s=5fd838eff5d301e72ff768d850c73f49" alt="Product command editor with the new command action and configured delivery row highlighted" width="1120" height="430" data-path="images/tutorials/server-delivery/product-commands.png" />
</Frame>

## Understand triggers and quantity

* **On Purchase** queues the command after the payment is approved.
* **On Expiration** is scheduled after the payment is approved only when the purchased item has an expiration date.
* **On Dispute** also covers refund, rejection, cancellation, and dispute payment outcomes.
* **Ignore quantity** queues the command once. When it is disabled, Gamecart queues one command for each purchased unit.

## Use the recipient placeholder

Use `{account_identifier}` where the command needs the buyer's delivery identity.

```text theme={"dark"}
lp user {account_identifier} parent add vip
```

`{account_identifier}` contains the recipient value collected at checkout. Its label and validation depend on your store's game configuration. Seller-created variables can collect other checkout information, but they cannot replace the delivery identifier.

<Tip>
  Use the placeholder help in **Commands** to review the available placeholders before saving a command.
</Tip>
