Shopify ストアのための完全に自動化されたワークフローの設計 Shopify ストアのための完全に自動化されたワークフローの設計 成功した電子商取引ショップを維持するには、その課題の公平な割合が伴います. それは、常に変化する詳細に常に注意を払う必要があり、在庫、顧客体験、プラットフォームのアップデート。 それが自動化の入り口である - 便利性だけでなく、あなたのストアを効率的かつスケール的に稼働させることの必要性です。Shopifyは、アプリケーションとドラッグ・アンド・ドロップ・インターフェイスの豊富なエコシステムを提供している一方で、しばしば透明性とコントロールを便利に取引する必要があります。 コントロールを取り戻す ロボットが退屈なものを心配するようにしてください! ロボットが退屈なものを心配するようにしてください! 遅かれ早かれ、あなたはオフ・ザ・シェルフのアプリケーションや手動のワークフローで限界に達し、代替案を探し始めるでしょう。そのような代替案の1つは、完全な柔軟性と制御を提供するプログラミング可能なパイプラインに向かって、GUI中心のツールから移行することです。 あなたのデータの完全な所有権 あなたのブランドと製品に合わせた改善 シェア可能なワークフロー:複数のストアは、ほとんど変更なしで同じワークフローを使用できます。 プロセスのあらゆるステップにおける信頼 今、私たちは、上記の問題を軽減するのに役立つ自動化されたCIパイプラインを構築する方法を調べましょう。コンセプトの証明として、私たちは製品コンテンツのワークフローを簡素化するパイプラインを作成します。 スタック 以下は、ワークフローを強化するもの。 Shopify - 私たちの製品が生きている場所 GitHub Actions — for orchestration and automation オリジナルタイトル ShopCTL — Shopifyストア管理用のコマンドラインユーティリティ OpenAI API - 製品タイトルを修正し、SEOコンテンツを生成し、提案を提供する Python and some Bash scripts — for the enrichment logic and updates. PythonといくつかのBashスクリプト — for the enrichment logic and updates. Shopify GitHub アクション お買い物 オープン API Python Bash First Things First - Set Up the Stack (ファースト・シティ・ファースト・シティ) まずは GitHub Actions ワークフローを設定し、パイプライン構成をストレージにします。 ファイル名: ファイル名を作成する このファイルは、当社の製品コンテンツワークフローの仕事を定義します。 .github/workflows/ enrich-products.yml # .github/workflows/enrich-products.yml name: Shopify Product Enrichment on: workflow_dispatch: THE GitHub Actions でのイベントでは、GitHub インターフェイスからまたは API 経由でワークフローを手動で起動することもできます。 特定の時間に workflow_dispatch 自動的に実行するようにスケジュールする 自動的に実行するようにスケジュールする API Keys 火の鍵 私たちの構成を完了するために、いくつかのAPIキーが必要になります。 AI オペレーションおよび お店とのコミュニケーション OPENAI_API_KEY SHOPIFY_ACCESS_TOKEN OpenAI API キーを取得する and set it . Shopify アクセス トークンを取得することは、それを実行するためにデュミー アプリを作成する必要があるため困難です。 1を手に入れる。 , オープンアカウント GitHubで秘密として この公式ガイド オープンアカウント GitHubで秘密として この公式ガイド ShopCTL お買い物 僕らはAを使う 製品を輸出し、更新するために、パイプラインで参照するために再利用できるカスタムアクションを作成します。 アクション ディレクトリに入って、次の config を追加します。 コマンドラインツール setup-shopctl.yml コマンドラインツール # .github/workflows/actions/setup-shopctl.yml name: Setup ShopCTL description: Installs Go and ShopCTL CLI runs: using: "composite" steps: - name: Set up Go uses: actions/setup-go@v5 with: go-version: "1.24" - name: Install ShopCTL shell: bash run: | sudo apt-get update sudo apt-get install -y libx11-dev go install github.com/ankitpokhrel/shopctl/cmd/shopctl@main echo "$HOME/go/bin" >> "$GITHUB_PATH" カスタムアクションに加えて、私たちが運営しているストアの構成を追加する必要があります。 repo の root に、次のような config をファイルに追加します。 すべてのイベントを置き換える お店のアリスで shopctl .shopconfig.yml store1 # shopctl/.shopcofig.yml ver: v0 contexts: - alias: store1 store: store1.myshopify.com currentContext: store1 パイプラインの完成 パイプラインの完全なソースはここで見つけることができます。 パイプラインの完全なソースはここで見つけることができます。 ここ ここ 私たちのパイプラインには4つの段階があり、 viz: Export -> Enrich -> Update -> Notify Stage 1: Export Products ステップ1:輸出製品 私たちのパイプラインの最初のステップは、当店から最新の製品を輸出することです。 IN THE 以前作成したファイルです。 export-products enrich-products.yml jobs: export-products: runs-on: ubuntu-latest env: SHOPIFY_ACCESS_TOKEN: ${{ secrets.SHOPIFY_ACCESS_TOKEN }} # The secret we set earlier SHOPIFY_CONFIG_HOME: ${{ github.workspace }} # This will tell shopctl to use current dir to look for .shopconfig outputs: has-data: ${{ steps.check.outputs.has_data }} steps: - name: Checkout repo uses: actions/checkout@v3 - name: Setup ShopCTL uses: ./.github/workflows/actions/setup-shopctl - name: Export products run: | mkdir -p data # Export latest data (last 7 days) using the shopctl tool as latest_products.tar.gz shopctl export -r product="created_at:>=$(date -v -7d +%Y-%m-%d)" -o data/ -n latest_products -vvv - name: Check if export has data id: check run: | if [ -s data/latest_products.tar.gz ]; then echo "has_data=true" >> "$GITHUB_OUTPUT" else echo "has_data=false" >> "$GITHUB_OUTPUT" echo "No products found to process" fi - name: Upload exported products if: steps.check.outputs.has_data == 'true' uses: actions/upload-artifact@v4 with: name: exported-products path: data/latest_products.tar.gz 上の仕事は、設立します。 以前作成したカスタムアクションを使用して、過去7日間で作成したすべての製品をエクスポートし、新しい製品が存在する場合、アーティファクトとしてアップロードします。 お買い物 お買い物 Stage 2a: Review Catalog ステップ2a:カタログレビュー 私たちはOpenAI APIを使用して製品データサンプルをレビューし、以下のことを特定します。 タグ、製品タイプ、または変数における問題または不一致 欠如または不一致の記録情報 製品構成または変数構造におけるギャップ 複製または過度に類似した製品 カタログの品質と完全性を向上させるための一般的な勧告 review-catalog: needs: export-products runs-on: ubuntu-latest env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} steps: - name: Checkout repo uses: actions/checkout@v3 - name: Download product export uses: actions/download-artifact@v4 with: name: exported-products path: data/ - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.13" - name: Install dependencies run: pip install openai - name: Run catalog review script run: | # Assuming your script is saved in scripts/review_catalog.py python scripts/review_catalog.py \ data/latest_products.tar.gz \ data/review_summary.md - name: Upload catalog summary uses: actions/upload-artifact@v4 with: name: catalog-review-summary path: data/review_summary.md - name: Final summary run: echo "✅ Shopify product catalog review completed!" 注目 The セクション. 我々は製品が輸出され、アーティファクトとして利用可能にされた後、それを実行したい。 我々はまた、我々のレビュースクリプトがPythonで書かれているので、Pythonを設定する必要があります。 あなたはここであなたの選択の言語を使用することができます。 スクリプトは生成します 次のステップでアーティファクトとしてアップロードされます(下の例出力)。 needs review_summary.md ## Identified Issues ### 1. Missing or Inconsistent Information: - Some products have missing or inconsistent `productType` (e.g. `"gid://shopify/Product/8790718087392"`, `"gid://shopify/Product/879071795632 サンプルスクリプトとプロンプトは、 . found here ここで見つけた Stage 2b: Enrich Products ステージ2B:製品の豊かさ 同様に、 仕事, add an スクリプトを実行して製品タイトルをレビューし、OpenAIを使用して製品のSEOタイトルと説明を生成します。この仕事はレビューカタログの仕事と並行して実行され、メタデータの詳細を含むCSVを生成します。 review-catalog enrich-products 仕事 仕事 サンプルスクリプトとプロンプトは、 . found here ここで見つけた Stage 3: Update Products ステップ3:製品の更新 ステージ 2b でメタデータが生成されると、製品を更新できます。 この段階では、Python の代わりに bash スクリプトを使用します。 お買い物 お買い物 呼ばれる仕事を追加 下に示す通り。 update-products update-products: needs: enrich-products runs-on: ubuntu-latest env: SHOPIFY_ACCESS_TOKEN: ${{ secrets.SHOPIFY_ACCESS_TOKEN }} SHOPIFY_CONFIG_HOME: ${{ github.workspace }} steps: - name: Checkout repo uses: actions/checkout@v3 - name: Setup ShopCTL uses: ./.github/workflows/actions/setup-shopctl - name: Download enriched products uses: actions/download-artifact@v4 with: name: enriched-products path: data/ - name: Apply updates using shopctl run: | mkdir -p logs touch logs/audit.txt while IFS=, read -r pid new_title seo_title seo_desc; do # Strip leading/trailing quotes seo_desc="${seo_desc%\"}" seo_desc="${seo_desc#\"}" # Use shopctl to update product details if output=$(shopctl product update "$pid" \ --title "$new_title" \ --seo-title "$seo_title" \ --seo-desc "$seo_desc" 2>&1); then echo "$pid,success" >> logs/audit.txt else sanitized_error=$(echo "$output" | tr '\n' ' ' | sed 's/,/ /g') echo "$pid,failure,$sanitized_error" >> logs/audit.txt fi done < <(tail -n +2 data/enriched_products.csv) - name: Upload audit log uses: actions/upload-artifact@v4 with: name: product-audit-log path: logs/audit.txt - name: Final summary run: echo "✅ Shopify product enrichment and updates completed!" 作業は比較的単純で、前段階で生成されたCSVファイルから読み取るためにバッシュスクリプトを使用し、ShopCTLを使用して製品を更新し、ログファイルを作成します。 Stage 4: Notify ステップ4:通知 今、残っているのは、仕事が完了したこと(または失敗したこと)と何が変わったかを関心のある人に通知することだけです. あなたはSlackの通知を送信するか、または詳細を電子メールで送信することができます. We will simply pick up and print the logs for the tutorial's sake. notify: needs: [review-catalog, update-products] runs-on: ubuntu-latest steps: - name: Download audit log uses: actions/download-artifact@v4 with: name: product-audit-log path: logs/ - name: Download catalog review uses: actions/download-artifact@v4 with: name: catalog-review-summary path: data/ - name: Print audit summary run: | ls -lah logs/ ls -lah data/ echo "🧾 Shopify Product Update Audit" echo "-------------------------------" total=$(wc -l < logs/audit.txt) updated=$(grep -c ',success' logs/audit.txt || true) failed=$(grep -c ',failure' logs/audit.txt || true) echo "✅ Success: $updated" echo "❌ Failed: $failed" echo "📦 Total Processed: $total" echo "" echo "📋 Detailed Audit:" cat logs/audit.txt - name: Print catalog review summary run: | echo "" echo "🧠 Catalog Review Summary" echo "-------------------------" cat data/review_summary.md 「Putting It All Together 上記の例では、利用可能なツールを活用して、あなたの使用例に合わせてユニークで強力なものを作成する方法を示していますが、機密ストレージデータを外部のアプリに転送することなく。 当社のコンセプトの証明書は、手動の承認と適切なエラー処理のためのステージストアを使用するなど、いくつかの生産レベルの必要事項を省略しますが、それはあなたがどのように開始するかについて一般的なアイデアを提供します。 Takeaway この柔軟性とコントロールのレベルは、製品コピーの自動化によるA/Bテスト、複数の言語の豊富化ワークフロー、ダイナミックな価格実験、自動的な在庫清掃、パーソナライズされた推奨まで、無限の可能性を開きます。 あなたがコントロールする各ステップで、新しいアイデアを実験し、市場の変化に迅速に適応し、ビジネスが成長するにつれて簡単に事業を拡大することができます。