Μηχανική μια πλήρως αυτοματοποιημένη ροή εργασίας για ένα κατάστημα Shopify
Μηχανική μια πλήρως αυτοματοποιημένη ροή εργασίας για ένα κατάστημα Shopify
Η διατήρηση ενός επιτυχημένου καταστήματος ηλεκτρονικού εμπορίου έρχεται με το δίκαιο μερίδιο των προκλήσεων. απαιτεί συνεχή προσοχή στις συνεχώς μεταβαλλόμενες λεπτομέρειες σε όλο το απόθεμα, την εμπειρία των πελατών και τις ενημερώσεις της πλατφόρμας.
Ενώ το Shopify προσφέρει ένα πλούσιο οικοσύστημα εφαρμογών και διεπαφών drag-and-drop, συχνά απαιτεί από εσάς να εμπορεύεστε διαφάνεια και έλεγχο για ευκολία.
Πήρε πίσω τον έλεγχο
Αφήστε τα ρομπότ να ανησυχούν για τα βαρετά πράγματα!
Αφήστε τα ρομπότ να ανησυχούν για τα βαρετά πράγματα!
Αργά ή γρήγορα, θα χτυπήσετε τα όρια με off-the-shelf εφαρμογές και χειροκίνητες ροές εργασίας και θα αρχίσετε να ψάχνετε για εναλλακτικές λύσεις.Μια τέτοια εναλλακτική λύση είναι να μετακινηθείτε μακριά από GUI-centric εργαλεία προς προγραμματιζόμενους αγωγούς που προσφέρουν πλήρη ευελιξία και έλεγχο.
- Πλήρης ιδιοκτησία των δεδομένων σας
- Βελτιώσεις προσαρμοσμένες στη μάρκα και τα προϊόντα σας
- Κοινές ροές εργασίας: Πολλαπλά καταστήματα θα μπορούσαν να χρησιμοποιήσουν την ίδια ροή εργασίας με ελάχιστες ή καθόλου προσαρμογές
- Εμπιστοσύνη σε κάθε βήμα της διαδικασίας
Τώρα, ας εξερευνήσουμε πώς μπορούμε να χτίσουμε έναν αυτοματοποιημένο αγωγό CI για να βοηθήσουμε στον μετριασμό των προβλημάτων που αναφέρθηκαν παραπάνω. Ως απόδειξη της ιδέας, θα δημιουργήσουμε έναν αγωγό για να εξορθολογίσουμε τη ροή εργασίας του περιεχομένου του προϊόντος μας. ο αγωγός θα χρησιμοποιήσει το LLM για να αναθεωρήσει τα τελευταία προϊόντα στο κατάστημά μας, να βελτιστοποιήσει τον τίτλο, να προσθέσει τίτλο και περιγραφή SEO και να δημιουργήσει μια περίληψη για την ομάδα να αναθεωρήσει.
Το Stack
Εδώ είναι τι ενισχύει τη ροή εργασίας:
- Shopify – όπου ζουν τα προϊόντα μας
- Δράσεις GitHub – για ορχήστρα και αυτοματοποίηση
- ShopCTL – Ένα βοηθητικό πρόγραμμα γραμμής εντολών για τη διαχείριση του Shopify Store
- OpenAI API – για την αναθεώρηση των τίτλων προϊόντων, τη δημιουργία περιεχομένου SEO και την παροχή προτάσεων
- Python και μερικά σενάρια Bash – για τη λογική εμπλουτισμού και ενημερώσεις
Πρώτα τα πράγματα πρώτα - Ρυθμίστε το Stack
Ας ξεκινήσουμε με τη δημιουργία μιας ροής εργασίας GitHub Actions. θα αποθηκεύσουμε τις διαμορφώσεις σωλήνων στο.github/workflows/
Δημιουργία αρχείου με το όνομαenrich-products.yml
Αυτό το αρχείο θα καθορίσει εργασίες για τη ροή εργασίας περιεχομένου του προϊόντος μας.
# .github/workflows/enrich-products.yml
name: Shopify Product Enrichment
on:
workflow_dispatch:
Ηworkflow_dispatch
Η εκδήλωση στο GitHub Actions σάς επιτρέπει να ενεργοποιήσετε χειροκίνητα μια ροή εργασίας από τη διεπαφή GitHub ή μέσω του API, ή μπορείτε να
API Keys
Κλειδιά φωτιάςΧρειαζόμαστε μερικά κλειδιά API για να ολοκληρώσουμε τη διαμόρφωσή μας:OPENAI_API_KEY
Για τις επιχειρήσεις καιSHOPIFY_ACCESS_TOKEN
Επικοινωνία με το κατάστημά μας.
Αποκτήστε το κλειδί OpenAI API από
ShopCTL
ΨώνιαΘα χρησιμοποιήσουμε ένα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"
Εκτός από τις προσαρμοσμένες ενέργειες, πρέπει να προσθέσουμε μια διαμόρφωση για το κατάστημα που λειτουργούμε.shopctl
στη ρίζα του repo και προσθέστε την ακόλουθη διαμόρφωση σε ένα αρχείο που ονομάζεται.shopconfig.yml
Αντικαταστήστε όλα τα περιστατικάstore1
Με το κατάστημά σας Alias.
# shopctl/.shopcofig.yml
ver: v0
contexts:
- alias: store1
store: store1.myshopify.com
currentContext: store1
Ολοκλήρωση του αγωγού
Η πλήρης πηγή για τον αγωγό μπορεί να βρεθεί εδώ.
Η πλήρης πηγή για τον αγωγό μπορεί να βρεθεί εδώ.
Ο αγωγός μας έχει τέσσερα στάδια, viz:Export -> Enrich -> Update -> Notify
Stage 1: Export Products
Στάδιο 1: Εξαγωγές προϊόντωνΤο πρώτο βήμα στον αγωγό μας είναι να εξάγουμε τα τελευταία προϊόντα από το κατάστημά μας.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
Το επόμενο στάδιο θα δημιουργηθεί
Stage 2a: Review Catalog
Στάδιο 2α: Ανασκόπηση του καταλόγουΤο επόμενο πράγμα που θέλουμε να κάνουμε είναι να αναθεωρήσουμε τον κατάλογό μας. θα χρησιμοποιήσουμε το 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!"
Σημειώστε τοneeds
Θέλουμε να το εκτελέσουμε αφού τα προϊόντα εξάγονται και διατίθενται ως αντικείμενα. Πρέπει επίσης να δημιουργήσουμε το Python, καθώς το σενάριο ανασκόπησης μας είναι γραμμένο σε Python. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε γλώσσα της επιλογής σας εδώ. Το σενάριο δημιουργεί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
Το σενάριο δείγματος και το prompt μπορούν να
Stage 2b: Enrich Products
Στάδιο 2β: Εμπλουτισμός προϊόντωνΠαρόμοια με τηνreview-catalog
εργασία, προσθέστε έναenrich-products
Το σενάριο δείγματος και το prompt μπορούν να
Stage 3: Update Products
Στάδιο 3: Ενημέρωση προϊόντωνΜόλις δημιουργηθούν τα μεταδεδομένα στο στάδιο 2β, μπορούμε να ενημερώσουμε τα προϊόντα χρησιμοποιώντας
Προσθέστε μια δουλειά που ονομάζεται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!"
Η εργασία είναι σχετικά απλή: χρησιμοποιεί ένα σενάριο bash για να διαβάσει από το αρχείο CSV που δημιουργήθηκε στο προηγούμενο βήμα, να ενημερώσει το προϊόν χρησιμοποιώντας το ShopCTL και να δημιουργήσει ένα αρχείο καταγραφής.
Stage 4: Notify
Στάδιο 4: ΕνημέρωσηΤώρα, το μόνο πράγμα που μένει είναι να ειδοποιήσετε τους ενδιαφερόμενους ότι η εργασία έχει ολοκληρωθεί (ή απέτυχε) και τι έχει αλλάξει. μπορείτε είτε να στείλετε μια ειδοποίηση Slack ή να στείλετε ηλεκτρονικό ταχυδρομείο τις λεπτομέρειες.
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
Να τα βάλουμε όλα μαζί
Το παραπάνω παράδειγμα δείχνει πώς μπορείτε να αξιοποιήσετε τα διαθέσιμα εργαλεία για να δημιουργήσετε κάτι μοναδικό και ισχυρό, προσαρμοσμένο στην περίπτωση χρήσης σας, χωρίς να μεταφέρετε ευαίσθητα δεδομένα αποθήκευσης σε εξωτερικές εφαρμογές.
Ενώ η απόδειξη της ιδέας μας παρακάμπτει μερικά βασικά στοιχεία παραγωγικής κλάσης - όπως η χρήση ενός καταστήματος σκηνής για χειροκίνητες εγκρίσεις και σωστή διαχείριση σφαλμάτων - σας δίνει μια γενική ιδέα για το πώς να ξεκινήσετε.
ΠΡΟΣΚΛΗΣΗ
Αυτό το επίπεδο ευελιξίας και ελέγχου ανοίγει απεριόριστες δυνατότητες - από αυτοματοποιημένες δοκιμές A / B σε αντίγραφα προϊόντων, ροές εργασίας εμπλουτισμού πολλαπλών γλωσσών, πειράματα δυναμικής τιμολόγησης και αυτοματοποιημένο καθαρισμό αποθεμάτων σε εξατομικευμένες συστάσεις και πέραν αυτού.
Με κάθε βήμα στον έλεγχό σας, μπορείτε να πειραματιστείτε με νέες ιδέες, να προσαρμοστείτε γρήγορα στις αλλαγές της αγοράς και να κλιμακώσετε τις λειτουργίες σας χωρίς κόπο καθώς η επιχείρησή σας μεγαλώνει.