Skip to main content

customer-account.order.action.menu-item.render

A static extension target that renders as 1 order action on the Order Index and Order Status pages in customer accounts.

The API object provided to this and other customer-account.order extension targets.

string
required

The base API object provided to this and other customer-account extension targets.

required

Methods for interacting with Web Pixels, such as emitting an event.

Note

Requires to connect a third-party domain to Shopify for your customer account pages.

Anchor to applyTrackingConsentChange
applyTrackingConsentChange
required

Allows setting and updating customer privacy consent settings and tracking consent metafields.

Note

Requires the customer_privacy capability to be set to true.

Requires access to protected customer data.

Anchor to authenticatedAccount
authenticatedAccount
required

Information about the authenticated account.

<>
required

Customer privacy consent settings and a flag denoting if consent has previously been collected.

required

Meta information about the extension.

required

Utilities for translating content and formatting values according to the current localization of the user.

required

Details about the language of the buyer.

<Data = unknown, Variables = { [key: string]: unknown; }>(query: string, options?: { variables?: Variables; version?: ; }) => Promise<{ data?: Data; errors?: []; }>
required

Used to query the Storefront GraphQL API with a prefetched token.

See storefront api access examples for more information.

required

Provides access to session tokens, which can be used to verify token claims on your app's server.

See session token examples for more information.

<>
required

The settings matching the settings definition written in the shopify.ui.extension.toml file.

See settings examples for more information.

Note

When an extension is being installed in the editor, the settings will be empty until a merchant sets a value. In that case, this object will be updated in real time as a merchant fills in the settings.

required

Key-value storage for the extension target.

required

The Toast API displays a non-disruptive message that displays at the bottom of the interface to provide quick, at-a-glance feedback on the outcome of an action.

How to use:

  • Use toasts to confirm successful actions.

  • Aim for two words.

  • Use noun + past tense verb format. For example, `Changes saved`.

For errors, or information that needs to persist on the page, use a banner component.

Version
required

The renderer version being used for the extension.

Target
required

The identifier that specifies where in Shopify’s UI your code is being injected. This will be one of the targets you have included in your extension’s configuration file.

Deprecated

Deprecated as of version 2023-07, use extension.target instead.

Supported props for Buttons used in order actions.

children only support text.

Omit onPress and to to trigger the customer-account.order.action.render extension target on press.

string
required

Destination URL to link to.

E.g. extension:/ to navigate to the Full-page extension.

string

A label that describes the purpose or contents of the Button. It will be read to users using assistive technologies such as screen readers.

Use this when using only an icon or the button text is not enough context for users using assistive technologies.

((event: <typeof buttonTagName>) => void) | null

Callback when the button is activated. This will be called before the action indicated by type.

boolean
Default: false

Disables the button, disallowing any interaction.

boolean
Default: false

Replaces content with a loading indicator.

'auto' | 'neutral' | 'critical'
Default: 'auto'

Sets the tone of the Button, based on the intention of the information being conveyed.

Examples
import '@shopify/ui-extensions/preact';
import {render} from 'preact';

export default async () => {
render(
<MenuActionItemExtension />,
document.body,
);
};

function MenuActionItemExtension() {
return (
<s-button>
{shopify.i18n.translate('menuItem.button')}
</s-button>
);
}
Was this page helpful?