LiversonLiverson MemberComments: 89 Received thanks: 14 Member since: March 2013 edited July 2020

Hi,

kann mir jemand sagen, wie ich Bestellungen inkl. diverser asscociations auf die für uns notwendigen Datenfelder einschränken kann.

Mit includes wie das im Beispiel in der Doku für die Association steht funzt das nicht.

Beispiel:
hier habe ich versucht die lineItems lediglich auf id, label und quantity zu beschränken, er wirft mir aber immer alle Daten dazu aus. Auch die anderen Asscociations würde ich gerne auf das notwendigste reduzieren.

POST /api/v1/search/order

{
    "ids": [
        "7a7c4add99cf49edad7eccc950e93563"
    ],
    "associations": {
        "lineItems": {},
        "addresses": {},
        "deliveries": {},
        "transactions": {}
    },
    "includes": { 
        "lineItems": ["id", "label", "quantity"] 
    }
}

 

1 Answer

Answers

  • KrispinKrispin MemberComments: 313 Received thanks: 93 Member since: September 2018

    Hi Liverson,

    du musst bei dem includes den Entitätsnamen angeben, um die Felder einzuschränken (siehe https://docs.shopware.com/en/shopware-platform-dev-en/admin-api-guide/reading-entities?category=shopware-platform-dev-en/admin-api-guide). In deinem Beispiel wäre es "order_line_item" und nicht "lineItems".

    {
        "ids": [
            "7a7c4add99cf49edad7eccc950e93563"
        ],
        "associations": {
            "lineItems": {},
            "addresses": {},
            "deliveries": {},
            "transactions": {}
        },
        "includes": { 
            "order_line_item": ["id", "label", "quantity"]
        }
    }

    Gruß

    Krispin

    Quote
    Accepted Answer
    Thanked by 1Liverson
  • LiversonLiverson MemberComments: 89 Received thanks: 14 Member since: March 2013

    prima, thats it! dachte man muss die Entität wie in der Asscoiation angeben. Das kommt bei der Doku nicht raus, weil da "product" verwendet wird und die Tabelle in der DB gleichlautend ist.

  • LiversonLiverson MemberComments: 89 Received thanks: 14 Member since: March 2013

    Lassen sich auch "associations" innerhalb einer "association" abfragen? Das ist mir nicht gelungen 

    Bsp:

    {
        "ids": [
            "7a7c4add99cf49edad7eccc950e93563"
        ],
        "associations": {
            "lineItems": {},
            "addresses": {
              "associations": {"salutation"}
            }
        },
        "includes": { 
            "order_line_item": ["id", "label", "quantity"],
            "order_address": ["id", "company", "salutationId", "firstName", "lastName", "street", "zipcode", "city", "countryId"]
        }
    }

     

  • KrispinKrispin MemberComments: 313 Received thanks: 93 edited July 2020 Member since: September 2018

    Hi Liverson,

    du musst auch noch die Salutation ins include mitnehmen, sonst wird es nicht mit geladen:

    {
        "ids": [
            "7a7c4add99cf49edad7eccc950e93563"
        ],
        "associations": {
            "lineItems": {},
            "addresses": {
              "associations": { 
              	"salutation": {}
              }
            }
        },
        "includes": { 
            "order_line_item": ["id", "label", "quantity"],
            "order_address": ["id", "company", "salutationId", "firstName", "lastName", "street", "zipcode", "city", "countryId", "salutation"]
        }
    }

    Btw. die Entitäts-Bezeichnung für die includes wird auch in der Doku erklärt:

    The includes parameter is defined as an object. The key is always defined as the api alias of an object. The alias of an object is unique in the system. For entities, this is the entity name: productproduct_manufacturerorder_line_item, ... 

    Gruß

    Krispin

  • LiversonLiverson MemberComments: 89 Received thanks: 14 Member since: March 2013

    Hmmm.... da kommt aber dann auch der String für die Anrede nirgends raus im Response, nur die salutationId und Link zu weiterem Request

    Ich wollte halt gleich wissen ist die Anrede Mr. oder Mrs., damit ich deshalb nicht noch einen Extra-Request bspw: "/api/v1/order-customer/36a7a2c858294cd598f2ff0c52df7219/salutation" machen muss

    Das Ziel wäre halt alle benötigten Daten zur Übergabe ins ERP in einem Request zu erhalten.

    Viele Grüße
    Oliver

Sign In or Register to comment.