Νέα ιστορία

Οδηγός για την κατασκευή ενός αυτοματοποιημένου αγωγού εμπλουτισμού προϊόντων με τεχνητή νοημοσύνη για το Shopify

με Ankit P.12m2025/04/27
Read on Terminal Reader

Πολύ μακρύ; Να διαβασω

Θα δημιουργήσουμε έναν αγωγό χρησιμοποιώντας τις ενέργειες του GitHub για να εξαγάγουμε τα τελευταία προϊόντα από το κατάστημα Shopify, να εκτελέσουμε κάποιες ενέργειες χρησιμοποιώντας το LLM και να ενημερώσουμε τα προϊόντα.
featured image - Οδηγός για την κατασκευή ενός αυτοματοποιημένου αγωγού εμπλουτισμού προϊόντων με τεχνητή νοημοσύνη για το Shopify
Ankit P. HackerNoon profile picture


Μηχανική μια πλήρως αυτοματοποιημένη ροή εργασίας για ένα κατάστημα 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:


Ηworkflow_dispatchΗ εκδήλωση στο GitHub Actions σάς επιτρέπει να ενεργοποιήσετε χειροκίνητα μια ροή εργασίας από τη διεπαφή GitHub ή μέσω του API, ή μπορείτε ναΠρογραμματίστε το να τρέξει αυτόματαΣε μια συγκεκριμένη στιγμή.

Προγραμματίστε το να τρέξει αυτόματα

API Keys

Κλειδιά φωτιάς

Χρειαζόμαστε μερικά κλειδιά API για να ολοκληρώσουμε τη διαμόρφωσή μας:OPENAI_API_KEYΓια τις επιχειρήσεις καιSHOPIFY_ACCESS_TOKENΕπικοινωνία με το κατάστημά μας.


Αποκτήστε το κλειδί OpenAI API απόΑνοίξτε τον λογαριασμό σας,Και το έβαλεΩς μυστικό στο GitHubΗ απόκτηση ενός token πρόσβασης Shopify είναι δύσκολη δεδομένου ότι πρέπει να δημιουργήσετε μια εφαρμογή dummy για να το κάνετε αυτό.Ο επίσημος οδηγόςΝα πάρετε ένα.

Ανοίξτε τον λογαριασμό σαςΩς μυστικό στο 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"


Εκτός από τις προσαρμοσμένες ενέργειες, πρέπει να προσθέσουμε μια διαμόρφωση για το κατάστημα που λειτουργούμε.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


Το επόμενο στάδιο θα δημιουργηθείΨώνιαχρησιμοποιώντας την προσαρμοσμένη δράση που δημιουργήσαμε νωρίτερα. θα εξάγει όλα τα προϊόντα που δημιουργήθηκαν τις τελευταίες 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!"


Σημειώστε το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 Εργασίαπου θα εκτελέσει το σενάριο για να αναθεωρήσει τον τίτλο του προϊόντος και να δημιουργήσει έναν τίτλο SEO και περιγραφή για το προϊόν χρησιμοποιώντας το OpenAI. Αυτή η εργασία εκτελείται παράλληλα με την εργασία αναθεώρησης καταλόγου και δημιουργεί ένα CSV με λεπτομέρειες για μεταδεδομένα για ενημέρωση.

Εργασία


Generated enriched_products.csv file



Το σενάριο δείγματος και το 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 σε αντίγραφα προϊόντων, ροές εργασίας εμπλουτισμού πολλαπλών γλωσσών, πειράματα δυναμικής τιμολόγησης και αυτοματοποιημένο καθαρισμό αποθεμάτων σε εξατομικευμένες συστάσεις και πέραν αυτού.


Με κάθε βήμα στον έλεγχό σας, μπορείτε να πειραματιστείτε με νέες ιδέες, να προσαρμοστείτε γρήγορα στις αλλαγές της αγοράς και να κλιμακώσετε τις λειτουργίες σας χωρίς κόπο καθώς η επιχείρησή σας μεγαλώνει.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks