FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

Re: GraphQLでdescriptionHtmlフィールドにHTMLで作成した商品説明文を登録する

GraphQLでdescriptionHtmlフィールドにHTMLで作成した商品説明文を登録する

heyuuuuu
観光客
22 0 1

お世話になります。

Shopify初心者です。以下、ご存じの方がいればご教示いただけますと幸いです。

 

■やりたいこと

PythonでGraphQLを使用して、新規商品登録するスクリプトを完成させたいと思っています。

 

ダブルクオーテーションなどが入ってくるとエラーを吐き出してしまいうまくいきません。

ダブルクオーテーションや”<”などをエスケープする方法をご存じの方がいればお教えいただけますと幸いです。

 

以下はPythonで書いたスクリプトになります。

■環境

GCP

Theme:Duet

 

■登録したい文字列

<img data-src="https://cdn.shopify.com/s/files/test.jpg?v=123456" alt=""><br><br><p>"doublequotes"</p>

 

■スクリプト


import requests
import json

# Shopify API credentials
shop_url = "ShopURL"
access_token = "ACCESS TOKEN"


# GraphQL mutation
mutation = '''
mutation {
productCreate(input: {
title: "ProductCreateTest"
descriptionHtml: "<img data-src="https://cdn.shopify.com/s/files/test.jpg?v=123456" alt=""><br><br><p>"doublequotes"</p>"
variants: [
{
price: 29.99
}
]
images: [
{
src: "https://example.com/image.jpg"
}
]
}) {
product {
id
title
}
}
}
'''

# GraphQL API endpoint
api_url = f"{shop_url}/admin/api/2023-07/graphql.json"

# Headers with authentication
headers = {
"Content-Type": "application/json",
"X-Shopify-Access-Token": access_token
}

# Send the GraphQL request
response = requests.post(api_url, headers=headers, data=json.dumps({"query": mutation}))

# Check for success or handle errors
if response.status_code == 200:
result = response.json()
created_product = result.get("data", {}).get("productCreate", {}).get("product", {})
if created_product:
product_id = created_product.get("id")
print(f"Product created with ID: {product_id}")
else:
print("Error creating product")
else:
print(f"Error: {response.status_code}, {response.text}")

 

■試したこと

'<p>\"doublequotes\"</p>'

シングルクオーテーションでエスケープ

→エラーになる

 

■その他

通常のテキストだけで登録はできるのでおそらくHTMLをうまくエスケープできてないのではないかと思われます。

 

2件の返信2

Qcoltd
Shopify Partner
1235 498 477

@heyuuuuu 様

 

https://shopify-graphiql-app.shopifycloud.com/login

こちらのShopify GraphQL Appで確認しただけですので、

Pythonですとうまくいかない、ということがあるのかもしれないのですが、

下記でエラーなく実行できました。

descriptionHtml: "<img data-src=\"https://cdn.shopify.com/s/files/test.jpg?v=123456\" alt=\"\"><br><br><p>\"doublequotes\"</p>"

 

ご参考まで。

(キュー田辺)

株式会社Q (キュー)
グラフィックデザイン、アパレル事業、Web制作など色々やっている渋谷区代々木の会社です。ShopifyでのECサイトの運営・開発も行なっています。
私たちについて: https://web.q-co.jp/ テックブログ: https://techlab.q-co.jp/
heyuuuuu
観光客
22 0 1

ご返信いただきありがとうございます。

 

上記で解決しなかったため、英語版QAで聞いてみましたので回答を待ちたいと思います。

https://community.shopify.com/c/graphql-basics-and/register-a-new-product-with-html-description-usin...

 

ご協力ありがとうございます。