Eigenschaften über die REST API anlegen und Artikel mit Eigenschaften verknüpfen

Ich verstehe nicht so ganz welcher Code notwendig ist um mit der REST API Eigenschaften anzulegen und Artikel mit angelegten Eigenschaften zu verknüpfen um Artikel im Listing filterbar zu machen.

Was ich weis:

 $propertySet = array( 'name' =\> 'Mode', 'comparable' =\> true, 'sortMode' =\> 0, 'position' =\> 0, 'id' =\> 100, ); $client-\>post('propertyGroups', $propertySet);

Mit obigen Code lege Ich ein Eigenschaftsset an. Ich weis auch wie Ich Artikel mit Varianten anlege.

Meine Fragen:

  1. Wie lege Ich eine Eigenschaftgruppe mit Optionen an und ordne diese dem Eigenschaftsset zu.
  2. Wie verknüpfe Ich dann Artikel mit Eigenschaften und deren Optionen?

 

Hi,

das ist hier zu finden: http://community.shopware.com/Shopware-4-API-Beispiele-und-Erweiterungen_detail_1070.html#Eigenschaften

$filterTest = array(
    'name' => 'Lecker Branntwein',
    'description' => 'hmmmmm',
 
    'active' => true,
    'taxId' => 1,
 
    'mainDetail' => array(
        'number' => 'brand1',
        'inStock' => 15,
        'active' => true,
 
        'prices' => array(
            array(
                'customerGroupKey' => 'EK',
                'from' => 1,
                'price' => 50
            )
        )
    ),
 
    'filterGroupId' => 1,
    'propertyValues' => array(
            array(
                'option' => array('name' => "Alkoholgehalt"),
                'value' => '10%'
            ),
            array(
                'option' => array('name' => "Farbe"),
                'value' => 'rot'
            )
    )
 
);
$client->call('articles', ApiClient::METHODE_POST, $filterTest );

Wichtig ist, dass “filterGroupId” die Referenz auf die zuvor angelegte Gruppe (Set) ist. Die Benamung im Backend wurde irgendwann mal angepasst, damit sie zum Variantensystem passt - darum gibt es manchmal die Namen Set/Group/Option oder Group/Option/Value. Davon also bitte nicht verwirren lassen :slight_smile:

Daniel

1 „Gefällt mir“

Ja das klappt soweit ganz gut. Aber nur wenn vorher in den Eigenschaften die Gruppe mit Optionen angelegt war. Kann man eine Eigenschaftsgruppe mit Optionen anlegen und einem Set tuordnen per REST API? ich habe dazu nichts gefunden…

 

Hi,

nein, leider nicht, das sind immer zwei separate Calls. Also einmal das Set anlegen mit der einen Ressource und dann über den Artikel die Zuordnungen machen. Die API erkennt aber über den Option-Name bzw. Value-Wert, ob der Eintrag in der DB schon existiert, Doppelanlagen sollte es also nicht geben.

Daniel

Ich verstehe dass es 2 Calls sind. Aber ich konnte nur Sets erstellen mit der PropertyGroup Resource, aber keine Gruppen neu erstellen und damit auch keine Options-Werte zu Gruppen hinzufügen und den Sets keine Gruppen zuordnen. Ich muss immer die Gruppe erst im Backend erstellen, dem Set hinzufügen und Optionen erstellen und das alles manuell im Backend. Wenn dies alles im Backend nicht existiert, konnte Ich keine Eigenschaften im Artikel anlegen. Hier mein Code:

 $propertyValues = array( array( 'option' =\> array('name' =\> 'Kategorie'), 'value' =\> $variantsArray[$j][0]['Division'], ), ); for($x = 0; $x \< count($variantsArray[$j]); $x++){ $sizeValue = array( 'option' =\> array('name' =\> 'Größe'), 'value' =\> $variantsArray[$j][$x]['StyleSize'], ); $propertyValues[] = $sizeValue; } $minimalTestArticle = array( 'name' =\> $variantsArray[$j][0]['KHK\_EAN'], 'active' =\> true, 'taxId' =\> 1, 'supplier' =\> 'ABC', 'categories' =\> array( array('id' =\> $kollektionenKeyValueArray[$setName]), ), 'mainDetail' =\> array( 'number' =\> $variantsArray[$j][0]['KHK\_Artikel'], 'prices' =\> array( array( 'customerGroupKey' =\> 'H', 'price' =\> $variantsArray[$j][0]['PriceSale'], 'pseudoPrice' =\> $variantsArray[$j][0]['PriceNew'], 'baseprice' =\> $variantsArray[$j][0]['EKPreis'], ), array( 'customerGroupKey' =\> 'EK', 'price' =\> $variantsArray[$j][0]['PriceSale'], 'pseudoPrice' =\> $variantsArray[$j][0]['PriceNew'], 'baseprice' =\> $variantsArray[$j][0]['EKPreis'], ), ), ), 'filterGroupId' =\> 3, 'propertyValues' =\> $propertyValues, 'attribute' =\> array( 'attr1' =\> $variantsArray[$j][0]['Material'], 'attr2' =\> $variantsArray[$j][0]['PflegeCode'], ) );

 Übersehe Icg da was oder kann man über die REST API keine Eigenschaftsgruppen neu erstellen?

Wenn ich die Frage richtig verstehe: Die Gruppe wird automatisch angelegt, wenn du Eigenschaftspaare übergibst, bestehend aus Gruppe und Wert/Inhalt.
Also weiterhin zwei Aufrufe - Set erstellen (für die ID) - und Artikel mit den Gruppen und Eigenschaften übergeben - dann ist alles vorhanden.

Schöne Grüße,
Niklas

@TeichDatensysteme schrieb:

Wenn ich die Frage richtig verstehe: Die Gruppe wird automatisch angelegt, wenn du Eigenschaftspaare übergibst, bestehend aus Gruppe und Wert/Inhalt.
Also weiterhin zwei Aufrufe - Set erstellen (für die ID) - und Artikel mit den Gruppen und Eigenschaften übergeben - dann ist alles vorhanden.

Schöne Grüße,
Niklas

Ich konnte keine Sets oder Gruppen oder Werte neu anlegen mit der PropertyGroups Resource.

Ein Code Beispiel welches demonstriert wie man ein neues Set anlegt, eine neue Gruppe mit Werten anlegt und diese Gruppe dem Set zuordnet wäre sehr hilfreich. Ich konnte bisher nur Artikel existierenden Werten zuordnen…

Hallo,

hier mal ein Beispiel von unserer Umsetzung:

 

/**
             * article attributes
             */
            $attributes = explode('|',$product['eigenschaften']);
            $attributeBuild = NULL;
            foreach($attributes as $attribute)
            {
                $attributeBuild = explode(':',$attribute);
                $attributePropertyGroup[] = array(
                    'option' => array(
                        'name' => $attributeBuild[0], 'filterable' => 1
                    ),
                    'value' => $attributeBuild[1]
                );
            }


Im Api-Array:

   'filterGroupId' => 1,
   'propertyValues' => $attributePropertyGroup

 

 

 

 

Wir benötigen eben nur ein Set, du benötigst wenn ich dich richtig verstehen für verschiedene Eigenschaften unterschiedliche Sets?

VG

 

 

 

1 „Gefällt mir“