---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../../modules.md) / [operations/code](../index.md) / downloadCartridges

# Function: downloadCartridges()

> **downloadCartridges**(`instance`, `outputDirectory`, `options`): `Promise`\<[`DownloadResult`](../interfaces/DownloadResult.md)\>

Defined in: [packages/b2c-tooling-sdk/src/operations/code/download.ts:278](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/operations/code/download.ts#L278)

Downloads cartridges from an instance via WebDAV.

When `include` specifies cartridges, each is downloaded individually using
per-cartridge server-side zipping for efficiency. When downloading all
cartridges (no include filter), the entire code version is zipped at once.

If `instance.config.codeVersion` is not set, attempts to discover the active
code version via OCAPI. If that also fails, throws an error.

## Parameters

### instance

[`B2CInstance`](../../../instance/classes/B2CInstance.md)

B2C instance to download from

### outputDirectory

`string`

Directory to extract cartridges into

### options

[`DownloadOptions`](../interfaces/DownloadOptions.md) = `{}`

Download options (filters, mirror)

## Returns

`Promise`\<[`DownloadResult`](../interfaces/DownloadResult.md)\>

Download result with cartridge names and metadata

## Throws

Error if code version cannot be determined or download fails

## Example

```typescript
// Download all cartridges
const result = await downloadCartridges(instance, './output');

// Download specific cartridges (efficient per-cartridge download)
const result = await downloadCartridges(instance, './output', {
  include: ['app_storefront_base'],
});

// Mirror to local project locations
const mirror = new Map([['app_storefront_base', '/project/cartridges/app_storefront_base']]);
const result = await downloadCartridges(instance, '.', { mirror });
```
