Przejdź do głównej zawartości

Import i eksport CSV

Rozszerzenie importera/eksportera CSV WooCommerce o kolumny danych prawnych, GPSR, oświadczeń środowiskowych i innych pól wymaganych przez polskie i unijne prawo.

Kolumna CSV Meta key Typ Opis
polski_unit_price_base _polski_unit_price_base float Bazowa cena jednostkowa
polski_unit_price_unit _polski_unit_price_unit string Jednostka ceny jednostkowej
polski_unit_price_amount _polski_unit_price_product_amount float Ilość produktu
polski_delivery_time _polski_delivery_time_id int ID czasu dostawy
polski_gpsr_responsible _polski_gpsr_responsible string Osoba odpowiedzialna (GPSR)
polski_power_supply _polski_power_supply string Zasilanie
polski_defect_description _polski_defect_description string Opis wady
polski_withdrawal_exempt _polski_withdrawal_exempt bool Wyłączenie prawa odstąpienia
polski_ingredients _polski_ingredients string Składniki
polski_nutrients _polski_nutrients string Wartości odżywcze
polski_nutrient_reference_unit _polski_nutrient_reference_unit string Referencyjna wartość odżywcza
polski_nutri_score _polski_nutri_score string Wynik Nutri
polski_alcohol_content _polski_alcohol_content float Zawartość alkoholu
polski_place_of_origin _polski_place_of_origin string Kraj pochodzenia
polski_net_filling _polski_net_filling_quantity string Ilość netto
polski_gpsr_manufacturer_name _polski_gpsr_manufacturer_name string GPSR - Nazwa producenta
polski_gpsr_manufacturer_address _polski_gpsr_manufacturer_address string GPSR - Adres producenta
polski_gpsr_manufacturer_contact _polski_gpsr_manufacturer_contact string GPSR - Manufacturer contact
polski_gpsr_importer_name _polski_gpsr_importer_name string GPSR - Nazwa importera
polski_gpsr_importer_address _polski_gpsr_importer_address string GPSR - Adres importera
polski_gpsr_importer_contact _polski_gpsr_importer_contact string GPSR - Importer contact
polski_gpsr_responsible_person _polski_gpsr_responsible_person string GPSR - Osoba odpowiedzialna
polski_gpsr_responsible_address _polski_gpsr_responsible_address string GPSR - Responsible person address
polski_gpsr_responsible_contact _polski_gpsr_responsible_contact string GPSR - Responsible person contact
polski_gpsr_product_identifier _polski_gpsr_product_identifier string GPSR - Identyfikator produktu
polski_gpsr_safety_warnings _polski_gpsr_safety_warnings string GPSR - Ostrzeżenia dotyczące bezpieczeństwa
polski_gpsr_instructions _polski_gpsr_instructions string GPSR - Instrukcje bezpieczeństwa
polski_durability_guarantee_months _polski_durability_guarantee_months int Gwarancja trwałości (miesięcy)
polski_update_period_months _polski_update_period_months int Bezpłatne aktualizacje oprogramowania (miesiące)
polski_repair_info _polski_repair_info string Informacje dotyczące naprawy
polski_gtin _polski_gtin string GTIN / EAN (fallback)
polski_green_claim_basis _polski_green_claim_basis string Podstawa twierdzeń ekologicznych
polski_green_claim_cert_url _polski_green_claim_cert_url string Link do certyfikatu środowiskowego
polski_green_claim_expiry _polski_green_claim_expiry string Data ważności certyfikatu środowiskowego
ID,SKU,Name,polski_gpsr_manufacturer_name,polski_gpsr_manufacturer_address,polski_gpsr_manufacturer_contact,polski_gtin,polski_place_of_origin,polski_unit_price_base,polski_unit_price_unit,polski_delivery_time
123,SKU-001,"Cotton T-shirt","Producer XYZ Sp. z o.o.","ul. Fabryczna 1, 00-001 Warsaw","[email protected]","5901234123457","PL",1,"szt",12
456,SKU-002,"Rapeseed oil 1L","Olejarnia ABC","ul. Polna 5, 60-001 Poznan","[email protected]","5901234567890","PL",1,"l",8
  1. Przejdź do WooCommerce > Produkty > Import
  2. Wybierz plik CSV
  3. Na etapie mapowania kolumn - kolumny Polski for WooCommerce pojawią się automatycznie w sekcji Polski for WooCommerce
  4. Zmapuj kolumny CSV na odpowiednie pola
  5. Uruchom import
