Erori la importul CSV în Shopify: ce înseamnă fiecare și cum o repari

Erorile de import de produse Shopify care apar cel mai des, ce le cauzează și soluția exactă, plus greșelile care se importă fără niciun avertisment.

· Sincronizarea stocurilor furnizorilor · 9 min de citit

Shopify verifică un CSV de produse de două ori. La încărcare citește rândul de antet și ghilimelele; dacă oricare e greșit, nu se importă nimic. În timpul importului validează fiecare rând, le sare pe cele care eșuează și le listează după număr în e-mailul de confirmare. Un al treilea grup de greșeli trece de ambele verificări și îți modifică magazinul în feluri pe care nu le-ai vrut.

Secțiunile de mai jos urmează aceeași ordine. Mesajele de eroare sunt citate exact cum le scrie Shopify.

MesajCauză obișnuită
„Invalid CSV header: missing headers”Textul antetului diferă de cel Shopify, de obicei prin majuscule sau un spațiu la final
„Illegal quoting on line”Ghilimele curbe sau un semn de țol fără pereche
„Ignored line because handle already exists”Suprascrierea nu e bifată sau două produse au același handle
„Ignored line because it did not contain product data”Lipsește titlul de pe primul rând al produsului
„Validation failed: options are not unique”Două variante cu aceleași valori de opțiune
„Validation failed: price can’t be blank”Preț scris 8,40 € în loc de 8.40
„Inventory quantity is not a number”Text sau zecimale în coloana de stoc
„An error occurred while trying to download the image”Linkul imaginii e privat sau deschide o pagină web

Cum găsești rândul indicat de Shopify

Deschide CSV-ul într-un editor de text, nu în Excel sau Numbers, și mergi la rândul raportat. Un program de calcul tabelar poate reformata SKU-uri, prețuri și date la salvare, adăugând erori noi în timp ce repari una. Numerele de rând coincid cu rândurile din foaia de calcul doar dacă nicio celulă nu conține o trecere la rând nou, iar descrierile de produs conțin des. Dacă rândul raportat pare în regulă, caută un handle din apropiere în loc să numeri rândurile.

Shopify a redenumit și coloane de-a lungul anilor. Exporturile actuale folosesc URL handle, SKU, Price și Product image URL, unde fișierele mai vechi foloseau Handle, Variant SKU, Variant Price și Image Src. Ambele variante sunt acceptate. Ghidul folosește denumirile actuale.

Antet CSV invalid: lipsesc antete

Shopify potrivește coloanele după textul exact al antetului, inclusiv majusculele. Product Name, sku sau Qty dintr-un fișier de furnizor nu sunt recunoscute, la fel nici SKU urmat de un spațiu pe care nu îl vezi într-o foaie de calcul. Aceeași problemă poate apărea și ca „Network error: Unexpected token in JSON at position 0” sau ca o fereastră care îți cere să alegi antetele coloanelor.

Exportă două sau trei produse din propriul magazin și copiază acel rând de antet peste al tău. Shopify acceptă o singură coloană în afara listei sale, Collection. Orice altă coloană în plus strică fișierul.

Ghilimele invalide pe rând

O valoare care conține o virgulă este încadrată în ghilimele duble drepte. Ghilimelele curbe lipite dintr-un editor de documente sau un semn de țol singur într-o descriere fac ca Shopify să nu mai știe unde se termină o valoare. Mesajul înrudit este „Missing or stray quote on line”. O ghilimea care face parte din valoare trebuie dublată. Primul rând de mai jos eșuează, al doilea se importă:

quoting.csv
acme-glove,Acme Glove,"Fits 9" hands"
acme-glove,Acme Glove,"Fits 9"" hands"

Dacă rândul raportat nu are deloc ghilimele, cauza este de obicei un caracter care nu e UTF-8. Salvarea din nou a fișierului ca CSV UTF-8 o elimină.

Text deformat după un import reușit

Aici nu apare niciun mesaj. Importul funcționează, iar descrierile arată ă în loc de ă sau — în locul unei liniuțe. Fișierul a fost salvat cu o codificare regională în loc de UTF-8.

În Excel, folosește Save As și alege CSV UTF-8 (Comma delimited); opțiunea numită doar CSV nu este UTF-8. Descărcările din Google Sheets sunt deja UTF-8. Repararea produselor după aceea cere încă un import, așa că deschide o descriere importată și verific-o înainte să imporți restul.

Rând ignorat: handle-ul există deja

Dacă opțiunea „Overwrite products with matching handles” nu este bifată, Shopify sare peste fiecare rând al cărui handle există deja în magazin. Dacă rândul trebuia să actualizeze acel produs, bifează opțiunea și importă din nou.

