Darmowy szablon automatyzacji

Pobierz wszystkie zamówienia z Shopify do Arkuszy Google

227
2 mies. temu
11
bloków


Automatyzacja pobierania zamówień Shopify do Google Sheets

Ten szablon automatyzacji pobiera wszystkie zamówienia z Shopify i zapisuje je w arkuszu Google Sheets, wykorzystując Shopify Admin REST API. Wykorzystuje paginację, aby efektywnie zebrać wszystkie zamówienia.

Początkowo stworzyłem ten workflow dla własnych potrzeb, aby lepiej zrozumieć działanie paginacji w Shopify. Teraz udostępniam go, aby pomóc innym w automatyzacji procesu pobierania zamówień.

Jak to działa

Zamiast korzystać z wbudowanego węzła Shopify (Get Orders Many), ten workflow wykorzystuje węzeł HTTP Request do ręcznego pobierania danych z paginacją.

  • Shopify używa paginacji opartej na kursora (page_info) zamiast tradycyjnych numerów stron
  • Dane paginacji są przechowywane w nagłówkach odpowiedzi, dlatego należy włączyć opcję Include Response Headers and Status w węźle HTTP Request
  • Możesz zmodyfikować parametr limit, aby kontrolować rozmiar partii i optymalizować pod kątem limitów API
  • Workflow może być uruchamiany na żądanie lub według harmonogramu, aby dane były aktualne

Parametry

Możesz dostosować następujące parametry w węźle HTTP Request:

  • limit - Liczba zamówień na żądanie (domyślnie: 50, maksymalnie: 250)
  • fields - Rozdzielana przecinkami lista pól do pobrania
  • page_info - Używane do paginacji; przy paginacji dozwolone są tylko parametry limit i fields

Uwaga: podczas paginacji z parametrem page_info dozwolone są tylko parametry limit i fields

Wymagane dane uwierzytelniające

  • Klucz API Shopify - Wymagany do uwierzytelnienia
  • Dane uwierzytelniające Google Sheets API - Potrzebne do wstawiania danych do arkusza

Dla kogo jest to rozwiązanie?

  • Właściciele sklepów Shopify, którzy potrzebują eksportować wszystkie zamówienia do Google Sheets
  • Użytkownicy, którzy chcą mieć pełną kontrolę nad parametrami API dla zoptymalizowanych zapytań
  • Każdy, kto szuka elastycznego i skalowalnego rozwiązania do ekstrakcji danych z Shopify

Przykłady zastosowań

