Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
036e285
ACCS-366: My Account: Stored payment methods page
anthoula Apr 3, 2026
b421cd3
ACCS-366: My Account: Stored payment methods page
anthoula Apr 3, 2026
eb32681
document new props
cctina516 Apr 3, 2026
2596617
ACCS-366: My Account: Stored payment methods page
anthoula Apr 3, 2026
86f29ab
Merge branch 'release' of github.com:commerce-docs/microsite-commerce…
anthoula Apr 3, 2026
e4d980d
Update src/content/docs/dropins-b2b/requisition-list/containers/requi…
cctina516 Apr 3, 2026
ba10168
Update src/content/docs/dropins-b2b/requisition-list/functions.mdx
cctina516 Apr 3, 2026
222da77
Merge pull request #817 from commerce-docs/active-button
bdenham Apr 3, 2026
890e4f6
Merge branch 'release' into ACCS-366
bdenham Apr 6, 2026
339aa23
Merge branch 'release' into ACCS-366
bdenham Apr 6, 2026
8e18a84
ACCS-534: My Account: Delete a stored card in My Account
yutingjiangYTJ Apr 6, 2026
0c82aa5
ACCS-726: Add a numeric attribute format sample
kuflower Apr 2, 2026
d5391f7
ACCS-726: Update numeric attribute formatter sample docs
kuflower Apr 7, 2026
2c99fe7
Add fieldIdPrefix prop support to the Addresses container
OscarMerino Apr 7, 2026
5e95b35
Merge branch 'april-release' into USF-3906
OscarMerino Apr 7, 2026
76d7970
Remove duplicated formatNumericAttribute function
kuflower Apr 7, 2026
24a363f
Apply suggestions from code review
bdenham Apr 7, 2026
b28e304
Merge pull request #813 from kuflower/ACCS-726-pdp-attribute-format
bdenham Apr 7, 2026
499d967
Apply suggestions from code review
bdenham Apr 7, 2026
be543c8
Merge branch 'april-release' into USF-3906
bdenham Apr 7, 2026
8824c41
fixed broken build
bdenham Apr 7, 2026
f87ae8f
Merge pull request #824 from OscarMerino/USF-3906
bdenham Apr 7, 2026
9e01c9c
Update src/content/docs/dropins/user-account/containers/payment-metho…
yutingjiangYTJ Apr 8, 2026
fccf6f9
Update src/content/docs/dropins/user-account/events.mdx
yutingjiangYTJ Apr 8, 2026
f350889
Update src/content/docs/dropins/user-account/functions.mdx
yutingjiangYTJ Apr 8, 2026
ff61609
Update src/content/docs/dropins/user-account/containers/payment-metho…
yutingjiangYTJ Apr 8, 2026
b0675c2
Update src/content/docs/dropins/user-account/containers/payment-metho…
yutingjiangYTJ Apr 8, 2026
8e04b21
Update src/content/docs/dropins/user-account/containers/payment-metho…
yutingjiangYTJ Apr 8, 2026
6cb5222
Update src/content/docs/dropins/user-account/containers/payment-metho…
yutingjiangYTJ Apr 8, 2026
d4c4514
Update src/content/docs/dropins/user-account/containers/payment-metho…
yutingjiangYTJ Apr 8, 2026
b50d4a1
Merge pull request #820 from commerce-docs/ACCS-534
bdenham Apr 8, 2026
7ca2ba6
Merge branch 'april-release' into ACCS-366
bdenham Apr 8, 2026
55aa02b
ACCS-366: My Account: Stored payment methods page
anthoula Apr 8, 2026
4e6a12b
Merge branch; resolve events.mdx conflict on payment token removal
anthoula Apr 8, 2026
8abac93
Verify and correct drop-in API documentation against source contracts
OscarMerino Apr 9, 2026
024513a
Register ProductDownloadableOptions in sidebar navigation
OscarMerino Apr 9, 2026
9f40af4
Remove alias from table
OscarMerino Apr 9, 2026
e494ae0
Documentation update for SCP-B2B-1.0.19 and SCP-4.8.18
deepak-soni1 Apr 13, 2026
7d2f8b5
docs: sync container props and events with source across cart, pdp, a…
OscarMerino Apr 14, 2026
21a14be
add commments container and block
cctina516 Apr 14, 2026
c3011de
update
cctina516 Apr 14, 2026
ebd1202
PR feedback fixed
deepak-soni1 Apr 15, 2026
25ab5ad
Merge pull request #829 from deepak-soni1/SCP-4.8.18_SCP-B2B-1.0.19
bdenham Apr 15, 2026
9596e74
Update src/content/docs/dropins/user-account/tutorials/payment-servic…
anthoula Apr 15, 2026
bf30e77
Apply suggestions from code review
anthoula Apr 15, 2026
799ad40
Merge branch 'april-release' into ACCS-366
bdenham Apr 15, 2026
cdf29d6
Merge pull request #816 from commerce-docs/ACCS-366
bdenham Apr 15, 2026
ad2a266
Merge branch 'april-release' into order-comments
bdenham Apr 15, 2026
54571e6
merge release into april-release
bdenham Apr 15, 2026
c03c8f0
Merge branch 'release' into april-release
bdenham Apr 15, 2026
8242603
Merge branch 'april-release' into order-comments
bdenham Apr 15, 2026
a03df92
Merge pull request #835 from commerce-docs/order-comments
bdenham Apr 15, 2026
86395ae
Fix conflict
OscarMerino Apr 17, 2026
bcf92dc
Add April 2026 suite release notes and changelog
Apr 24, 2026
41cfb38
Merge pull request #826 from OscarMerino/USF-3924
bdenham Apr 24, 2026
25ef579
Merge branch 'april-release' into release-notes-april
bdenham Apr 24, 2026
c7a5b88
Generated the release notes and changelogs using Adobe VPN to enrich …
Apr 27, 2026
33046fd
Merge branch 'release-notes-april' of github.com:commerce-docs/micros…
Apr 27, 2026
dbdbd4b
Added some references to the StorefrontSDK packages changes
Apr 27, 2026
0c8174b
Updated the StorefrontSDK update message
Apr 27, 2026
41964e2
Fixed Srop-in SDK title issue
Apr 27, 2026
8931ea1
Fixed typo with the User account component filter
Apr 27, 2026
b8dc2ea
Fixed typo with storefront auth component filter
Apr 27, 2026
c517376
Removed components entries without any changes
Apr 27, 2026
0e0b571
Fixed Account structure in Changelog
Apr 27, 2026
bcc7010
Updated SDK update message in changelog
Apr 28, 2026
32f217e
Updated components title
Apr 28, 2026
11df5a6
Fixed block with Quick Order component
Apr 28, 2026
fbf7be0
Merge pull request #849 from commerce-docs/release-notes-april
bdenham Apr 30, 2026
6203bb2
Merge branch 'release' into april-release
bdenham Apr 30, 2026
b2f6163
remove changes from PR #829
bdenham Apr 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion astro.sidebar.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ export function generateSidebar() {
label: 'User Account',
collapsed: true,
items: [
{ label: 'Payment Services in My Account', link: '/dropins/user-account/tutorials/payment-services-my-account/' },
{ label: 'Customize layout', link: '/dropins/user-account/tutorials/customize-layout/' },
{ label: 'Validate address', link: '/dropins/user-account/tutorials/validate-address/' },
],
Expand Down Expand Up @@ -265,6 +266,7 @@ export function generateSidebar() {
{ label: 'CreateReturn', link: '/dropins/order/containers/create-return/' },
{ label: 'CustomerDetails', link: '/dropins/order/containers/customer-details/' },
{ label: 'OrderCancelForm', link: '/dropins/order/containers/order-cancel-form/' },
{ label: 'OrderComments', link: '/dropins/order/containers/order-comments/' },
{ label: 'OrderCostSummary', link: '/dropins/order/containers/order-cost-summary/' },
{ label: 'OrderHeader', link: '/dropins/order/containers/order-header/' },
{ label: 'OrderProductList', link: '/dropins/order/containers/order-product-list/' },
Expand Down Expand Up @@ -343,8 +345,9 @@ export function generateSidebar() {
items: [
{ label: 'Overview', link: '/dropins/product-details/containers/' },
{ label: 'ProductAttributes', link: '/dropins/product-details/containers/product-attributes/' },
{ label: 'ProductDetails', link: '/dropins/product-details/containers/product-details/' },
{ label: 'ProductDescription', link: '/dropins/product-details/containers/product-description/' },
{ label: 'ProductDetails', link: '/dropins/product-details/containers/product-details/' },
{ label: 'ProductDownloadableOptions', link: '/dropins/product-details/containers/product-downloadable-options/' },
{ label: 'ProductGallery', link: '/dropins/product-details/containers/product-gallery/' },
{ label: 'ProductGiftCardOptions', link: '/dropins/product-details/containers/product-gift-card-options/' },
{ label: 'ProductGiftcardOptions', link: '/dropins/product-details/containers/product-giftcard-options/' },
Expand Down Expand Up @@ -432,6 +435,8 @@ export function generateSidebar() {
{ label: 'AddressValidation', link: '/dropins/user-account/containers/address-validation/' },
{ label: 'CustomerInformation', link: '/dropins/user-account/containers/customer-information/' },
{ label: 'OrdersList', link: '/dropins/user-account/containers/orders-list/' },
{ label: 'PaymentMethods', link: '/dropins/user-account/containers/payment-methods/',
},
],
},
],
Expand Down Expand Up @@ -828,6 +833,7 @@ export function generateSidebar() {
{ label: 'Gift Options', link: '/merchants/blocks/commerce-gift-options/' },
{ label: 'Login', link: '/merchants/blocks/commerce-login/' },
{ label: 'Mini Cart', link: '/merchants/blocks/commerce-mini-cart/' },
{ label: 'Order Comments', link: '/merchants/blocks/commerce-order-comments/' },
{ label: 'Order Cost Summary', link: '/merchants/blocks/commerce-order-cost-summary/' },
{ label: 'Order Header', link: '/merchants/blocks/commerce-order-header/' },
{ label: 'Order Product List', link: '/merchants/blocks/commerce-order-product-list/' },
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion scripts/generate-container-overviews.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const DROPINS_WITH_CONTAINERS = {
'product-details': { name: 'Product Details', containers: 10 },
'product-discovery': { name: 'Product Discovery', containers: 4 },
'recommendations': { name: 'Recommendations', containers: 4 },
'user-account': { name: 'User Account', containers: 5 },
'user-account': { name: 'User Account', containers: 6 },
'user-auth': { name: 'User Auth', containers: 3 },
'wishlist': { name: 'Wishlist', containers: 1 }
};
Expand Down
3 changes: 2 additions & 1 deletion src/content/docs/boilerplate/blocks-reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ sidebar:
import TableWrapper from '@components/TableWrapper.astro';
import Link from '@components/Link.astro';

This reference provides technical details for all 32 commerce blocks included in the boilerplate. Each block integrates one or more drop-in components to provide complete commerce functionality.
This reference provides technical details for all 33 commerce blocks included in the boilerplate. Each block integrates one or more drop-in components to provide complete commerce functionality.

<div style="background-color: var(--sl-color-blue-low); border-left: 4px solid var(--sl-color-blue); padding: 0.75rem 1rem; border-radius: 0.25rem; margin: 1rem 0;">
<strong>Boilerplate version: 7.0.0</strong>
Expand Down Expand Up @@ -45,6 +45,7 @@ This reference provides technical details for all 32 commerce blocks included in
| <Link href="https://github.com/hlxsites/aem-boilerplate-commerce/tree/main/blocks/commerce-orders-list" text="Orders List" /> | storefront-account, tools | Order history, status display, order details navigation |
| <Link href="https://github.com/hlxsites/aem-boilerplate-commerce/tree/main/blocks/commerce-search-order" text="Search Order" /> | storefront-auth, storefront-order, tools | Guest order lookup, email and order number validation |
| <Link href="https://github.com/hlxsites/aem-boilerplate-commerce/tree/main/blocks/commerce-order-header" text="Order Header" /> | tools | Order number, date, status badge |
| <Link href="https://github.com/hlxsites/aem-boilerplate-commerce/tree/main/blocks/commerce-order-comments" text="Order Comments" /> | storefront-order | Order-level comments with timestamps and messages |
| <Link href="https://github.com/hlxsites/aem-boilerplate-commerce/tree/main/blocks/commerce-order-status" text="Order Status" /> | storefront-order | Detailed status, tracking info, delivery estimates |
| <Link href="https://github.com/hlxsites/aem-boilerplate-commerce/tree/main/blocks/commerce-order-product-list" text="Order Product List" /> | storefront-order, storefront-cart, tools | Line items, reorder functionality, product images |
| <Link href="https://github.com/hlxsites/aem-boilerplate-commerce/tree/main/blocks/commerce-order-cost-summary" text="Order Cost Summary" /> | storefront-order | Subtotal, taxes, shipping, discounts, grand total |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@ The `AcceptInvitation` container provides the following configuration options:

| Parameter | Type | Req? | Description |
|---|---|---|---|
| No configurations | - | - | - |
| `routeMyAccount` | `function` | No | Returns the URL for the customer account page. Used for the 'Go to My Account' button after successful invitation acceptance. |
| `routeLogin` | `function` | No | Returns the URL for the login page. Used when the user is not authenticated and needs to sign in. |
| `isAuthenticated` | `boolean` | No | Indicates the current authentication status. When true, the container renders the acceptance flow; when false, it prompts the user to log in first. |
| `labels` | `object` | No | Optional labels for overriding the default text. Supports keys: `title`, `loadingText`, `successTitle`, `successMessage`, `errorTitle`, `myAccountButton`, `loginButton`. |

</TableWrapper>

Expand Down
34 changes: 34 additions & 0 deletions src/content/docs/dropins-b2b/company-management/events.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ The **Company Management** drop-in uses the [event bus](/sdk/reference/events) t
|-------|-----------|-------------|
| [company/updated](#companyupdated-emits) | Emits | Emitted when the component state is updated. |
| [companyStructure/updated](#companystructureupdated-emits) | Emits | Emitted when the component state is updated. |
| [error](#error-emits) | Emits | Emitted when a network error occurs during any API call. |
| [companyContext/changed](#companycontextchanged-listens) | Listens | Fired by Company Context (`companyContext`) when a change occurs. |

</TableWrapper>
Expand Down Expand Up @@ -196,6 +197,39 @@ companyManager.subscribe((data) => {

---

### `error` (emits)

Emitted when a network error occurs during any Company Management API call. Does not fire for intentional user cancellations (`AbortError`).

#### Event payload

```typescript
{
source: 'company';
type: 'network';
error: Error;
}
```

#### When triggered

- When any API mutation or query fails due to a network error.
- Does **not** fire when the request is deliberately aborted.

#### Example

```js
import { events } from '@dropins/tools/event-bus.js';

events.on('error', ({ source, type, error }) => {
if (source === 'company') {
console.error('Company Management network error:', error.message);
}
});
```

---

### `companyContext/changed` (listens)

Fired by Company Context (`companyContext`) when a change occurs.
Expand Down
60 changes: 60 additions & 0 deletions src/content/docs/dropins-b2b/company-management/functions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ The Company Management drop-in provides **26 API functions** for managing compan
| --- | --- |
| [`acceptCompanyInvitation`](#acceptcompanyinvitation) | Accepts a company invitation using the invitation code and user details from an email link. |
| [`allowCompanyRegistration`](#allowcompanyregistration) | Returns whether the backend allows company self-registration per store configuration. |
| [`buildPermissionTree`](#buildpermissiontree) | Filters a complete ACL resource tree down to only the resources matching the provided permission IDs. |
| [`checkCompanyCreditEnabled`](#checkcompanycreditenabled) | Checks whether the Company Credit functionality ("Payment on Account") is enabled for the logged-in customer's company. |
| [`companyEnabled`](#companyenabled) | Returns whether the Company feature is enabled in store configuration. |
| [`createCompany`](#createcompany) | Registers a new B2B company with complete business information including company details, legal address, and administrator account. |
Expand All @@ -35,6 +36,7 @@ The Company Management drop-in provides **26 API functions** for managing compan
| [`deleteCompanyTeam`](#deletecompanyteam) | Deletes a company team by entity ID. |
| [`deleteCompanyUser`](#deletecompanyuser) | Unassigns the user from the company (the user is not removed from the Company Structure tree). |
| [`fetchUserPermissions`](#fetchuserpermissions) | Retrieves the current user's role permissions and returns both the flattened permission IDs and the raw role response. |
| [`flattenPermissionIds`](#flattenpermissionids) | Flattens a nested ACL resource tree into a flat array of permission ID strings. |
| [`getCompany`](#getcompany) | Retrieves complete information about the current company including name, structure, settings, and metadata. |
| [`getCompanyAclResources`](#getcompanyaclresources) | Retrieves the available ACL (Access Control List) resources for company role permissions. |
| [`getCompanyCredit`](#getcompanycredit) | Retrieves the company's credit information including available credit, credit limit, outstanding balance, and currency. |
Expand Down Expand Up @@ -945,6 +947,64 @@ Does not emit any drop-in events.

Returns [`ValidateCompanyEmailResponse`](#validatecompanyemailresponse).

## Utility Functions

The following utility functions are exported from the public API and support working with company ACL (Access Control List) data.

## buildPermissionTree

The `buildPermissionTree` function filters a complete ACL resource tree down to only the nodes that match a given set of permission IDs. Nodes without matching descendants are excluded. Used when displaying or saving role permissions.

```ts
const buildPermissionTree = (
allResources: CompanyAclResourceModel[],
selectedIds: string[]
): CompanyAclResourceModel[]
```

<TableWrapper nowrap={[0,1]}>

| Parameter | Type | Req? | Description |
|---|---|---|---|
| `allResources` | `CompanyAclResourceModel[]` | Yes | The full, unfiltered tree of ACL resources as returned by `getCompanyAclResources`. |
| `selectedIds` | `string[]` | Yes | An array of permission ID strings to keep. Nodes whose ID is in this array, or that have a descendant in this array, are included in the result. |

</TableWrapper>

### Events

Does not emit any drop-in events.

### Returns

Returns a filtered `CompanyAclResourceModel[]` containing only nodes that match the provided permission IDs (or have matching descendants).

## flattenPermissionIds

The `flattenPermissionIds` function traverses a nested ACL resource tree and returns a flat array of all permission ID strings. Useful for initializing checkboxes, validating permission sets, or building the `selectedIds` input for `buildPermissionTree`.

```ts
const flattenPermissionIds = (
resources: CompanyAclResourceModel[]
): string[]
```

<TableWrapper nowrap={[0,1]}>

| Parameter | Type | Req? | Description |
|---|---|---|---|
| `resources` | `CompanyAclResourceModel[]` | Yes | The nested ACL resource tree to flatten. |

</TableWrapper>

### Events

Does not emit any drop-in events.

### Returns

Returns a `string[]` containing every permission ID found in the tree (including nested children).

## Data Models

The following data models are used by functions in this drop-in.
Expand Down
96 changes: 96 additions & 0 deletions src/content/docs/dropins-b2b/quick-order/events.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ The **Quick Order** drop-in uses the [event bus](/sdk/reference/events) to coord
| [`quick-order/loading`](#quick-orderloading-emits-and-listens) | Emits and listens | Loading state changed. Payload: `boolean`. Disables inputs and shows loading indicators while processing. |
| [`quick-order/add-to-cart`](#quick-orderadd-to-cart-emits) | Emits | Request to add items to cart when no custom `handleAddToCart` is used. Payload: array of cart item values. Default cart handler processes items. |
| [`quick-order/add-to-cart-error`](#quick-orderadd-to-cart-error-emits) | Emits | Add-to-cart operation failed. Payload: `{ message: string }`. Shows error notification. |
| [`b2b-quick-order/error`](#b2b-quick-ordererror-emits) | Emits | Emitted when a network error occurs during any Quick Order API call. |
| [`quick-order/grid-ordering-variants`](#quick-ordergrid-ordering-variants-emits-and-listens) | Emits and listens | Provides variant data to `QuickOrderVariantsGrid`. Emitted externally or when `initialVariants` is set. |
| [`quick-order/grid-ordering-selected-variants`](#quick-ordergrid-ordering-selected-variants-emits) | Emits | Notifies when selected variants or quantities change in the `QuickOrderVariantsGrid`. Debounced. |
| [`quick-order/grid-ordering-reset-selected-variants`](#quick-ordergrid-ordering-reset-selected-variants-listens) | Listens | Resets the current grid selection (clears all quantities). |
| [`cart/product/added`](#cartproductadded-listens) | Listens | Products added to cart successfully. Payload: `any[]`. Quick Order shows success notification. |

</TableWrapper>
Expand Down Expand Up @@ -117,6 +121,98 @@ The Cart drop-in emits this when products are added to the cart. Quick Order lis
any[]
```

### `b2b-quick-order/error` (emits)

Emitted when a network error occurs during any Quick Order API call. Does not fire for intentional user cancellations (`AbortError`).

#### Event payload

```typescript
{
source: 'auth';
type: 'network';
error: Error;
}
```

#### Example

```js
import { events } from '@dropins/tools/event-bus.js';

events.on('b2b-quick-order/error', ({ source, type, error }) => {
console.error('Quick Order network error:', error.message);
});
```

### `quick-order/grid-ordering-variants` (emits and listens)

Provides variant data to `QuickOrderVariantsGrid`. Emitted externally by the integration layer (for example, the Product Details block) after fetching product variants. Also emitted by `QuickOrderVariantsGrid` itself when `initialVariants` is provided as a prop. Not required if `initialVariants` is passed directly.

#### Event payload

```typescript
ProductVariant[] // Array of product variants
```

#### Example

```js
import { events } from '@dropins/tools/event-bus.js';

// Emit after fetching variants from the PDP
events.emit('quick-order/grid-ordering-variants', productVariants);
```

### `quick-order/grid-ordering-selected-variants` (emits)

Emitted by `QuickOrderVariantsGrid` when the user changes quantities for any variant. Payload contains only variants with `quantity > 0`. Emissions are debounced. Captured by the PDP integration layer to execute bulk add-to-cart.

#### Event payload

```typescript
Array<{
sku: string;
name: string;
inStock: boolean;
attributes: Record<string, { label: string; value: string }>;
price: number;
quantity: number;
subtotal: number;
image: string;
}>
```

#### Example

```js
import { events } from '@dropins/tools/event-bus.js';

events.on('quick-order/grid-ordering-selected-variants', (selectedVariants) => {
console.log('Selected variants:', selectedVariants);
// selectedVariants contains only variants with quantity > 0
});
```

### `quick-order/grid-ordering-reset-selected-variants` (listens)

Listens for this event to reset all quantities in the `QuickOrderVariantsGrid` to zero. Typically emitted by the integration layer after a successful add-to-cart operation.

#### Event payload

```typescript
void
```

#### Example

```js
import { events } from '@dropins/tools/event-bus.js';

// Reset the grid after successful add-to-cart
events.emit('quick-order/grid-ordering-reset-selected-variants');
```

## PDP integration events (internal)

QuickOrderItems emits PDP-scoped events to enable reuse of PDP containers (for example, ProductPrice, ProductOptions) within the Quick Order interface:
Expand Down
Loading
Loading