Dacă trebuia să fie un produs nou, două produse au ajuns cu același handle, de obicei pentru că handle-urile au fost generate din titluri și două titluri au coincis. Construiește handle-urile din marcă și codul de piesă al furnizorului; acestea nu se repetă.

Rând ignorat: lipsesc datele produsului

Câmpurile produsului, precum titlul, descrierea și furnizorul, sunt citite de pe primul rând al fiecărui handle. Rândurile următoare adaugă doar variante și imagini. Dacă primul rând nu are titlu, produsul nu este creat. De obicei se întâmplă după ce fișierul a fost filtrat sau sortat și un rând de variantă a ajuns primul în grupul lui. Pune titlul înapoi pe primul rând și ține împreună rândurile fiecărui produs.

Validare eșuată: opțiunile nu sunt unice

Două variante ale aceluiași produs au aceleași valori de opțiune, de exemplu două rânduri acme-work-glove marcate ambele Size M. De obicei e o greșeală de copiere în valoare. Uneori același handle apare din nou mai jos în fișier, iar Shopify tratează ambele grupuri ca un singur produs.

Un mesaj înrudit, „Line is invalid (No details)”, apare când un fișier mută o valoare de opțiune pe altă poziție de opțiune. Soluția Shopify este să imporți o dată cu un nume de opțiune temporar, apoi să-l redenumești.

Validare eșuată: prețul lipsește

Prețul trebuie să fie un număr simplu, cu punct ca separator zecimal. „8,40 €” pare completat, dar nu e număr, așa că Shopify tratează celula ca goală. 1.299,00 trebuie să devină 1299.00.

După ce convertești o coloană întreagă, compară câteva rezultate cu prețul de achiziție al furnizorului. Un separator de mii scăpat transformă 1.299 într-un preț de 1.30.

Cantitatea din stoc nu este un număr

Stocul trebuie să fie un număr întreg. „ten”, „5+”, „in stock” și 12.5 eșuează toate; folosește 0 pentru produse epuizate. Un produs urmărit fără nicio cantitate returnează „Inventory quantity can’t be blank”. Pentru produsele al căror stoc nu îl urmărești, lasă goală coloana Inventory tracker (Variant Inventory Tracker în fișierele mai vechi), nu cantitatea.

Încă două reguli: coloana pentru politica de stoc epuizat acceptă doar deny sau continue, iar coloana de cantitate funcționează doar pentru magazinele cu o singură locație. Magazinele cu mai multe locații actualizează stocul prin CSV-ul de inventar separat al Shopify.

Eroare la descărcarea imaginii

Shopify descarcă fiecare imagine de la linkul ei în timpul importului. Linkul trebuie să fie public și să returneze chiar fișierul imagine. Linkurile de partajare Google Drive și Dropbox returnează o pagină web, așa că eșuează. Ca să testezi un link, deschide-l într-o fereastră privată de browser: ar trebui să vezi imaginea și nimic altceva.

„getaddrinfo: nodename nor servname provided” înseamnă că adresa în sine e greșit formată, de obicei din cauza unei greșeli de scriere sau a lipsei lui https://. Imaginile mai mari de 5000 × 5000 pixeli eșuează cu „exceeds the 20 megapixel limit”.

Un fișier stricat și reparația lui

Șase dintre problemele de mai sus, în trei rânduri de produse:

broken-import.csvSEPARATOR , · 3 RÂNDURI
URL handleTitleOption1 nameOption1 valueSKUPriceInventory quantityProduct image URL
acme-work-gloveAcme Work GloveSizeMAG-100-M"8,40 €"120https://cdn.example.com/glove.jpg
acme-work-gloveSizeMAG-100-L"8,40 €"95
acme-hard-hatTitleDefault Title1.2E+0512.00tenhttps://drive.google.com/file/d/1a2b/view
  • Rândurile 2 și 3: prețul este 8,40 € în loc de 8.40.
  • Rândul 3: a doua variantă de mănușă este tot Size M.
  • Rândul 4: primul rând al căștii de protecție nu are titlu.
  • Rândul 4: 1.2E+05 este notația științifică din Excel; SKU-ul real s-a pierdut.
  • Rândul 4: stocul este cuvântul ten.
  • Rândul 4: linkul imaginii deschide o pagină Google Drive.
fixed-import.csvSEPARATOR , · 3 RÂNDURI
URL handleTitleOption1 nameOption1 valueSKUPriceInventory quantityProduct image URL
acme-work-gloveAcme Work GloveSizeMAG-100-M8.40120https://cdn.example.com/glove.jpg
acme-work-gloveSizeLAG-100-L8.4095
acme-hard-hatAcme Hard HatTitleDefault Title12004512.0010https://cdn.example.com/hard-hat.jpg

