Bài viết mới

Hướng dẫn cách xây dựng đường ống làm giàu sản phẩm tự động dựa trên AI cho Shopify

từ tác giả Ankit P.12m2025/04/27
Read on Terminal Reader

dài quá đọc không nổi

Chúng tôi sẽ xây dựng một đường ống dẫn sử dụng GitHub Actions để xuất các sản phẩm mới nhất từ cửa hàng Shopify, thực hiện một số hành động bằng cách sử dụng LLM và cập nhật các sản phẩm.
featured image - Hướng dẫn cách xây dựng đường ống làm giàu sản phẩm tự động dựa trên AI cho Shopify
Ankit P. HackerNoon profile picture


Kỹ thuật một dòng công việc hoàn toàn tự động cho một cửa hàng Shopify

Kỹ thuật một dòng công việc hoàn toàn tự động cho một cửa hàng Shopify


Duy trì một cửa hàng thương mại điện tử thành công đi kèm với phần công bằng của nó của những thách thức. nó đòi hỏi sự chú ý liên tục thay đổi chi tiết trên hàng tồn kho, trải nghiệm khách hàng, và cập nhật nền tảng. Với rất nhiều bộ phận di chuyển, giám sát thủ công có thể nhanh chóng trở nên áp đảo, dễ bị lỗi và tốn thời gian.


Đó là nơi tự động hóa bước vào - không chỉ là một tiện ích mà là một sự cần thiết để giữ cho cửa hàng của bạn chạy hiệu quả và quy mô.Trong khi Shopify cung cấp một hệ sinh thái phong phú của các ứng dụng và giao diện kéo và thả, nó thường yêu cầu bạn giao dịch minh bạch và kiểm soát để thuận tiện.

lấy lại quyền kiểm soát

Hãy để robot lo lắng về những thứ nhàm chán!

Hãy để robot lo lắng về những thứ nhàm chán!


Sớm hay muộn, bạn sẽ đạt đến giới hạn với các ứng dụng ngoài kệ và dòng công việc thủ công và bắt đầu tìm kiếm các lựa chọn thay thế. Một lựa chọn như vậy là chuyển từ các công cụ tập trung vào GUI sang các đường ống có thể lập trình cung cấp sự linh hoạt và kiểm soát hoàn toàn.


  • Chủ sở hữu đầy đủ của dữ liệu của bạn
  • Cải thiện phù hợp với thương hiệu và sản phẩm của bạn
  • Dòng công việc có thể chia sẻ: nhiều cửa hàng có thể sử dụng cùng một dòng công việc với ít hoặc không có điều chỉnh
  • Niềm tin trong từng bước của quá trình


Bây giờ, chúng ta hãy khám phá làm thế nào chúng ta có thể xây dựng một đường ống CI tự động để giúp giảm bớt các vấn đề được đề cập ở trên. Như một bằng chứng về khái niệm, chúng tôi sẽ tạo ra một đường ống để hợp lý hóa dòng công việc nội dung sản phẩm của chúng tôi. đường ống sẽ sử dụng LLM để xem xét các sản phẩm mới nhất trên cửa hàng của chúng tôi, tối ưu hóa tiêu đề, thêm tiêu đề SEO và mô tả, và tạo ra một bản tóm tắt cho nhóm để xem xét.

Các Stack

Đây là những gì thúc đẩy dòng công việc:


  • Shopify - nơi sản phẩm của chúng tôi sống
  • GitHub Actions – cho orchestration và automation
  • ShopCTL – Một tiện ích dòng lệnh cho quản lý cửa hàng Shopify
  • OpenAI API – để sửa đổi tiêu đề sản phẩm, tạo nội dung SEO và cung cấp đề xuất
  • Python và một số kịch bản Bash – cho logic làm phong phú và cập nhật
ShopifyHoạt động GitHubMua sắmMở APIPythonBash

First Things First - Thiết lập Stack

