+48 506 130 673 [email protected]

WooCommerce: Jak dodać atrybut produktu do odpowiedzi GET Order REST API (line_items>meta_data)?

Sklep internetowy WooCommerce: Jak dodać atrybut produktu do odpowiedzi GET Order REST API? REST API WooCommerce jest potężnym narzędziem, które umożliwia integrację sklepu z aplikacjami zewnętrznymi. Jeśli chcesz, aby atrybuty produktów (np. rozmiar, kolor)...

Autor: Tomasz Kuciapski Około 3 minuty czytania

Sklep internetowy WooCommerce: Jak dodać atrybut produktu do odpowiedzi GET Order REST API?

REST API WooCommerce jest potężnym narzędziem, które umożliwia integrację sklepu z aplikacjami zewnętrznymi. Jeśli chcesz, aby atrybuty produktów (np. rozmiar, kolor) pojawiały się w odpowiedzi GET dla zamówień w REST API, ten poradnik pokaże Ci, jak to zrobić krok po kroku.

Spis treści

Dlaczego warto dodać atrybuty produktów do REST API?

Atrybuty produktów są często kluczowe dla analizy danych lub integracji z zewnętrznymi systemami, takimi jak systemy magazynowe, CRM czy platformy raportowe. Dzięki ich dodaniu do odpowiedzi REST API możesz:

  • Zautomatyzować procesy biznesowe.
  • Usprawnić integracje zewnętrznych aplikacji.
  • Zyskać pełniejszy obraz danych zamówień w WooCommerce.

Jak działa GET Order REST API w WooCommerce?

REST API WooCommerce pozwala pobierać informacje o zamówieniach za pomocą endpointu:

/wp-json/wc/v3/orders

Domyślnie, odpowiedź zawiera informacje o zamówieniu, takie jak ID zamówienia, dane klienta, lista produktów (line_items) oraz ich metadane (meta_data). Jednak atrybuty produktów nie są zawarte w tych danych. Musimy je dodać ręcznie.

Dodawanie atrybutów produktów do meta_data w REST API

Aby dodać atrybuty produktów do odpowiedzi GET Order REST API, musimy skorzystać z hooka woocommerce_rest_prepare_shop_order. Ten hook pozwala modyfikować dane zwracane przez API.

Kroki do wykonania:

  1. Zidentyfikuj atrybuty, które chcesz dodać (np. rozmiar, kolor).
  2. Skorzystaj z funkcji WooCommerce do pobierania atrybutów produktu.
  3. Dodaj dane do odpowiedzi REST API w sekcji line_items > meta_data.

Przykład kodu PHP

Poniżej znajduje się przykład kodu, który dodaje atrybuty produktów do odpowiedzi REST API:


add_filter('woocommerce_rest_prepare_shop_order', 'add_product_attributes_to_rest_api', 10, 3);

function add_product_attributes_to_rest_api($response, $order, $request) {
    $data = $response->get_data();
    
    foreach ($data['line_items'] as &$line_item) {
        $product_id = $line_item['product_id'];
        $product = wc_get_product($product_id);

        if ($product) {
            // Pobieranie atrybutów produktu
            $attributes = $product->get_attributes();
            $formatted_attributes = [];

            foreach ($attributes as $attribute_name => $attribute) {
                $formatted_attributes[$attribute_name] = $attribute->get_options();
            }

            // Dodanie atrybutów do meta_data
            $line_item['meta_data'][] = [
                'key' => 'product_attributes',
                'value' => $formatted_attributes
            ];
        }
    }

    $response->set_data($data);
    return $response;
}
        

Co robi ten kod?

  • Przechwytuje odpowiedź REST API dla zamówień za pomocą hooka woocommerce_rest_prepare_shop_order.
  • Dla każdego produktu w zamówieniu pobiera jego atrybuty za pomocą funkcji get_attributes().
  • Dodaje atrybuty do sekcji meta_data w odpowiedzi API.

Podsumowanie

Dzięki powyższym krokom możesz wzbogacić dane zwracane przez WooCommerce REST API o atrybuty produktów. Takie rozwiązanie jest szczególnie przydatne, jeśli integrujesz swój sklep z zewnętrznymi aplikacjami, które wymagają bardziej szczegółowych informacji o zamówieniach.

Jeśli masz jakiekolwiek pytania lub potrzebujesz pomocy w implementacji, skontaktuj się z nami w komentarzach!

 

    BEZPŁATNA POMOC INFORMATYCZNA

    Wróć do bloga