SKU-ul a trebuit copiat din nou din fișierul original al furnizorului: după ce Excel a afișat 1.2E+05 și a salvat, cifrele se pierd. Title și Default Title este felul în care exportul Shopify marchează un produs fără variante.

Mesaje mai rare

  • Fulfillment service can’t be blank: scrie manual, dacă nu folosești o aplicație de fulfillment.
  • Not a valid product category: valoarea trebuie să corespundă exact taxonomiei de produse Shopify, ca drum complet al categoriei sau ca ID.
  • Value must be a valid product reference: un metafield indică un produs care nu există încă. Importă întâi produsele, apoi importă din nou cu metafield-urile.
  • Daily variant creation limit reached: magazinele cu 500.000 sau mai multe variante pot crea prin CSV cel mult 10.000 de variante noi pe zi. Importă restul a doua zi.
  • O încărcare care expiră fără niciun mesaj: un CSV de produse poate avea cel mult 15 MB. Împarte fișierul.

Greșeli care se importă fără eroare

Niciuna dintre acestea nu afișează vreun mesaj. Fiecare se importă cu succes și modifică magazinul.

  • Cu suprascrierea bifată, o celulă goală golește acel câmp în magazin. O coloană lăsată în afara fișierului își păstrează valoarea actuală, așa că elimină coloanele pe care nu vrei să le modifici.
  • O actualizare care include câmpuri de variantă precum SKU, dar nu și Option1 name și Option1 value, înlocuiește variantele produsului cu o singură variantă implicită.
  • Redenumirea unei valori de opțiune, de exemplu M în Medium, dă variantei un ID nou. Aplicațiile, feedurile și recenziile legate de vechiul ID pierd legătura.
  • Excel transformă SKU-urile lungi în 1.2E+05, elimină zerourile de la începutul codurilor de bare și citește coduri precum 3-10 ca date calendaristice. Formatează acele coloane ca text înainte să lipești datele.
  • Sortarea unui CSV finalizat separă rândurile de variante și imagini de produsul lor. Shopify avertizează că imaginile se pot pierde astfel.
  • Un import nu poate fi oprit după ce a pornit și nu există undo. Exportă întâi produsele, ca exportul să poată fi importat înapoi.

Înainte să apeși Import

  1. Rândul de antet copiat dintr-un export Shopify actual, fără spații la final.
  2. Fișierul salvat ca CSV UTF-8, doar cu ghilimele drepte.
  3. Un handle pe produs, titlul pe primul lui rând, rândurile lui împreună.
  4. Prețurile ca numere simple cu punct; stocul ca numere întregi.
  5. SKU-urile și codurile de bare comparate cu fișierul furnizorului, nu cu ce afișează Excel.
  6. Un export de backup făcut, iar zece produse importate și verificate înainte de fișierul complet.

Când fișierul furnizorului tot produce asta

Un fișier de furnizor care vine săptămâna aceasta cu prețuri cu virgulă și SKU-uri stricate de foaia de calcul va veni la fel și săptămâna viitoare. Curățarea lui manuală de fiecare dată este sursa celor mai multe dintre aceste erori.

Fiecare reparație de mai sus este o regulă fixă, deci poate fi scrisă o singură dată ca script: redenumește antetele, convertește prețurile, păstrează SKU-urile ca text, grupează variantele, testează linkurile imaginilor. Scriptul rulează pe propriul tău calculator și se oprește cu o listă de rânduri problematice, în loc să scrie un fișier pe care Shopify îl va importa doar pe jumătate.

Întrebări frecvente

De ce spune Shopify că lipsesc antetele CSV, când ele sunt acolo?

Potrivirea este exactă și ține cont de majuscule. sku în loc de SKU, o coloană redenumită sau un spațiu după un antet contează toate ca lipsă. Copiază rândul de antet dintr-un export Shopify nou.

Pot anula un import de produse în Shopify?

Nu. Un import nu poate fi oprit după ce a pornit și nu există undo. Exportă produsele înainte de un import mare; importarea acelui export readuce valorile vechi.

De ce a șters importul Shopify date ale produselor?

Cu suprascrierea bifată, o celulă goală golește câmpul corespunzător din magazin. Includerea SKU-urilor fără coloanele de opțiune înlocuiește și variantele. Include doar coloanele pe care vrei să le modifici.

Care este dimensiunea maximă a unui CSV de produse Shopify?

15 MB. Împarte un catalog mai mare în mai multe fișiere și importă-le pe rând.