WooCommerce-REST-API-Attributfilter in der Produktliste funktioniert nicht

Lesezeit: 2 Minuten

Ich verwende die neueste API v2. Während die anderen Filter gefallen min_price, category etc. funktionieren, die attribute und attribute_terms Abfrageparameter filtern die Ergebnismenge nicht.

Ich habe ein Attribut Color und ich rufe die API von einem node.js-Client wie folgt auf:

var WooCommerceAPI = require('woocommerce-api');
var WooCommerce = new WooCommerceAPI({
  url: 'http://localhost/index.php',
  consumerKey: '***',
  consumerSecret: '***',
  wpAPI: true,
  version: 'wc/v2'
});

WooCommerce.getAsync('products?attribute=pa_color').then(function(result){

        var data = JSON.parse(result.toJSON().body);
        console.log(data);
    });

Wie kann ich tatsächlich nach Attributen filtern? Andere Kombinationen ausprobiert, z. attribute=Color , attribute=color. Trotzdem wird das Ergebnis nicht gefiltert.

Benutzer-Avatar
Blackbam

Werfen Sie einen Blick auf die neueste WooCommerce-REST-API-Dokumentation: http://woocommerce.github.io/woocommerce-rest-api-docs/#list-all-products

WooCommerce scheint eine schreckliche Geschichte von REST-APIs zu haben. Sie hatten API V1, V2 und V3 und wechselten dann zu WP REST API und erstellten eine V1 und V2. Natürlich ist die Suche bei Google nach einer korrekten Vorgehensweise schlecht.

Dies sollte der richtige Weg sein:

https://example.com/wp-json/wc/v2/products/?attribute=pa_color&attribute_term=15

oder

https://example.com/wp-json/wc/v2/products/?attribute=pa_color&attribute_term=green

Notiz: Es ist wichtig, das Attribut ZUSAMMEN mit attribute_term zu verwenden.

Ich denke, die frühere Vorgehensweise war so:

products?filter[meta_key]=pa_color&filter[meta_value]=green

oder so:

https://example.com/wp-json/wc/v2/products?attribute[pa_color]=green

aber es scheint so dies funktioniert nicht mehr in der WooCommerce WordPress API V2.

  • Ja, die Verwendung von Attributen zusammen mit attribute_term hat das Problem tatsächlich gelöst. Aber sie haben es in ihrem API-Dokument nicht erwähnt.

    – Md. Arafat Al Mahmud

    22. Dezember 2017 um 18:00 Uhr

  • Ja, es scheint, als sollten sie definitiv eine bessere Dokumentation mit Beispielen usw. erstellen.

    – Blackbam

    22. Dezember 2017 um 18:13 Uhr

  • Ist es möglich, mehrere Attribute mit Werten in der Abfragezeichenfolge zu verwenden?

    – Md. Arafat Al Mahmud

    27. Februar 2018 um 10:32 Uhr

Benutzer-Avatar
Ruslan Jackson

Ich habe die Lösung gefunden. Der richtige Weg, es zu tun:

products?attribute=pa_color&attribute_term=50

Sie müssen den Namen von Attributbegriffen durch die ID von Attributbegriffen ersetzen. Funktioniert für mich.

PS Ich verwende die neueste Version von wc/v2.

  • Hey, ich habe das in V3 versucht und es funktioniert nicht. Hast du eine Ahnung, wie es in V3 funktioniert?

    – Kanak Sony

    29. November 2018 um 9:57 Uhr

  • Für V3 funktioniert es auch. Stellen Sie sicher, dass Sie für den attribute_term die ID des Begriffs verwenden, nicht den Slug. Sie finden es auch in der Dokumentation: “attribute_term – Ergebnismenge auf Produkte mit einer bestimmten Attributbegriffs-ID beschränken (erfordert ein zugewiesenes Attribut).”

    – Stefan Razvan Florea

    7. Februar um 15:24 Uhr


1098920cookie-checkWooCommerce-REST-API-Attributfilter in der Produktliste funktioniert nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy