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
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.yml
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
name: Shopify Product Enrichment
on:
workflow_dispatch:
Cácworkflow_dispatch
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.
API Keys
Chìa khóa lửaChú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ừ
ShopCTL
Mua sắmChúng tôi sẽ sử dụng asetup-shopctl.yml
bên trong thư mục hành động và thêm config sau.
# .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ênshopctl
trên root của repo và thêm config sau vào một tập tin được gọi là.shopconfig.yml
Thay thế tất cả các sự kiện củastore1
Vớ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.
Đườ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ẩuBướ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-products
Trong theenrich-products.yml
file 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ập
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 ý Theneeds
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 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à
Stage 2b: Enrich Products
Giai đoạn 2b: Làm giàu sản phẩmTương tự như Thereview-catalog
công việc, thêm mộtenrich-products
Sample script và prompt có thể là
Stage 3: Update Products
Bước 3: Cập nhật sản phẩmMộ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
Thêm một công việc được gọiupdate-products
Như 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áoBâ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.