+48 506 130 673

info@netpoint.systems

Budowa stron internetowych

Strony internetowe dla firm, dowolne wersje językowe, dowolna funkcjonalność

Opieka techniczna

Świadczymy pełną opiekę techniczną (jeśli jest potrzebna) nad zbudowanymi rozwiązaniami.

Sklepy internetowe

Sklepy na dowolny rynek, dowolne integracje, jezyki.

Marketing/SEO

Świadczymy także usługi z zakresu marketingu internetowego w tym SEO (pozycjonowanie w Google), reklama w social mediach i kampanie reklamowe w Google Ads

ZAPEWNIAMY KOMPLEKSOWE USŁUGI ZWIĄZANE Z WIDOCZNOŚCIĄ W INTERNECIE

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

lis 25, 2024 | Sklep internetowy, Woocommerce | 0 komentarzy

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.
CZYTAJ  Co to jest white label i jak wykorzystać to w sklepie internetowym ?

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!

 

Ostatnie wpisy