Hãy bắt đầu bằng cách thiết lập một dòng công việc Hành động GitHub. Chúng tôi sẽ lưu trữ các cấu hình đường ống trong.github/workflows/Tạo một tập tin có tênenrich-products.ymltrong thư mục dòng công việc. tệp này sẽ xác định công việc cho dòng công việc nội dung sản phẩm của chúng tôi.


# .github/workflows/enrich-products.yml

name: Shopify Product Enrichment

on:
  workflow_dispatch:


Cácworkflow_dispatchEvent trong GitHub Actions cho phép bạn kích hoạt một dòng công việc theo cách thủ công từ giao diện GitHub hoặc thông qua API.Lập lịch để chạy tự độngvào một thời điểm cụ thể.

Lập lịch để chạy tự động

API Keys

Chìa khóa lửa

Chúng tôi sẽ cần một vài phím API để hoàn thành cấu hình của chúng tôi:OPENAI_API_KEYĐối với các hoạt động vàSHOPIFY_ACCESS_TOKENĐể liên lạc với cửa hàng của chúng tôi.


Nhận khóa API OpenAI từTài khoản OpenAI của bạn,Và đặt nóNhư một bí mật trên GitHubCó được một mã thông báo truy cập Shopify là khó khăn vì bạn cần phải tạo một ứng dụng ngớ ngẩn để làm điều đó.Hướng dẫn chính thức nàyĐể có được một

Tài khoản OpenAI của bạnNhư một bí mật trên GitHubHướng dẫn chính thức này

ShopCTL

Mua sắm

Chúng tôi sẽ sử dụng acommand-line toolđể xuất khẩu và cập nhật sản phẩm của chúng tôi. Chúng ta hãy tạo một hành động tùy chỉnh mà chúng ta có thể tái sử dụng để tham khảo trong đường ống của chúng tôi. Tạo một tệp được gọi làsetup-shopctl.ymlbên trong thư mục hành động và thêm config sau.

Công cụ Command Line


# .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"


Ngoài các hành động tùy chỉnh, chúng tôi cần thêm cấu hình cho cửa hàng mà chúng tôi đang vận hành.Tạo một thư mục có tênshopctltrên root của repo và thêm config sau vào một tập tin được gọi là.shopconfig.ymlThay thế tất cả các sự kiện củastore1Với cửa hàng của bạn alias.


# shopctl/.shopcofig.yml

ver: v0
contexts:
    - alias: store1
      store: store1.myshopify.com
currentContext: store1


Hoàn thành đường ống

Nguồn đầy đủ cho đường ống có thể được tìm thấy ở đây.

Nguồn đầy đủ cho đường ống có thể được tìm thấy ở đây.

Ở đâyỞ đây


Đường ống của chúng tôi có bốn giai đoạn, viz:Export -> Enrich -> Update -> Notify

Stage 1: Export Products

Giai đoạn 1: Sản phẩm xuất khẩu

Bước đầu tiên trong đường ống dẫn của chúng tôi là xuất khẩu các sản phẩm mới nhất từ cửa hàng của chúng tôi.export-productsTrong theenrich-products.ymlfile mà chúng tôi đã tạo trước đó.


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


Công việc ở trên sẽ được thiết lậpShopCTLSử dụng hành động tùy chỉnh mà chúng tôi đã tạo trước đó. nó sẽ xuất tất cả các sản phẩm được tạo trong 7 ngày qua và tải chúng lên dưới dạng hiện vật nếu có bất kỳ sản phẩm mới nào.

Mua sắm

Stage 2a: Review Catalog

Giai đoạn 2a: Đánh giá Catalog

Điều tiếp theo chúng tôi muốn làm là xem lại danh mục của chúng tôi.Chúng tôi sẽ sử dụng OpenAI API để xem xét các mẫu dữ liệu sản phẩm và xác định những điều sau:


  • Các vấn đề hoặc sự không nhất quán trong thẻ, loại sản phẩm hoặc biến thể
  • Thiếu hoặc không nhất quán thông tin hàng tồn kho
  • Lỗ hổng trong cấu hình sản phẩm hoặc cấu trúc biến thể
  • Sản phẩm trùng lặp hoặc quá giống nhau
  • Các khuyến nghị chung để cải thiện chất lượng danh mục và tính toàn diện của nó


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!"