Okno terminala
wp wc product_csv_importer run /sciezka/do/pliku.csv --user=admin
// Wtyczka nie dodaje własnego filtra importu. Kolumny zapisuje hook
// WooCommerce, więc wygrywa to, co uruchomi się po nim.
add_filter('woocommerce_product_import_inserted_product_object', function ($product, $data) {
if (! empty($data['polski_gtin']) && strlen((string) $data['polski_gtin']) !== 13) {
$product->update_meta_data('_polski_gtin', '');
}
return $product;
}, 20, 2);
  1. Przejdź do WooCommerce > Produkty > Eksport
  2. W sekcji Kolumny do eksportu zaznacz kolumny z grupy Polski for WooCommerce
  3. Opcjonalnie filtruj po kategorii, statusie lub typie produktu
  4. Kliknij Generuj CSV
Okno terminala
wp wc product_csv_exporter run --filename=produkty-polski.csv --user=admin
// Kolumny rejestrują własne hooki eksportu WooCommerce, więc swoje dodaj
// dokładnie tak samo, jak robi to wtyczka.
add_filter('woocommerce_product_export_column_names', function (array $columns): array {
$columns['custom_field'] = 'Pole własne';
return $columns;
});
add_filter('woocommerce_product_export_product_column_custom_field', function ($value, $product) {
return $product->get_meta('_my_custom_field');
}, 10, 2);

Bardzo niewiele i jest to celowe. Każda zmapowana kolumna przechodzi przez sanitize_text_field() z WordPressa i trafia do produktu bez zmian. Jedyny wyjątek to kolumna z wartościami odżywczymi, którą wtyczka rozkłada z listy nazwa=wartość z powrotem na strukturę, w jakiej ją przechowuje.

Nic nie weryfikuje cyfry kontrolnej GTIN, adresu e-mail, kodu kraju, nazwy alergenu ani litery Nutri-Score, nie powstaje też osobny log importu. Błędna wartość zaimportuje się jako błędna wartość, więc plik trzeba sprawdzić przed importem, a nie po nim.

Powtarzanie tych samych danych GPSR w wielu produktach

Dział zatytułowany „Powtarzanie tych samych danych GPSR w wielu produktach”

Nie ma ekranu wartości domyślnych, na którym można się oprzeć: ustawienia GPSR obejmują tryb wyświetlania i tytuł sekcji, nic więcej. Aby przypisać wielu produktom tego samego producenta, powtórz kolumnę w każdym wierszu CSV, co arkusz kalkulacyjny wypełnia jednym przeciągnięciem:

ID,polski_gpsr_manufacturer_name,polski_gpsr_manufacturer_address,polski_gpsr_manufacturer_contact
123,"Producent XYZ Sp. z o.o.","ul. Fabryczna 1, 00-001 Warszawa","[email protected]"
124,"Producent XYZ Sp. z o.o.","ul. Fabryczna 1, 00-001 Warszawa","[email protected]"

Import aktualizuje wyłącznie kolumny obecne w pliku, więc CSV zawierający tylko ID i kolumny GPSR nie rusza pozostałych pól produktu.

Kolumny Polski nie pojawiają się w mapowaniu - upewnij się, że wtyczka Polski for WooCommerce jest aktywna. Kolumny rejestrowane są hookiem woocommerce_csv_product_import_mapping_options.

Import kończy się timeout - zwiększ max_execution_time PHP lub użyj WP-CLI do importu dużych plików.

Znaki specjalne są uszkodzone - upewnij się, że plik CSV jest zapisany w kodowaniu UTF-8 (bez BOM).

Wartości liczbowe nie importują się - separator dziesiętny w pliku CSV powinien być kropką (.), nie przecinkiem.

Zgłaszanie problemów: github.com/wppoland/polski/issues

Ta strona ma wyłącznie charakter informacyjny i nie stanowi porady prawnej. Przed wdrożeniem skonsultuj się z prawnikiem. Polski for WooCommerce jest oprogramowaniem open source (GPLv2) dostarczanym bez gwarancji.