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

# Build advanced checkout URLs

> Create custom Firmhouse Checkout URLs that pre-load multiple products, plans, and quantities so customers land on a ready-to-complete checkout.

Learn how to create links that lead to a checkout containing several products at the same time.

This article is for you if you want to create links that checkout or add multiple products to the cart at the same time. With the click of a button, you can add several products to the cart at the same time, checkout to a plan and one or more products, or checkout to several products at the same time.

To achieve this, you can use several powerful URL parameters. These work both on the checkout and the cart.

## Checkout to One or Several Products

```
products={product-slug}
```

Creates a checkout containing exactly the specified products. Quantity is always 1.

**Example:**

```
https://yourcheckouturl.com?products=honey-cookie-box,vanilla-strawberry-bar-box
```

This would create a checkout consisting of 1x Honey Cookie Box and 1x Vanilla Strawberry Bar Box.

## Checkout to One or Several Products and Set the Quantity

```
ordered_products[{id_number}]={quantity}
```

Creates a checkout containing exactly the specified products and offers a possibility to add quantity.

**Example:**

```
https://yourcheckouturl.com?ordered_products[15]=2&ordered_products[16]=3
```

This uses product IDs instead of slugs. You can find the ID next to the product name in the product overview (click on "Products" in the sidebar).

The URL above would checkout to 2x product with the ID 15 and 3x product with the ID 16.

## Add One or Several Products to the Cart

```
add_products={slug}
```

This is very useful if you are using a cart. It adds the desired products to the cart with a quantity of 1. Note that the quantity can always be adjusted by the customer.

**Example:**

```
https://yourcheckouturl.com/cart?add_products=toaster,microwave
```

This adds a toaster and a microwave to the cart.

## Add One or Several Products to the Cart and Set the Quantity

```
add_ordered_products[{id_number}]={quantity}
```

This is very useful if you are using a cart and want to set quantities.

**Example:**

```
https://yourcheckouturl.com/cart?add_ordered_products[15]=2&add_ordered_products[16]=3
```

This uses product IDs instead of slugs. You can find the ID next to the product name in the product overview (click on "Products" in the sidebar).

The URL above would add 2x product with the ID 15 and 3x product with the ID 16.

## Checkout to a Plan

```
plan=[plan-name]
```

This is only relevant if you are relying on plans. The plan slug can be used in combination with any of the slugs above.

**Add a plan and a product (with a quantity) to the cart:**

```
https://yourcheckouturl.com/cart?plan=standard&add_ordered_products[15]=2
```

**Checkout to a plan and two products:**

```
https://yourcheckouturl.com?plan=standard&products=toaster,microwave
```

Note that only one plan can be checked out to at the same time.

## Add Pre-filled Value for Extra Field

If you would like to have a value appear in one of the extra fields automatically when a customer opens the Checkout, you can add a URL parameter in the URL bar in the `extra_fields` attribute as a key/value combination. It is important to use the lowercased name of the extra field as the key in the `extra_fields` attribute.

Be aware that this still allows the customer to remove or edit the value on the Checkout form itself. You can potentially hide the field via custom JS or CSS if you do not want your customer to see or edit the field directly in the user interface.

**Example:**

```
https://yourcheckouturl.com?extra_fields[tracking_code]=11ad234f
```
