> For the complete documentation index, see [llms.txt](https://orbit-b2b.gitbook.io/orbit-b2b-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://orbit-b2b.gitbook.io/orbit-b2b-docs/b2b-customer-portal/profile.md).

# Profile (phone & address)

The **Profile** section (`/apps/orbit-boost-wholesale/portal/profile`) lets a B2B buyer review their account and update the two fields that matter most for wholesale fulfillment: their **phone number** and their **default shipping address**.

## What's shown (read-only)

* **Name** and **email** — from the Shopify customer record
* **Company** — the linked [Company](/orbit-b2b-docs/companies/overview.md), if any
* **Pricing tier** — the [Customer Group](/orbit-b2b-docs/customer-groups/overview.md) the buyer belongs to

These come straight from Shopify and aren't editable in the portal (name/email changes go through the buyer's normal Shopify account).

## What's editable

### Phone

The phone field is a **country-code picker + number**, the same pattern as the B2B registration form:

* A dropdown of countries showing **flags** and dial codes (`🇻🇳 +84`, `🇺🇸 +1`, …)
* A separate number input

On save, the dial code and number are combined into **E.164** format (leading zeros stripped) before writing to Shopify via `customerUpdate`.

### Default address

The default shipping address is edited with proper **select dropdowns**, not free-text:

* **Country** — a `<select>` populated from Shopify's `all_country_option_tags`
* **Province / State** — a dependent `<select>` that repopulates from the chosen country's subdivisions
* Address line, city, ZIP / postal code

## Error handling

If Shopify rejects the update, the portal surfaces the **specific** Admin API error (for example an invalid phone format or a province that doesn't match the country) and **keeps the buyer's input** so they don't retype everything.

Provinces are handled best-effort: if a country has no Shopify subdivision list (or the typed province isn't valid), the rest of the address still saves and the buyer sees a warning rather than a hard failure.

## Next

* [Invoices](/orbit-b2b-docs/b2b-customer-portal/invoices.md)
* [My Quotes](/orbit-b2b-docs/b2b-customer-portal/my-quotes.md)
* [Customer Groups](/orbit-b2b-docs/customer-groups/overview.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://orbit-b2b.gitbook.io/orbit-b2b-docs/b2b-customer-portal/profile.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