Ta automatyzacja może być wykorzystana w wielu scenariuszach biznesowych i analitycznych. Oto kilka praktycznych zastosowań:

  • Śledzenie historii zamówień klientów w czasie rzeczywistym
  • Automatyczne tworzenie raportów sprzedaży i analiz biznesowych
  • Integracja danych zamówień z innymi systemami poprzez Google Sheets
  • Monitorowanie popularności produktów i trendów sprzedażowych
  • Tworzenie niestandardowych zestawień dla działów księgowości i finansów
  • Automatyzacja procesów fulfillment poprzez śledzenie zamówień
  • Generowanie danych do kampanii remarketingowych


   Skopiuj kod szablonu   
{"meta":{"instanceId":"e634e668fe1fc93a75c4f2a7fc0dad807ca318b79654157eadb9578496acbc76","templateCredsSetupCompleted":true},"nodes":[{"id":"33114dba-d3e2-469c-bb01-e50d4e84be53","name":"When clicking ‘Test workflow’","type":"n8n-nodes-base.manualTrigger","position":[120,60],"parameters":{},"typeVersion":1},{"id":"68a92424-8345-40d1-bdb2-ad4b68c35406","name":"Get Orders","type":"n8n-nodes-base.httpRequest","position":[500,0],"parameters":{"url":"https://{store}.myshopify.com/admin/api/2025-01/orders.json","options":{"response":{"response":{"fullResponse":true}}},"sendQuery":true,"authentication":"predefinedCredentialType","queryParameters":{"parameters":[{"name":"limit","value":"250"},{"name":"fields","value":"id,note,email,processed_at,customer"},{"name":"={{ $json.page_info ? "page_info" : "status" }}","value":"={{ $json.page_info ? $json.page_info : 'any' }}"}]},"nodeCredentialType":"shopifyAccessTokenApi"},"credentials":{"shopifyAccessTokenApi":{"id":"vtyKGPLLdjc7MLea","name":"Shopify Access Token account"}},"typeVersion":4.2},{"id":"e0e67ff4-cba3-420e-ad06-4201d8517470","name":"Extract page_info ","type":"n8n-nodes-base.code","position":[900,120],"parameters":{"jsCode":"function parseNextParams(headerValue) {n // Match the URL inside <>n const urlMatch = headerValue.match(/<([^>]+)>;\s*rel="next"/);n if (!urlMatch) return null;nn const url = urlMatch[1]; // Extracted URLn const paramsString = url.split("?")[1]; // Get query stringnn if (!paramsString) return {}; // No params foundnn // Convert query string to objectn return paramsString.split("&").reduce((acc, param) => {n const [key, value] = param.split("=");n acc[decodeURIComponent(key)] = decodeURIComponent(value);n return acc;n }, {});n}nn/* Example usagen`; rel="next"`n*/nconst headerValue = $input.first().json.headers.link;nconst params = parseNextParams(headerValue);nreturn params;"},"typeVersion":2},{"id":"fd06d8fa-3c6d-4877-a2e8-cb71b0d0ef32","name":"Merge Loop items","type":"n8n-nodes-base.code","position":[1120,-100],"parameters":{"jsCode":"let results = [],n i = 0;nndo {n try {n results = results.concat($("Get Orders").all(0, i));n } catch (error) {n return results;n }n i++;n} while (true);"},"typeVersion":2},{"id":"cd9840ad-4ec2-4979-b0cc-c7dc42917452","name":"List Orders","type":"n8n-nodes-base.splitOut","position":[1380,-100],"parameters":{"options":{},"fieldToSplitOut":"body.orders"},"typeVersion":1},{"id":"9d491fda-ab2e-4247-85bd-969a07476471","name":"Google Sheets","type":"n8n-nodes-base.googleSheets","position":[1620,-100],"parameters":{"columns":{"value":{"id":"={{ $json.id }}","note":"={{ $json.note }}","email":"={{ $json.email }}","processed_at":"={{ $json.processed_at }}"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"required":false,"displayName":"id","defaultMatch":true,"canBeUsedToMatch":true},{"id":"email","type":"string","display":true,"required":false,"displayName":"email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"processed_at","type":"string","display":true,"required":false,"displayName":"processed_at","defaultMatch":false,"canBeUsedToMatch":true},{"id":"note","type":"string","display":true,"required":false,"displayName":"note","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":2030201341,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1yf_RYZGFHpMyOvD3RKGSvIFY2vumvI4474Qm_1t4-jM/edit#gid=2030201341","cachedResultName":"shopify_orders"},"documentId":{"__rl":true,"mode":"list","value":"1yf_RYZGFHpMyOvD3RKGSvIFY2vumvI4474Qm_1t4-jM","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1yf_RYZGFHpMyOvD3RKGSvIFY2vumvI4474Qm_1t4-jM/edit?usp=drivesdk","cachedResultName":"Squarespace automation"}},"credentials":{"googleSheetsOAuth2Api":{"id":"JgI9maibw5DnBXRP","name":"Google Sheets account"}},"typeVersion":4.5},{"id":"d1974350-5fcb-448a-b895-17b296de0019","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[440,-160],"parameters":{"width":232,"height":346,"content":"## Edit this node 👇nnGet your store URL and replace in the GET url: https://{your-store}.myshopify.com/admin/api/2025-01/orders.jsonn"},"typeVersion":1},{"id":"bbc911a5-0020-47d9-8b2f-2edd7ac83325","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[1580,-260],"parameters":{"width":252,"height":346,"content":"## Clone this spreadsheetnnhttps://docs.google.com/spreadsheets/d/1KRl6aCCU2SE3Z6vB2EbTnSwSUAre0BLf9Wu6fyPlrIE/edit?usp=sharing"},"typeVersion":1},{"id":"fdec0965-3a0c-4886-90b4-f2ef4f0cebdd","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[120,-120],"parameters":{"rule":{"interval":[{}]}},"typeVersion":1.2},{"id":"87cdb9e8-a031-4a40-a5e6-65a0cfc40180","name":"Assign page_info parameter","type":"n8n-nodes-base.set","position":[1120,120],"parameters":{"options":{},"assignments":{"assignments":[{"id":"57e59bb7-ac20-4a1b-b54a-3468fc0519d3","name":"page_info","type":"string","value":"={{ $json.page_info }}"}]}},"typeVersion":3.4},{"id":"8f15e8a1-19de-401f-8ef2-358a42e806bb","name":"Check page_info existence","type":"n8n-nodes-base.if","position":[720,0],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"30d965c3-cbba-430e-81c2-ef8b543665e7","operator":{"type":"string","operation":"notContains"},"leftValue":"={{ $json.headers.link }}","rightValue":"rel="next""}]}},"typeVersion":2.2}],"pinData":{},"connections":{"Get Orders":{"main":[[{"node":"Check page_info existence","type":"main","index":0}]]},"List Orders":{"main":[[{"node":"Google Sheets","type":"main","index":0}]]},"Merge Loop items":{"main":[[{"node":"List Orders","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Get Orders","type":"main","index":0}]]},"Extract page_info ":{"main":[[{"node":"Assign page_info parameter","type":"main","index":0}]]},"Check page_info existence":{"main":[[{"node":"Merge Loop items","type":"main","index":0}],[{"node":"Extract page_info ","type":"main","index":0}]]},"Assign page_info parameter":{"main":[[{"node":"Get Orders","type":"main","index":0}]]},"When clicking ‘Test workflow’":{"main":[[{"node":"Get Orders","type":"main","index":0}]]}}}
  • CSV
  • Sheet
  • Spreadsheet
  • GS
  • API
  • Request
  • URL
  • Build
  • cURL
  • cpde
  • Javascript
  • JS
  • Python
  • Script
  • Custom Code
  • Function
Planeta AI 2025 
magic-wandmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram