Shirkadda Shopify ee loo isticmaalaa workflow automated
Shirkadda Shopify ee loo isticmaalaa workflow automated
Shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha
Sida loo yaabaa, waxaa laga yaabaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa.
Xafiisyada control
Waayo, Robot waa in aad u raaxaysaa in aad ka mid ah wax soo saarka ah!
Waayo, Robot waa in aad u raaxaysaa in aad ka mid ah wax soo saarka ah!
Waxaad ka mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid
- Shuruudaha dhismaha
- Nadiifinta ugu fiican ee marka iyo waxyaabaha
- Workflows Shareable: macluumaadka badan ayaa loo isticmaali karaa mid ka mid ah workflow oo ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah.
- Shuruudaha dhismaha iyo dhismaha
Sida loo yaabaa, waxaan ku yaalaa in ay ku yaalaa in ay ku yaalaa wax soo saarka CI ah ee loo isticmaali karaa in ay ka caawin karaa macluumaadka ugu horeysay. Si kastaba ha ahaatee, waxaan loo soo saarka wax soo saarka in ay ku caawinay wax soo saarka-saarka.
Qalabka Stack
Sida loo yaqaan 'Workflow':
- Shopify - waxa uu ku yaalaa waxyaabaha our
- Shirkadda GitHub - for orchestration and automation
- ShopCTL — Dhammaan line for shuruudaha shuruudaha Shopify
- OpenAI API - si ay u aragto titirada waxyaabaha, si ay u soo saarka content SEO, iyo si ay u soo saarka
- Python iyo mid ka mid ah scripts Bash – for the enrichment logic iyo updates
First Things First - Qalabka Qalabka
Sida loo yaqaan "GitHub Actions workflow" waxaa loo yaqaan "GitHub Actions workflow" oo loo yaqaan "GitHub Actions workflow" iyo "GitHub Actions workflow"..github/workflows/
Haku: Haku: Haku: Haku: Hakuenrich-products.yml
Marka aad u baahan tahay in aad u aragto workflows.This file will define jobs for our product-content workflow.
# .github/workflows/enrich-products.yml
name: Shopify Product Enrichment
on:
workflow_dispatch:
EE.UUworkflow_dispatch
Event in GitHub Actions waxay ka caawinay in la isticmaali karaa workflow ka mid ah interface GitHub ama via API, ama sidoo kale waxaa loo isticmaali karaa
API Keys
Qalabka FireWaayo, waxaan u baahan tahay in ka mid ah macluumaadka API ah si ay u baabuurta:OPENAI_API_KEY
Waayo, waxaa loo isticmaali karaaSHOPIFY_ACCESS_TOKEN
Nala soo xiriir our shop.
Waqtiga OpenAI API oo ka mid ah
ShopCTL
ShirkaddaWaxaan u isticmaali karaa asetup-shopctl.yml
Markaad ka mid ah wax soo saarka, waxaa laga yaabaa in ay ku saabsan wax soo saarka.
# .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"
Markaas ka mid ah macluumaadka adeegga ah, waxaan u baahan tahay in ay ka mid ah macluumaadka loo isticmaali karaa.shopctl
Raac ah oo ka mid ah wax soo saarka ah oo ka mid ah wax soo saarka iyo wax soo saarka.shopconfig.yml
Qalabka ugu horeysay eestore1
Sida loo yaqaan Alias.
# shopctl/.shopcofig.yml
ver: v0
contexts:
- alias: store1
store: store1.myshopify.com
currentContext: store1
Qalabka Pipeline
Source Full for pipeline waxaa laga yaabaa siin.
Source Full for pipeline waxaa laga yaabaa siin.
Sidaa waxaa laga yaabaa in ay ka mid ah soo saarka ah oo ka mid ah wax soo saarka ah.Export -> Enrich -> Update -> Notify
Stage 1: Export Products
Qalabka 1: Products ExportSida loo yaabaa, waxaa laga yaabaa in ay ka mid ah wax soo saarka iyo wax soo saarka.export-products
Waxaa laenrich-products.yml
Xafiiska ugu horeysay ee loo yaabaa.
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
Shuruudaha ugu horeysay waxaa loo yaabaa
Stage 2a: Review Catalog
Qalabka 2a: Catalog ReviewWaxaad ka mid ah loo isticmaali karaa OpenAI API si ay u isticmaali karaa data samaynta waxyaabaha iyo si ay u isticmaali karaa:
- Qalabka ama wax soo saarka ee tags, product types, or variants
- Shuruudaha ugu caawin ah oo ka mid ah shuruudaha ugu caawin
- Qalabka wax soo saarka ah oo ku saabsan wax soo saarka wax soo saarka.
- Products Duplicate / Products Overly Similar
- Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka
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!"
Waayo,needs
Section. Waxaan u baahan tahay si ay u shaqeeyaan ka dib markii wax soo saarka waxaa la taabto iyo si ay u isticmaali karaa sida artifacts. Waxaan sidoo kale u baahan tahay si ay u quruxda Python, sida our scripts review waa la aasaasay in Python.review_summary.md
, oo loo soo dejisan sida artifact ee ka mid ah qaadiidka ka dibna (example output below).
## Identified Issues
### 1. Missing or Inconsistent Information:
- Some products have missing or inconsistent `productType` (e.g. `"gid://shopify/Product/8790718087392"`, `"gid://shopify/Product/879071795632
Shuruudaha dhismaha iyo shuruudaha waxaa laga yaabaa
Stage 2b: Enrich Products
Shiinaha 2b: Products EnrichSidee ka mid ahreview-catalog
Qalabka, Add aenrich-products
Shuruudaha dhismaha iyo shuruudaha waxaa laga yaabaa
Stage 3: Update Products
Qalabka 3: Update ProductsKa dib markii metadata waxaa loo soo saarka in step 2b, waxaan sidoo kale loo isticmaali karaa waxyaabaha loo isticmaali karaa.
Nala soo xiriirupdate-products
Sida loo yaabaa ka dibna.
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!"
Shuruudaha waxaa loo isticmaali karaa shuruudaha bash si ay u isticmaali karaa file CSV loo isticmaali karaa, si ay u isticmaali karaa ShopCTL iyo loo isticmaali karaa file log.
Stage 4: Notify
Tusaale 4 : TusaaleWaxaad ka mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ka mid ah.
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
Waayo, waxaa lagu soo bandhigay
Dhismaha ugu horeysay waa in aad u isticmaali karaa in ay u isticmaali karaa in ay u isticmaali karaa in ay u isticmaali karaa in ay u isticmaali karaa in ay u isticmaali karaa in ay u isticmaali karaa in ay isticmaali karaa in ay isticmaali karaa in ay isticmaali karaa in ay isticmaali karaa in ay isticmaali karaa.
Markaad ka mid ah wax soo saarka waaweyn oo ka mid ah wax soo saarka iyo wax soo saarka waaweyn oo ka mid ah wax soo saarka iyo wax soo saarka.
Haku
Taageerada dhismaha iyo shuruudaha waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn waaweyn.
Marka aad u isticmaali karaa in aad u isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa.