Eigenes Freitextfeld über Rest API befüttern

Hallo zusammen,
leider habe ich zu dem Thema nichts passendes gefunden. Ich habe über ein eigenes Plugin ein neues Feld (mein_eigenes_feld) in der Tabelle s_articles_attributes hinzugefügt.

Nun versuche ich dieses Feld via PUT/POST über die Rest API zu befüttern. Leider ohne Erfolg.

  • Habe ich den richtigen Knoten gewählt?
  • Ist das generell überhaupt möglich oder muss ich hierfür die API erweitern?

Zum testen habe ich die shopware Git Version getestet und das aktuelle Release 5.2.18.

$updateArticle = array(
    'attribute' => array(
        'mein_eigenes_feld' => 6,
        //oder: 'meinEigenesFeld' => 6,
    ),
);

$response = $client->put('articles/3', $updateArticle);

Hoffe Ihr könnt mit helfen. Vielen Dank schonmal an alle die Antworten.

Da fehlt noch was. Hieraus kannst du aus unserem Beispiel die Befüllung der Attr. herleiten. Bei dir fehlt noch ‚mainDetail‘

 

 

// Artikel neu anlegen da nicht vorhanden
$ergebnis = $client->post(‚articles‘, array(
    ‚name‘ => $sw_name,

    ‚categories‘ => array(
        array(‚id‘ => 151)
    ),
    
    ‚related‘ => array(
        array(‚number‘ => ‚SW10012‘),
        array(‚number‘ => ‚SW10017‘),
    ),
    
    ‚taxId‘ => 1,
    ‚supplierId‘ => 1,
    ‚active‘ => 1,
    ‚keywords‘ => $keys,
    ‚mainDetail‘ => array(
        ‚number‘ => $sw_number,
        ‚active‘ => 1,
        ‚inStock‘ => 1000,
        
        ‚attribute‘ => array(
                    ‚attr4‘ => ‚500044‘
                    
                ),
                
        ‚prices‘ => array(
            array(
                ‚customerGroupKey‘ => ‚EK‘,
                ‚from‘  => 1,
                ‚to‘    => beliebig,
                ‚price‘ => $price,
            )),
       
       ‚images‘ => array(
            array(‚link‘ => $bildfotolia,
                   ‚description‘ => ‚Test‘
                   ))
)));

Hallo matthiasftl
 Danke für deine schnelle Antwort. Hatte ich vergessen mit zu erwähnen. Diese Variante hatte ich auch probiert (nur bei PUT) aber ebenfalls ohne Erfolg. Folgende Varianten hatte ich getestet:

// Variante 1
$updateArticle = array(
    'mainDetail' => array(
        'attribute' => array(
            'attr1' => 'Freitext attr' . mt_rand(1,1000),
            'mein_eigenes_feld' => 6,
        ),
    ),
);

// Variante 2
$updateArticle = array(
    'mainDetail' => array(
        'attribute' => array(
            'attr1' => 'Freitext attr' . mt_rand(1,1000),
            'meinEigenesFeld' => 6,
        ),
    ),
);

// Variante 3
$updateArticle = array(
        'attribute' => array(
            'attr1' => 'Freitext attr' . mt_rand(1,1000),
            'mein_eigenes_feld' => 6,
        ),
);

// Variante 4
$updateArticle = array(
        'attribute' => array(
            'attr1' => 'Freitext attr' . mt_rand(1,1000),
            'meinEigenesFeld' => 6,
        ),
);

Ich werde es jetzt nochmal mit einem POST probieren. Aber PUT sollte ja auch funktionieren, da ich ja ggf. später eine Änderung daran durchführen möchte.

Hat einer noch eine Idee oder eine kurze Info was man da machen kann?

Es funktioniert jetzt ohne Probleme mit der unten verwendeten Variante, sowohl bei POST, als auch bei PUT. Problem war hier noch, dass ich im Backend eine Combobox verwendet habe, welches mit einem Key-Value Paar arbeitet. Es gibt zwar den Key mit der Zahl 6, dieser muss aber beim anlegen der ComboBox als String übergeben werden, sonst wurde zwar die 6 in der DB gespeichert, aber nicht der korrekte Value angezeigt. Hier muss man wohl generell mit Text-Keys arbeiten.

// Variante 2
$updateArticle = array(
    'mainDetail' => array(
        'attribute' => array(
            'attr1' => 'Freitext attr' . mt_rand(1,1000),
            'meinEigenesFeld' => '6',
        ),
    ),
);