dstreichertdstreichert MemberComments: 0 Received thanks: 0 Member since: August 5

Hallo,

ich würde gerne in Shopware 5 einzelne Artikel über die API abrufen. Ich möchte aber nicht jeden einzeln abrufen, sondern ein paar auf einmal. Da auf der Seite https://developers.shopware.com/developers-guide/rest-api/#filter,-sort,-limit,-offset 'expression (Default: LIKE, available: all MySQL expressions)' steht, würde ich dies gerne über "GET (List)" und einem Filter mit der Expression IN tun.

Leider kann ich da aber nicht herausfinden wie genau dabei die Syntax ist. Könnte mich da bitte jemand aufklären?

Wenn ich

api/articles/?filter[0][property]=id&filter[0][expression]=IN&filter[0][value]=(16,20,153)

absende, bekomme ich immer die folgende Fehlermeldung zurück:

"Error message: [Syntax Error] line 0, col 184: Error: Expected Doctrine\\ORM\\Query\\Lexer::T_OPEN_PARENTHESIS, got ':id5f2ad7a0d9d66'"

Entferne ich die Klammern, wenn ich also

api/articles/?filter[0][property]=id&filter[0][expression]=IN&filter[0][value]=16,20,153

sende, bekomme ich die folgende Meldung zurück:

"Error message: [Syntax Error] line 0, col 184: Error: Expected Doctrine\\ORM\\Query\\Lexer::T_OPEN_PARENTHESIS, got ':id5f2ad8a8b28b2'"

Also sinngemäss die gleiche Meldung nur die Zahl hinten hat sich geändert. Könnte mich bitte mal jemand erleuchten, ob und wie man die Expression IN über das REST API verwenden kann?

1 Answer

  • ahmadsaadahmadsaad MemberComments: 305 Received thanks: 82 Member since: September 2016

    Hallo @dstreichert‍,

    einfach 'value' als array passen wie so:

    filter[0][property]=id&filter[0][expression]=IN&filter[0][value][0]=16&filter[0][value][1]=20&filter[0][value][2]=153

    und du kannst 'expression' hier weggelassen wenn du möchtest , Shopware werde 'IN' benutzet wenn die 'value' ist array

    VG,

    image

    Tel.: +49 755 - 183 990 00 | E-Mail: info@enbit.de | Web: http://enbit.de/

    Quote
    Accepted Answer
  • Accepted Answer
Sign In or Register to comment.