Skip to content

Commit 01732d5

Browse files
authored
fix direct api example. (#2990)
1 parent f59e5c5 commit 01732d5

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

packages/ui-extensions/docs/surfaces/point-of-sale/staticPages/examples/direct-api-access/direct-api-access.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import {
22
extension,
33
POSBlock,
4-
Text,
54
POSBlockRow,
6-
DirectApiRequestBody,
5+
Text,
76
} from '@shopify/ui-extensions/point-of-sale';
87
import type {DirectApiRequestBody} from '@shopify/ui-extensions/point-of-sale';
98

9+
// This mutation requires the `write_products` access scope.
10+
// https://shopify.dev/docs/api/admin-graphql/latest/mutations/metafieldsset
1011
async function mutateMetafield(productId: number) {
1112
const requestBody: DirectApiRequestBody = {
12-
query: `
13+
query: `#graphql
1314
mutation MetafieldsSet($metafields: [MetafieldsSetInput!]!) {
1415
metafieldsSet(metafields: $metafields) {
1516
metafields {
@@ -40,9 +41,10 @@ async function mutateMetafield(productId: number) {
4041
});
4142
}
4243

44+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/product
4345
async function queryProductMetafields(productId: number) {
4446
const requestBody: DirectApiRequestBody = {
45-
query: `
47+
query: `#graphql
4648
query GetProduct($id: ID!) {
4749
product(id: $id) {
4850
id

packages/ui-extensions/docs/surfaces/point-of-sale/staticPages/examples/direct-api-access/direct-api-access.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import {
22
reactExtension,
33
useApi,
4-
Text,
54
POSBlock,
65
POSBlockRow,
6+
Text,
77
} from '@shopify/ui-extensions-react/point-of-sale';
8-
import type {DirectApiRequestBody} from '@shopify/ui-extensions-react/point-of-sale';
9-
import {useEffect, useState} from 'react';
8+
import type {DirectApiRequestBody} from '@shopify/ui-extensions/point-of-sale';
9+
import React, {useEffect, useState} from 'react';
1010

11+
// This mutation requires the `write_products` access scope.
12+
// https://shopify.dev/docs/api/admin-graphql/latest/mutations/metafieldsset
1113
async function mutateMetafield(productId: number) {
1214
const requestBody: DirectApiRequestBody = {
13-
query: `
15+
query: `#graphql
1416
mutation MetafieldsSet($metafields: [MetafieldsSetInput!]!) {
1517
metafieldsSet(metafields: $metafields) {
1618
metafields {
@@ -41,9 +43,10 @@ async function mutateMetafield(productId: number) {
4143
});
4244
}
4345

46+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/product
4447
async function queryProductMetafields(productId: number) {
4548
const requestBody: DirectApiRequestBody = {
46-
query: `
49+
query: `#graphql
4750
query GetProduct($id: ID!) {
4851
product(id: $id) {
4952
id
@@ -71,7 +74,7 @@ async function queryProductMetafields(productId: number) {
7174

7275
const ProductDetailsBlock = () => {
7376
const {product} = useApi<'pos.product-details.block.render'>();
74-
const [productInfo, setProductInfo] = useState<any>();
77+
const [productInfo, setProductInfo] = useState<string>('');
7578
useEffect(() => {
7679
async function getProductInfo() {
7780
const result = await queryProductMetafields(product.id);

packages/ui-extensions/docs/surfaces/point-of-sale/staticPages/pages/pos-overview.doc.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,18 @@ const data: LandingTemplateSchema = {
110110
type: 'info',
111111
sectionContent: `Direct API access is available as of POS version 10.2.0 for extensions targeting \`unstable\`. This feature will be available for all extensions targeting stable API versions in the future.`,
112112
},
113+
{
114+
title: 'Access scopes',
115+
type: 'note',
116+
sectionContent: `Be sure to declare all required access scopes in your app's TOML file. For local development, access scopes are only registered or updated when the app is deployed and installed on your test store.`,
117+
},
113118
],
114119
sectionContent:
115120
"You can make Shopify Admin API requests directly from your extension using the standard [web fetch API](https://developer.mozilla.org/en-US/docs/Web/API/fetch)!\n\nAny `fetch()` calls from your extension to Shopify's Admin GraphQL API are automatically authenticated by default. These calls are fast too, because Shopify handles requests directly.\n\nDirect API requests use [online access](https://shopify.dev/docs/apps/build/authentication-authorization/access-token-types/online-access-tokens) mode by default.",
116121
anchorLink: 'direct-api-access',
117122

118123
codeblock: {
119-
title: 'Query Shopify data',
124+
title: 'Query Shopify data directly',
120125
tabs: [
121126
{
122127
code: '../examples/direct-api-access/direct-api-access.tsx',

0 commit comments

Comments
 (0)