Liquid、JavaScriptなどに関する質問
お世話になります。
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をうまくエスケープできてないのではないかと思われます。
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>"
ご参考まで。
(キュー田辺)
ご返信いただきありがとうございます。
上記で解決しなかったため、英語版QAで聞いてみましたので回答を待ちたいと思います。
ご協力ありがとうございます。
Shopify アカデミーの学習パスと認定スキルバッジExpanding Your Shopify Business Internationallyを活用して、国際的にビジネ...
By Shopify Feb 7, 2025Shopify アカデミーの学習パスB2B on Shopify:立ち上げとカスタマイズで卸売販売に進出しましょう。これら3つの無料コースは、ShopifyストアでB2B機能...
By Shopify Jan 31, 2025サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 2024