# dashboard

## Dashboard Page Overview

Your app will come with a settings page where users can update their personal information, including email and password. This page includes other pre-built features that you will have to customize for your app:

### Profile tab

You can add more fields to the profile tab by reducing the size of the placeholder group (Group Nav Tab 1 PLACEHOLDER) in this tab.

![](/files/-LaSR8vwncdG2I1DVv7M)

### Login credentials tab

![](/files/-LaSR8vysussVQF1ZFcP)

### Payments tab

The payments tab includes two subtabs for Payment Method and Payment History. You can add more content by reducing the size of the placeholder groups within the subtab groups.

![](/files/-LaSR8w-3CPFH3-UmYwD)

### Notification settings tab

This tab includes UI for toggling notifications on/off. There is no actual logic behind this, so you will need to set up the workflows on this tab if you want to use it.

![](/files/-LaSR8w1JQLMvv05YhJW)

### Adding additional tabs to the settings page

* Go to the settings page in the Bubble Editor and unhide `Group Nav 6/7/or 8` by checking `This element is visible on page load.` Set the data source of the tab group to the name of the tab.

![](/files/-LaSR8w3GDIahj3mpEen)

* If you want to create a new tab, copy an existing tab and rename the group. Then reduce the size of `Group PLACEHOLDER (do not delete)`, adding your new group in the space created.
* Go to the conditional tab of the group and add the following conditional statement: `If var - tab url parameter's text is Group Nav 6/7/or 8's text` *then* `this group is visible`

## Key Workflows

#### Page is loaded and Current User’s Newly registered? is “yes”

* Navigates the user to the **products** tab
* This only occurs after a user has gone through the **Stripe Register As Seller** flow

#### Button Save Changes (Product) is clicked

* Creates a new `Product` if the parent group’s product is empty, which is only the case when creating a new product
  * Sets the `Total sold` field to **0**
* Triggers the `Save product` custom workflow

#### Button Add Image is clicked

* Creates an `Image` instance and adds it to the `Images` state of `Group Product Image Uploader`
* If the product does not have a primary image - which should only be the case when initially creating a product or if you’ve deleted every existing product - then the newly created `Image` will be marked as the primary image
* The new `Image(s)` are not saved to the `Product` until the Save Changes button is pressed from the edit product form

#### Group Add New Product is clicked

* Primes the new/edit product form by resetting several states and the overall group

#### Group Nav - Register As Seller is clicked

* Redirects the user to a Stripe-powered form that allows the user to sign up or connect a **Stripe** account for the purpose of registering their account as a **Stripe Seller**
* After registering, the user will be redirected back to the **products** tab on the dashboard and will now have the ability to add `Products` and receive payments for order
* The user’s `Stripe Seller account ID property` should now be populated

#### Save product \[Custom workflow]

* Updates the product with the inputted values from the edit product form
* When saving the `Image primary` and `Images` we refer to the `Image primary`  and `Image` states on `Group Product Image Uploader`

## Key Elements

#### RepeatingGroup Products (number) <a href="#repeatinggroup-listings-number" id="repeatinggroup-listings-number"></a>

#### RepeatingGroup Products SOURCE (Hidden) <a href="#repeatinggroup-listings-source-hidden" id="repeatinggroup-listings-source-hidden"></a>

#### RepeatingGroup Orders (Seller)

* Contains the list of `Orders` for which the user is the `Listing owner`
* This group will only contain data for registered sellers who have had a least one `Order` for their product(s)
* Users can click to show the [order confirmation modal](/product-marketplace-template/assets/reuseables/order-confirmation.md)

#### RepeatingGroup Orders (Buyer)

* Contains the list of `Orders` for which the user is the `Customer`
* This group contains basic information about the order such as the price, date, and quantity
* Users can click to show the [order confirmation modal](/product-marketplace-template/assets/reuseables/order-confirmation.md)

#### RepeatingGroup Images <a href="#repeatinggroup-images" id="repeatinggroup-images"></a>

* Contains the list of `Images` for the product
* Populated from the `Images` state on `Group Product Image Uploader`

#### [Order Confirmation](/product-marketplace-template/assets/reuseables/order-confirmation.md)


---

# 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.airdev.co/product-marketplace-template/assets/pages/dashboard.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.
