Skip to main content

Account Page

The account page displays the user's profile and provides navigation to key account sections such as orders, addresses, and logout.

App Screenshot

Page ID​

The page ID for the Account page is MyAccount. Use this when registering a replacement page in pages/index.js.

import AccountPage from './account';

const pages = {
MyAccount: AccountPage,
};

export { pages };

Basic page structure​

const MyAccount = {
title: 'My Account',
attributes: {
renderType: 'normal',
renderInScroll: true,
backgroundColor: '#FFFFFF',
scrollViewContentContainerStyle: {
paddingHorizontal: 6,
paddingTop: 8,
},
},
blocks: [
{
name: 'appmaker/shopify-access-token-checker',
attributes: {
user: '{{appStorageState.user}}',
},
},
{
name: 'shopify/profile-card-item',
attributes: {},
},
{
clientId: 'my-account-menu-orders',
name: 'appmaker/actionbar',
attributes: {
title: 'Orders',
appmakerAction: {
pageId: 'OrderList',
params: {
pageData: '{{appStorageState.user}}',
},
action: 'OPEN_INAPP_PAGE',
},
},
dependencies: {
appStorageState: ['user'],
},
},
{
clientId: 'address-list',
name: 'appmaker/actionbar',
attributes: {
title: 'Address',
__display:
'{{!checkIfTrueFalse(plugins.shopify.settings.hide_myaccount_address)}}',
appmakerAction: {
params: {},
action: 'OPEN_ADDRESS_LIST_PAGE',
},
},
},
{
clientId: 'my-account-menu',
name: 'appmaker/actionbar',
attributes: {
title: 'Delete account',
__display: '{{__platformOS === "ios" }}',
appmakerAction: {
params: {},
action: 'OPEN_INAPP_PAGE',
pageId: 'DeleteAccountConfirmation',
},
},
},
{
clientId: 'my-account-menu',
name: 'appmaker/actionbar',
attributes: {
title: 'Log out',
appmakerAction: {
params: {},
action: 'LOGOUT',
},
},
},
],
};

export default MyAccount;

Basic Blocks​

1. appmaker/shopify-access-token-checker​

Validates the user's session. Redirects to the login page if the user is not authenticated.

2. shopify/profile-card-item​

Displays the user's profile avatar, name and email.

3. appmaker/actionbar​

A reusable list item block used to create navigation entries. Each entry has a title and an optional appmakerAction.

EntryActionNotes
OrdersOpens OrderList page
AddressTriggers OPEN_ADDRESS_LIST_PAGEConditionally shown based on hide_myaccount_address setting
Delete accountOpens DeleteAccountConfirmation pageiOS only
Log outTriggers LOGOUT

Customization​

Block customization can be done by overriding the block.

Eg: Customizing the profile card​

Customize the user profile card by overriding the shopify/profile-card-item block. Create a new component in the ./components folder and register it to the block registry in ./blocks/index.js with the same block name.

{
name: 'shopify/profile-card-item',
attributes: {},
}