Integracje

⌘K
  1. Strona główna
  2. Integracje
  3. Sklep – WooCommerce
  4. Wymagane wtyczki

Wymagane wtyczki

Integracja WooCommerce korzysta z REST API sklepu. Część danych, które xSale pobiera albo wysyła, znajduje się w standardowych polach WooCommerce. Niektóre informacje, takie jak EAN, NIP lub numer paczkomatu, wymagają jednak dodatkowych pól w danych produktu albo zamówienia.

Ten wpis opisuje wtyczki i ustawienia, które mogą być potrzebne, aby WooCommerce przekazywał do xSale wszystkie wymagane dane.

W tym artykule znajdziesz

Kod EAN

Integracja WooCommerce może pobierać kod EAN z produktu lub wariantu do xSale. Podczas importu xSale sprawdza dostępne wartości w następującej kolejności:

  1. ean – pole udostępniane przez wtyczkę EAN Barcode Generator for WooCommerce od WPFactory,
  2. global_unique_id – natywne pole WooCommerce oznaczone w panelu jako GTIN, UPC, EAN lub ISBN,
  3. _alg_ean – metadane używane przez wtyczkę WPFactory,
  4. _global_unique_id – metadane używane m.in. przez wtyczki Flexible EAN for WooCommerce oraz SkyServers EAN Barcode Finder.

xSale zapisuje pierwszą niepustą wartość tekstową. Jeżeli żadna z powyższych wartości nie jest dostępna, kod EAN pozostaje pusty, ale brak EAN-u nie blokuje importu produktu.

Nie trzeba instalować wszystkich wymienionych wtyczek. Wystarczy, że używane rozwiązanie zapisuje EAN w jednym z obsługiwanych pól i udostępnia tę wartość w REST API WooCommerce dla produktu lub wariantu.

Ważne dla synchronizacji w drugą stronę: podczas wysyłania oferty z xSale do WooCommerce kod EAN jest zapisywany w metadanych _alg_ean. Jeżeli sklep korzysta wyłącznie z rozwiązania zapisującego EAN w _global_unique_id, zapis z xSale może nie uzupełnić pola używanego przez tę wtyczkę.

Punkt odbioru InPost Paczkomaty

Jeżeli zamówienia z WooCommerce mają zawierać punkt odbioru Paczkomatu, WooCommerce musi przekazać do xSale dane punktu w metadanych zamówienia.

xSale odczytuje z zamówienia następujące klucze:

  • _parcel_machine_id – identyfikator punktu odbioru,
  • _parcel_machine_desc – opis punktu odbioru.

Do takiej obsługi można użyć wtyczki InPost PL albo innego rozwiązania, które zapisuje punkt odbioru w powyższych polach metadanych zamówienia.

Wtyczka InPost PL dla WooCommerce

Ustawienia wtyczki InPost PL w WooCommerce

NIP na zamówieniu

xSale pobiera NIP z metadanych zamówienia WooCommerce z pola _billing_nip. Jeżeli sklep nie zapisuje NIP-u w tym polu, numer nie zostanie przekazany do xSale jako NIP kupującego.

Pole _billing_nip można dodać za pomocą wtyczek do edycji pól checkoutu, np. Flexible Checkout Fields for WooCommerce albo Checkout Field Editor (Checkout Manager). Można też użyć innego rozwiązania, jeżeli zapisuje wartość NIP w JSON zamówienia pod kluczem _billing_nip.

Przykładowa konfiguracja pola:

  1. Przejdź w WooCommerce do sekcji obsługującej pola zamówienia lub pola checkoutu.
  2. Dodaj nowe pole tekstowe.
  3. W etykiecie wpisz NIP.
  4. W nazwie pola wpisz dokładnie _billing_nip.
  5. Zapisz konfigurację i wykonaj testowe zamówienie, aby sprawdzić, czy NIP pojawia się w danych zamówienia.

Dodawanie pola NIP w WooCommerce

Konfiguracja pola NIP w WooCommerce

Zdjęcia produktów przesyłane przez REST API

xSale może wysyłać zdjęcia produktu do WooCommerce przez standardowe pole REST API images. Do WooCommerce przekazywany jest adres URL zdjęcia oraz nazwa pliku.

Jeżeli WooCommerce odrzuca zdjęcia lub nie potrafi poprawnie rozpoznać typu pliku, można użyć wtyczki Code Snippets i dodać fragment kodu, który dopisuje rozszerzenie pliku na podstawie typu MIME.

Rekomendowana wtyczka: Code Snippets.

Po instalacji wtyczki przejdź do sekcji Fragmenty kodu, wybierz Dodaj nowy, wklej poniższy kod, zapisz zmiany i włącz fragment.

Dodawanie fragmentu kodu w Code Snippets

Konfiguracja Code Snippets dla zdjęć WooCommerce

Kod do wklejenia:

add_filter('wp_handle_sideload_prefilter', 'add_extension_if_none_exists');

function add_extension_if_none_exists($file){
    if ( pathinfo( $file['name'], PATHINFO_EXTENSION ) ) {
        return $file;
    }

    $real_mime = wp_get_image_mime( $file['tmp_name'] );
    $mime_to_ext = apply_filters(
        'getimagesize_mimes_to_exts',
        array(
            'image/jpeg' => 'jpg',
            'image/png'  => 'png',
            'image/gif'  => 'gif',
            'image/bmp'  => 'bmp',
            'image/tiff' => 'tif',
            'image/webp' => 'webp',
        )
    );

    if ( ! empty( $mime_to_ext[ $real_mime ] ) ) {
        $file['name'] .= '.' . $mime_to_ext[ $real_mime ];
    }

    return $file;
}

Co sprawdzić po konfiguracji?

  • Czy kod EAN jest dostępny w REST API produktu lub wariantu w jednym z obsługiwanych pól: ean, global_unique_id, _alg_ean albo _global_unique_id.
  • Czy zamówienie z Paczkomatem zawiera _parcel_machine_id oraz _parcel_machine_desc.
  • Czy NIP zapisuje się na zamówieniu jako _billing_nip.
  • Czy zdjęcia produktów są dostępne pod publicznym adresem URL i WooCommerce może je pobrać.
  • Czy wszystkie wtyczki używane do powyższych pól są aktywne po stronie WordPress/WooCommerce.

Czego brakuje w tym artykule?