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 Shirkadda Qalabka GitHub Shirkadda Qalabka Fire QEEBE Haku 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". Haku: Haku: Haku: Haku: Haku 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 # .github/workflows/enrich-products.yml name: Shopify Product Enrichment on: workflow_dispatch: EE.UU 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 Waayo, waxaa laga yaabaa in ay ku saabsan. workflow_dispatch Waayo, waxaa loo isticmaali karaa automatically. Waayo, waxaa loo isticmaali karaa automatically. API Keys Qalabka Fire Waayo, waxaan u baahan tahay in ka mid ah macluumaadka API ah si ay u baabuurta: Waayo, waxaa loo isticmaali karaa Nala soo xiriir our shop. OPENAI_API_KEY SHOPIFY_ACCESS_TOKEN Waqtiga OpenAI API oo ka mid ah Ku yaalaa Shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha shuruudaha Haku 1 , Qalabka OpenAI Ku saabsan GitHub Taageerada Official Qalabka OpenAI Ku saabsan GitHub Taageerada Official ShopCTL Shirkadda Waxaan u isticmaali karaa a Waayo, waxa uu ka soo bandhigay in ay ka mid ah wax soo saarka iyo wax soo saarka, oo ka mid ah wax soo saarka. Markaad ka mid ah wax soo saarka, waxaa laga yaabaa in ay ku saabsan wax soo saarka. Qalabka Command Line setup-shopctl.yml Qalabka Command Line # .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. Raac ah oo ka mid ah wax soo saarka ah oo ka mid ah wax soo saarka iyo wax soo saarka Qalabka ugu horeysay ee Sida loo yaqaan Alias. shopctl .shopconfig.yml store1 # 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. Haku Haku 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 Export Sida loo yaabaa, waxaa laga yaabaa in ay ka mid ah wax soo saarka iyo wax soo saarka. Waxaa la Xafiiska ugu horeysay ee loo yaabaa. 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 Shuruudaha ugu horeysay waxaa loo yaabaa Marka aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan yahay. Shirkadda Shirkadda Stage 2a: Review Catalog Qalabka 2a: Catalog Review Waxaad 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, 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. , oo loo soo dejisan sida artifact ee ka mid ah qaadiidka ka dibna (example output below). 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 Shuruudaha dhismaha iyo shuruudaha waxaa laga yaabaa . Haku Haku Stage 2b: Enrich Products Shiinaha 2b: Products Enrich Sidee ka mid ah Qalabka, Add a Shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha ugu horeysay ee shuruudaha. review-catalog enrich-products Haku Haku Shuruudaha dhismaha iyo shuruudaha waxaa laga yaabaa . Haku Haku Stage 3: Update Products Qalabka 3: Update Products Ka dib markii metadata waxaa loo soo saarka in step 2b, waxaan sidoo kale loo isticmaali karaa waxyaabaha loo isticmaali karaa. Waxaan loo isticmaali karaa bash script ama Python at this stage. Shirkadda Shirkadda Nala soo xiriir Sida loo yaabaa ka dibna. 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!" 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 : Tusaale Waxaad 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.