Μηχανική μια πλήρως αυτοματοποιημένη ροή εργασίας για ένα κατάστημα 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 – για τη λογική εμπλουτισμού και ενημερώσεις Ψώνια Δραστηριότητες GitHub Ψώνια Ανοιχτή φωτιά Πυθώνιος Μπας Πρώτα τα πράγματα πρώτα - Ρυθμίστε το Stack Ας ξεκινήσουμε με τη δημιουργία μιας ροής εργασίας GitHub Actions. θα αποθηκεύσουμε τις διαμορφώσεις σωλήνων στο Δημιουργία αρχείου με το όνομα Αυτό το αρχείο θα καθορίσει εργασίες για τη ροή εργασίας περιεχομένου του προϊόντος μας. .github/workflows/ enrich-products.yml # .github/workflows/enrich-products.yml name: Shopify Product Enrichment on: workflow_dispatch: Η Η εκδήλωση στο GitHub Actions σάς επιτρέπει να ενεργοποιήσετε χειροκίνητα μια ροή εργασίας από τη διεπαφή GitHub ή μέσω του API, ή μπορείτε να Σε μια συγκεκριμένη στιγμή. workflow_dispatch Προγραμματίστε το να τρέξει αυτόματα Προγραμματίστε το να τρέξει αυτόματα API Keys Κλειδιά φωτιάς Χρειαζόμαστε μερικά κλειδιά API για να ολοκληρώσουμε τη διαμόρφωσή μας: Για τις επιχειρήσεις και Επικοινωνία με το κατάστημά μας. OPENAI_API_KEY SHOPIFY_ACCESS_TOKEN Αποκτήστε το κλειδί OpenAI API από Και το έβαλε Η απόκτηση ενός token πρόσβασης Shopify είναι δύσκολη δεδομένου ότι πρέπει να δημιουργήσετε μια εφαρμογή dummy για να το κάνετε αυτό. Να πάρετε ένα. , Ανοίξτε τον λογαριασμό σας Ως μυστικό στο GitHub Ο επίσημος οδηγός Ανοίξτε τον λογαριασμό σας Ως μυστικό στο GitHub Ο επίσημος οδηγός 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" Εκτός από τις προσαρμοσμένες ενέργειες, πρέπει να προσθέσουμε μια διαμόρφωση για το κατάστημα που λειτουργούμε. στη ρίζα του repo και προσθέστε την ακόλουθη διαμόρφωση σε ένα αρχείο που ονομάζεται Αντικαταστήστε όλα τα περιστατικά Με το κατάστημά σας Alias. shopctl .shopconfig.yml store1 # 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 Το επόμενο στάδιο θα δημιουργηθεί χρησιμοποιώντας την προσαρμοσμένη δράση που δημιουργήσαμε νωρίτερα. θα εξάγει όλα τα προϊόντα που δημιουργήθηκαν τις τελευταίες 7 ημέρες και θα τα ανεβάσει ως αντικείμενα εάν υπάρχουν νέα προϊόντα. Ψώνια Ψώνια 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!" Σημειώστε το Θέλουμε να το εκτελέσουμε αφού τα προϊόντα εξάγονται και διατίθενται ως αντικείμενα. Πρέπει επίσης να δημιουργήσουμε το 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 Το σενάριο δείγματος και το prompt μπορούν να . Βρέθηκαν εδώ Βρέθηκαν εδώ Stage 2b: Enrich Products Στάδιο 2β: Εμπλουτισμός προϊόντων Παρόμοια με την εργασία, προσθέστε ένα που θα εκτελέσει το σενάριο για να αναθεωρήσει τον τίτλο του προϊόντος και να δημιουργήσει έναν τίτλο SEO και περιγραφή για το προϊόν χρησιμοποιώντας το OpenAI. Αυτή η εργασία εκτελείται παράλληλα με την εργασία αναθεώρησης καταλόγου και δημιουργεί ένα CSV με λεπτομέρειες για μεταδεδομένα για ενημέρωση. review-catalog enrich-products Εργασία Εργασία Το σενάριο δείγματος και το prompt μπορούν να . found here Βρέθηκαν εδώ Stage 3: Update Products Στάδιο 3: Ενημέρωση προϊόντων Μόλις δημιουργηθούν τα μεταδεδομένα στο στάδιο 2β, μπορούμε να ενημερώσουμε τα προϊόντα χρησιμοποιώντας Θα χρησιμοποιήσουμε ένα bash script αντί για Python σε αυτό το στάδιο. Ψώνια Ψώνια Προσθέστε μια δουλειά που ονομάζεται Όπως φαίνεται πιο κάτω. 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 σε αντίγραφα προϊόντων, ροές εργασίας εμπλουτισμού πολλαπλών γλωσσών, πειράματα δυναμικής τιμολόγησης και αυτοματοποιημένο καθαρισμό αποθεμάτων σε εξατομικευμένες συστάσεις και πέραν αυτού. Με κάθε βήμα στον έλεγχό σας, μπορείτε να πειραματιστείτε με νέες ιδέες, να προσαρμοστείτε γρήγορα στις αλλαγές της αγοράς και να κλιμακώσετε τις λειτουργίες σας χωρίς κόπο καθώς η επιχείρησή σας μεγαλώνει.