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 Shopify Hoạt động GitHub Mua sắm Mở API Python Bash 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 Tạo một tập tin có tên trong 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 # .github/workflows/enrich-products.yml name: Shopify Product Enrichment on: workflow_dispatch: Các Event 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. vào một thời điểm cụ thể. workflow_dispatch Lập lịch để chạy tự động 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: Đối với các hoạt động và Để liên lạc với cửa hàng của chúng tôi. OPENAI_API_KEY SHOPIFY_ACCESS_TOKEN Nhận khóa API OpenAI từ Và đặt nó Có đượ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 đó. Để có được một , Tài khoản OpenAI của bạn Như một bí mật trên GitHub Hướng dẫn chính thức này Tài khoản OpenAI của bạn Như một bí mật trên GitHub Hướng dẫn chính thức này ShopCTL Mua sắm Chúng tôi sẽ sử dụng a để 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à bên trong thư mục hành động và thêm config sau. command-line tool setup-shopctl.yml 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ên trên root của repo và thêm config sau vào một tập tin được gọi là Thay thế tất cả các sự kiện của Với cửa hàng của bạn alias. shopctl .shopconfig.yml store1 # 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. Trong the file mà chúng tôi đã tạo trước đó. 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 Công việc ở trên sẽ được thiết lập Sử 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. ShopCTL 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 ý The phầ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 ra , đượ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). 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 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ư The công việc, thêm một sẽ 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. review-catalog enrich-products công việc công việc 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ụng Chúng tôi sẽ sử dụng kịch bản bash thay vì Python ở giai đoạn này. Mua sắm Mua sắm Thêm một công việc được gọi Như thể hiện bên dưới. 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!" 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.