Lưu ý Theneedsphần. Chúng tôi muốn chạy nó sau khi các sản phẩm được xuất khẩu và sẵn có dưới dạng hiện vật. Chúng tôi cũng cần thiết lập Python, vì kịch bản đánh giá của chúng tôi được viết bằng Python. Bạn có thể sử dụng bất kỳ ngôn ngữ nào của sự lựa chọn của bạn ở đây. kịch bản tạo rareview_summary.md, được tải lên như một hiện vật trong bước tiếp theo (ví dụ đầu ra bên dưới).


## Identified Issues

### 1. Missing or Inconsistent Information:
- Some products have missing or inconsistent `productType` (e.g. `"gid://shopify/Product/8790718087392"`, `"gid://shopify/Product/879071795632


Sample script và prompt có thể làfound here.

Tìm thấy tại đây

Stage 2b: Enrich Products

Giai đoạn 2b: Làm giàu sản phẩm

Tương tự như Thereview-catalogcông việc, thêm mộtenrich-products công việcsẽ chạy kịch bản để xem xét tiêu đề sản phẩm và tạo tiêu đề SEO và mô tả cho sản phẩm bằng cách sử dụng OpenAI. công việc này chạy song song với công việc đánh giá danh mục và tạo ra một CSV với các chi tiết về siêu dữ liệu để cập nhật.

công việc


Generated enriched_products.csv file



Sample script và prompt có thể làTìm thấy tại đây.

Tìm thấy tại đây

Stage 3: Update Products

Bước 3: Cập nhật sản phẩm

Một khi siêu dữ liệu được tạo ra ở giai đoạn 2b, chúng tôi có thể cập nhật các sản phẩm bằng cách sử dụngMua sắmChúng tôi sẽ sử dụng kịch bản bash thay vì Python ở giai đoạn này.

Mua sắm


Thêm một công việc được gọiupdate-productsNhư thể hiện bên dưới.


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!"


Công việc tương đối đơn giản; nó sử dụng kịch bản bash để đọc từ tệp CSV được tạo trong bước trước, cập nhật sản phẩm bằng ShopCTL và tạo tệp nhật ký.

Stage 4: Notify

Bước 4: Thông báo

Bây giờ, điều duy nhất còn lại là thông báo cho những người quan tâm rằng công việc đã được hoàn thành (hoặc thất bại) và những gì đã thay đổi.Bạn có thể gửi thông báo Slack hoặc email các chi tiết.Chúng tôi sẽ đơn giản lấy và in nhật ký vì lợi ích của hướng dẫn.


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


Đặt tất cả cùng nhau

Ví dụ ở trên cho thấy cách bạn có thể tận dụng các công cụ sẵn có để tạo ra một cái gì đó độc đáo và mạnh mẽ, tùy chỉnh cho trường hợp sử dụng của bạn, mà không chuyển dữ liệu lưu trữ nhạy cảm cho các ứng dụng bên ngoài.


Trong khi chứng minh khái niệm của chúng tôi bỏ qua một vài yếu tố thiết yếu cấp độ sản xuất - chẳng hạn như sử dụng một cửa hàng sân khấu để phê duyệt thủ công và xử lý lỗi đúng cách - nó cung cấp cho bạn một ý tưởng chung về cách bắt đầu.

Tải Takeaway

Mức độ linh hoạt và kiểm soát này mở ra khả năng không giới hạn - từ thử nghiệm A / B tự động trên các bản sao sản phẩm, quy trình làm việc làm giàu đa ngôn ngữ, thí nghiệm định giá năng động và dọn dẹp hàng tồn kho tự động đến các khuyến nghị cá nhân hóa và hơn thế nữa.


Với mỗi bước trong tầm kiểm soát của bạn, bạn có thể thử nghiệm với những ý tưởng mới, thích ứng nhanh chóng với những thay đổi thị trường và mở rộng quy mô hoạt động một cách dễ dàng khi doanh nghiệp của bạn phát triển.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks