# VirtueMart Configuration

### Create new order status

Stripe allows to release partially refund while VirtueMart doesn't have such order status by default. We need to create new status.

Go to VirtueMart > any page and click on arrow icon to open sidebar for additional links (sidebar is closed by default).

<figure><img src="https://norrnext.com/images/docs/vm-stripeco10.png" alt=""><figcaption><p>Open sidebar to get extra menu</p></figcaption></figure>

Open extra menu with menu items by clicking on Arrow icon (sidebar is closed by default) and go to Configuration > Order Statuses.

<figure><img src="https://norrnext.com/images/docs/vm-stripeco8.png" alt=""><figcaption><p>Proceed to Order Statuses and create a new status</p></figcaption></figure>

Type `Partially Refunded` name and do not forget to add **Order Status Code**. It might be any non-taken letter (e.g. E).&#x20;

<figure><img src="https://norrnext.com/images/docs/vm-stripeco9.png" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you use Stripe Checkout, then you also need to add `Payment Unpaid` status too.
{% endhint %}

### Payment Method Information <a href="#id-4-1-general-options-tab" id="id-4-1-general-options-tab"></a>

Go to `Payment Methods` and edit your **Stripe** method and open **Payment Method Information** tab:

<figure><img src="https://norrnext.com/images/docs/vm-stripeco5.png" alt=""><figcaption><p>VirtueMart - Payment Method Information</p></figcaption></figure>

Type name of Stripe payment method which will be displayed at the front-end (e.g. "Stripe" or "Pay via Debit/Credit cards").  &#x20;

### Configuration <a href="#id-4-6-payment-method-options-tab" id="id-4-6-payment-method-options-tab"></a>

<figure><img src="https://norrnext.com/images/docs/vm-stripeco6.png" alt=""><figcaption><p>VirtueMart - Stripe payment method configuration</p></figcaption></figure>

* **Sandbox Mode** - If Sandbox Mode is enabled, no real money are transferred. Sandbox is used to test the payments.
* **Debug** - if enabled, all transactions will be logged.
* **Payment Intent Description** - allows to set custom payment intent description. Use {ORDER\_NR} constant to pass the order number.

#### **Order Statuses**

* **Payment Completed** - Select the order status that will be applied based on successfull payment transaction result. By default it is *Completed*
* **Payment Failed** - Select the order status that will be applied based on failed payment or error during transaction processing. By default it is *Cancelled*.
* **Payment Cancelled** - Select the order status that will be applied based on cancelled payment or error during transaction processing. By default it is *Cancelled*.
* **Payment Unpaid** - Select the order status that will be applied based on unpaid payment or error during transaction processing. By default it is *Confirmed*. *This parameter appears in Stripe Checkout plugin only*.
* **Payment Refunded** - Select the order status that will be applied based on refunded payment or error during transaction processing. By default it is *Refunded*.
* **Payment Partially Refunded** - Select the order status that will be applied based on partially refunded payment or error during transaction processing. By default it is *Refunded*. Please select *Partially Refunded.*

#### **API Keys**

<figure><img src="https://norrnext.com/images/docs/vm-stripeco7.png" alt=""><figcaption><p>API Keys and Webhook settings</p></figcaption></figure>

* **Elements Layout** - `Tabs` / `Accordion`. *This parameter is available in Stripe plugin only (not in Stripe Checkout).*
* **Elements Theme** - `Stripe` / `Flat` / `Night`.  *This parameter is available in Stripe plugin only (not in Stripe Checkout).*
* **Publishable Key** - Set your Publishable Key. You can find it in **Stripe Dashboard > Developers > API keys**.
* **Secret Key** - Set your Secret Key. You can find it in **Stripe Dashboard > Developers > API keys**.
* **Webhook Secret** - Set your Webhook Signing Secret. You can find it in **Stripe Dashboard > Developers > Webhooks**.
* **Webhook URL** - a URL to paste in Stripe dashboard.

Example of Stripe plugin:

`https://yoursite.com/index.php?option=com_virtuemart&view=pluginresponse&task=pluginnotification&tmpl=component&pm=7`

Where is *mysite.com* - set up your domain and correct `pm=` parameter taken from your site and make sure you have a valid SSL certificate. You need to copy this URL and paste it in Stripe dashboard > [Webhooks](https://docs.norrnext.com/stripe-for-virtuemart/stripe-configuration/webhooks).

{% hint style="info" %}
API keys are required fields to save the configuration. Fill them if even you are going to use sandbox mode.
{% endhint %}

**API Test Keys**

* **Test Publishable Key** - Set your test Publishable Key. You can find it in Stripe Dashboard.
* **Test Secret Key** - Set your test Secret Key. You can find it in Stripe Dashboard.
* **Test Webhook Secret** - Set your Webhook Signing Secret. You can find it in Stripe Dashboard > Developers > [Webhooks](https://dashboard.stripe.com/account/webhooks).


---

# 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.norrnext.com/stripe-for-virtuemart/virtuemart-configuration.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.
