# Product Attachment

A button that downloads or opens a file linked from a product field — spec sheets, datasheets, manuals, certificates, anywhere a product has an attachment URL stored on its record.

The button reads any field on the product that contains a URL (standard fields like description, or custom fields you've added in NetSuite for attachments). When the user clicks, the file downloads with a sensible filename, or opens in a new tab if you've configured it that way.

## Available in

* Catalog modules
* Order Form modules

## When to use

* Product detail pages where you want a *Download Spec Sheet* or *View Datasheet* button.
* B2B catalogs with rich product documentation (PDFs, technical drawings, certifications).
* Product cards inside a Catalog Display slot to surface a quick-access file link.

For static images, use **Product Image** instead. For copy-to-clipboard text behaviour, use **Product Field Copy** (a small variant of Product Field).

## What it depends on

The **Attachment Field** picker only lists fields that are mapped in the catalog's **NetSuite Fields** section. If the custom field holding your attachment URL isn't in that list, add it there first: **Catalogs** → open the catalog → **NetSuite Fields** → **+ Add Field** → pick the field → Save & Update. It will then appear in the Attachment Field dropdown for this block.

## Settings

| Setting               | Description                                                                                                                                                                    |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Attachment Field**  | The product field that holds the file URL. Pick from standard fields (Product Name, Item ID, Description) or any custom field mapped in the catalog's NetSuite Fields section. |
| **Link Label**        | The button label users see (e.g. *Download Spec Sheet*).                                                                                                                       |
| **Download Filename** | Override the auto-generated filename. Leave blank to use *-* as the filename.                                                                                                  |
| **Use Matrix Child**  | For matrix parent products, use the selected child variant's field instead of the parent's. *true* / *false*.                                                                  |
| **Open in New Tab**   | Open the file in a new browser tab instead of downloading. *true* / *false*.                                                                                                   |

## How it works

1. Reads the configured field from the current product (or the selected matrix child if *Use Matrix Child* is on).
2. If the value is a valid URL, renders a button labelled with **Link Label**.
3. On click, either downloads the file (cross-origin URLs are fetched and saved client-side) or opens the URL in a new tab, depending on **Open in New Tab**.
4. If the field is empty or not a valid URL, the block doesn't render — keeping the page clean.

## Examples

**Spec sheet button.** Field: *custitem\_spec\_sheet\_url*, Link Label: *Download Spec Sheet*, Open in New Tab: false. Renders a download button for any product that has a spec-sheet URL.

**Open in new tab.** For HTML datasheets that look better in a browser than downloaded, set *Open in New Tab* to true and Link Label to *View Datasheet*.

## Related

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Product Field</strong></td><td>Display any product field as inline text or styled output.</td><td><a href="/pages/CmCrwau8ZNjfB17FA7f3">/pages/CmCrwau8ZNjfB17FA7f3</a></td></tr><tr><td><strong>Product Image</strong></td><td>Render a product image with size and zoom controls.</td><td><a href="/pages/QTZjehmyyA79i3Wkw0gc">/pages/QTZjehmyyA79i3Wkw0gc</a></td></tr></tbody></table>


---

# 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.in8sync.com/client-admin-guide/active-workflows/getting-started/product-components/product-attachment.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.
