Web service Magix CMS

Avant de commencer à utiliser le Web Service de Magix CMS, vous devez générer une clé d'API et activer celui-ci !!

webservice-admin

Le système est toujours en cours de développement et cette documentation sera modifiée suivant l'avancement.

Pour l'envoi de vos données en XML, vous devez spécifié l'entête text/xml afin d'envoyer votre fichier XML.

Content-Type: text/xml; charset=utf-8

Pour l'envoi de vos données en JSON, vous devez vous devez spécifié l'entête application/json afin d'envoyer votre requête JSON.

Content-Type: application/json; charset=utf-8

Pour l'envoi de vos images, vous devez utiliser la super global $_FILE['img'] avec l'entête multipart/form-data afin d'envoyer vos fichiers images.

Content-Type: multipart/form-data; charset=utf-8
<?xml version="1.0" encoding="UTF-8"?>
<magixcms>
    <categories>
        <category id="1" idlang="1" xlink:href="http://www.mywebsite.tld/webservice/catalog/categories/1/" 
                  xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/categories/1/"/>
        <category id="2" idlang="1" xlink:href="http://www.mywebsite.tld/webservice/catalog/categories/2/" 
                  xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/categories/2/"/>
    </categories>
</magixcms>

Vous pouvez également utiliser un filtre dans l'url pour par exemple avoir la liste des catégories dans 2 langues.

/catalog/categories/?filter[idlang]=[1,2]

 Exemple d'affichage d'une catégorie:

Le résultat d'une requête avec la méthode GET sera toujours en XML

<?xml version="1.0" encoding="UTF-8"?>
<magixcms>
    <category>
        <language id="1"/>
        <id_parent>0</id_parent>
        <id>1</id>
        <name>my categorie</name>
        <url>/fr/catalogue/1-my-categorie/</url>
        <description><![CDATA[
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
                    Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi.</p>
                ]]></description>
        <images>
            <image xlink:href="http://www.mywebsite.tld/upload/catalogimg/category/01fd4131.jpg" 
                   xmlns:xlink="http://www.mywebsite.tld/upload/catalogimg/category/01fd4131.jpg"/>
        </images>
        <order>0</order>
        <subcategories>
            <subcategory xlink:href="http://www.mywebsite.tld/webservice/catalog/subcategories/1/" 
                         xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/subcategories/1/"/>
        </subcategories>
        <products>
            <product xlink:href="http://www.mywebsite.tld/webservice/catalog/product/1/" 
                     xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/product/1/"/>
        </products>
    </category>
</magixcms>

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode POST sera toujours en JSON.

Exemple d'un ajout de catégorie avec XML

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
    <category>
        <iso>fr</iso>
        <name>My new record</name>
        <description>
            <![CDATA[<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
            Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi. Mauris in augue dui.</p>]]>
        </description>
    </category>
</magixcms>

Exemple d'un ajout de catégorie avec JSON

{"category":{"iso":"fr","name":"Mon titre de test json",
"description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi. 
Mauris in augue dui."}}

 Le système retourne le résultat au format JSON

{"statut":true,"notify":"success","result":"Add success"}
L'url sera créée automatiquement sur base du titre

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode PUT sera toujours en JSON.

Exemple d'édition de catégorie avec XML

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
    <category>
        <id>1</id>
        <name>my edit</name>
        <url>my-edit</url>
        <description>
            <![CDATA[<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
            Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi. Mauris in augue dui.</p>]]>
        </description>
    </category>
</magixcms>

 Exemple d'édition de catégorie avec JSON

{"category":{"id":1,"name":"Mon titre via webservice json","url":"",
"description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Nam felis ex, 
blandit accumsan risus quis, eleifend mollis nisi. Mauris in augue dui."}}
 Note : Si vous remplissez l'URL elle sera mise a jour, si vous l'envoyez vide, elle sera réinitialisée sur base du titre.

L'envoi d'image est réalisée avec un formulaire html ou tout autre système reposant sur la même base.

Le paramètre du POST doit être "img" afin d'être pris en compte par le système sans oublier de mettre la clé d'authentification dans votre requête soit par POST (voir CURL) soit avec GET (ws_key).

Exemple de formulaire d'envoi d'image de catégorie

<form method="post" action="http://www.mywebsite.tld/webservice/catalog/categories/1/?ws_key=mykey" enctype="multipart/form-data">
    <div class="form-group">
        <label for="img">Image :</label>
        <input type="hidden" name="MAX_FILE_SIZE" value="2048576" />
        <input type="file" id="img" name="img" value="" />
    </div>
    <div class="form-group">
        <input type="submit" value="send" />
    </div>
</form>

 

Une sous catégorie est un enfant d'une catégorie donc pour l'ajout d'une sous catégorie vous devez vous positionner sur la catégorie de votre choix afin de l'insérer.

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode POST sera toujours en JSON.

Exemple d'ajout d'une sous catégorie avec XML

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
    <subcategory>
        <idparent>1</idparent>
        <name>my sub category</name>
        <description>
            <![CDATA[<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi.</p>]]>
        </description>
    </subcategory>
</magixcms>

 Exemple d'ajout d'une sous catégorie avec JSON

 

{"subcategory":{"idparent":1,"name":"Mon titre via webservice json","url":"",
"description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi. 
Mauris in augue dui."}}

 

 

Un produit est lié a une catégorie donc vous devez vous positionner sur la catégorie de votre choix afin de les lier.

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode POST sera toujours en JSON.

Exemple de liaison d'un produit avec une catégorie au format XML

<?xml version="1.0" encoding="UTF-8" ?>
        <magixcms>
            <product>
                <id>5</id>
                <category>1</category>
                <subcategory>0</subcategory>
            </product>
        </magixcms>

Exemple de liaison d'un produit avec une catégorie au format JSON

{"product":{"id":5,"category":1,"subcategory":0}}

 

 

 

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode DELETE sera toujours en JSON.

Exemple de suppression de catégorie avec XML

 

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
    <category>
        <id>1</id>
    </category>
</magixcms>

Exemple de suppression de catégorie avec JSON

{"category":{"id":"1"}}

 Résultat :

{"statut":true,"notify":"success","result":"Delete success"}

 

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode DELETE sera toujours en JSON.

Exemple de suppression d'un produit dans une catégorie avec XML

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
    <product>
        <id>6</id>
    </product>
</magixcms>

 Exemple de suppression d'un produit dans une catégorie avec JSON

{"product":{"id":"1"}}

 Résultat :

{"statut":true,"notify":"success","result":"Delete success"}

Pour voir la liste des sous-catégories, reportez-vous aux catégories (les sous catégories sont les enfants des catégories)

Exemple d'affichage d'une sous-catégorie:

Le résultat d'une requête avec la méthode GET sera toujours en XML

 

<?xml version="1.0" encoding="UTF-8"?>
<magixcms>
    <subcategory>
        <id_parent>1</id_parent>
        <id>1</id>
        <name>my subcategory</name>
        <url>/fr/catalogue/1-my-categorie/1-my-subcategory/</url>
        <description><![CDATA[
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
                    Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi.</p>
                ]]></description>
        <images>
            <image xlink:href="http://www.mywebsite.tld/upload/catalogimg/category/01fd4131.jpg"
                   xmlns:xlink="http://www.mywebsite.tld/upload/catalogimg/category/01fd4131.jpg"/>
        </images>
        <order>0</order>
        <products>
            <product xlink:href="http://www.mywebsite.tld/webservice/catalog/product/1/"
                     xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/product/1/"/>
        </products>
    </subcategory>
</magixcms>

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode PUT sera toujours en JSON.

Exemple d'édition d'une sous-catégorie avec XML

<?xml version="1.0" encoding="UTF-8"?>
            <magixcms>
                <subcategory>
                    <id_parent>1</id_parent>
                    <id>3</id>
                    <name>my subcategory</name>
                    <url>my-subcategory</url>
                    <description><![CDATA[
                                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
                                Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi.</p>
                            ]]></description>
                </subcategory>
            </magixcms>

Exemple d'édition d'une sous-catégorie avec JSON

{"subcategory":{"idparent":1,"id":3,"name":"Mon titre via webservice json","url":"",
        "description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit.
        Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi.
        Mauris in augue dui."}}
  Note : Si vous remplissez l'URL elle sera mise a jour, si vous l'envoyez vide, elle sera réinitialisée sur base du titre.

L'envoi d'image est réalisée avec un formulaire html ou tout autre système reposant sur la même base.

Le paramètre du POST doit être "img" afin d'être pris en compte par le système sans oublier de mettre la clé d'authentification dans votre requête soit par POST (voir CURL) soit avec GET (ws_key).

Exemple de formulaire d'envoi d'image d'une sous-catégorie

<form method="post" action="http://www.mywebsite.tld/webservice/catalog/subcategories/3/?ws_key=mykey" enctype="multipart/form-data">
    <div class="form-group">
        <label for="img">Image :</label>
        <input type="hidden" name="MAX_FILE_SIZE" value="2048576" />
        <input type="file" id="img" name="img" value="" />
    </div>
    <div class="form-group">
        <input type="submit" value="send" />
    </div>
</form>

 

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode DELETE sera toujours en JSON.

Exemple de suppression de sous-catégorie avec XML

 

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
    <subcategory>
        <id>1</id>
    </subcategory>
</magixcms>

Exemple de suppression de sous-catégorie avec JSON

{"subcategory":{"id":"1"}}

Résultat :

{"statut":true,"notify":"success","result":"Delete success"}

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode DELETE sera toujours en JSON.

Exemple de suppression d'un produit dans une sous-catégorie avec XML

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
    <product>
        <id>6</id>
    </product>
</magixcms>

 Exemple de suppression d'un produit dans une sous-catégorie avec JSON

{"product":{"id":"1"}}

 Résultat :

{"statut":true,"notify":"success","result":"Delete success"}
<?xml version="1.0" encoding="UTF-8"?>
<magixcms>
    <products>
        <product id="1" idlang="1" 
                 xlink:href="http://www.mywebsite.tld/webservice/catalog/products/1/" 
                 xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/products/1/"/>
        <product id="2" idlang="1"
                 xlink:href="http://www.mywebsite.tld/webservice/catalog/products/2/"
                 xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/products/2/"/>
        <product id="3" idlang="1"
                 xlink:href="http://www.mywebsite.tld/webservice/catalog/products/3/"
                 xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/products/3/"/>
    </products>
</magixcms>

 

<?xml version="1.0" encoding="UTF-8"?>
<magixcms>
    <product>
        <language id="1"/>
        <id>1</id>
        <name>My test</name>
        <url>my-test</url>
        <price>140.00</price>
        <description><![CDATA[<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
        eget neque ut erat aliquet ullamcorper.</p>]]></description>
        <images>
            <image xlink:href="http://www.mywebsite.tld/upload/catalogimg/product/f8db684e.jpg" 
                   xmlns:xlink="http://www.mywebsite.tld/upload/catalogimg/product/f8db684e.jpg"/>
        </images>
        <categories>
            <category xlink:href="http://www.mywebsite.tld/webservice/catalog/categories/3/" 
                      xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/categories/3/"/>
            <category xlink:href="http://www.mywebsite.tld/webservice/catalog/categories/1/" 
                      xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/categories/1/"/>
        </categories>
        <subcategories>
            <subcategory xlink:href="http://www.mywebsite.tld/webservice/catalog/subcategories/3/" 
                         xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/subcategories/3/"/>
            <subcategory xlink:href="http://www.mywebsite.tld/webservice/catalog/subcategories/4/" 
                         xmlns:xlink="http://www.mywebsite.tld/webservice/catalog/subcategories/4/"/>
        </subcategories>
        <gallery>
            <image xlink:href="http://www.mywebsite.tld/upload/catalogimg/galery/maxi/15fd35ff.jpg" 
                   xmlns:xlink="http://www.mywebsite.tld/upload/catalogimg/galery/maxi/15fd35ff.jpg"/>
            <image xlink:href="http://www.mywebsite.tld/upload/catalogimg/galery/maxi/e5c3d4e5.jpg" 
                   xmlns:xlink="http://www.mywebsite.tld/upload/catalogimg/galery/maxi/e5c3d4e5.jpg"/>
        </gallery>
    </product>
</magixcms>

 

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode POST sera toujours en JSON.

Exemple d'un ajout de produit avec XML

<?xml version="1.0" encoding="UTF-8"?>
<magixcms>
    <product>
        <iso>fr</iso>
        <name>My test</name>
        <url>my-test</url>
        <price>10.80</price>
        <description><![CDATA[<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
        Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi.</p>]]></description>
    </product>
</magixcms>

 Exemple d'un ajout d'un produit avec JSON

 

{"product":{"iso":"fr","name":"My test","url":"","price":"10.80",
"description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Nam felis ex, blandit accumsan risus quis, eleifend mollis nisi. 
Mauris in augue dui."}}

Le système retourne le résultat au format JSON

{"statut":true,"notify":"success","result":"Add success"}
  L'url sera créée automatiquement sur base du titre

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode PUT sera toujours en JSON.

Exemple d'édition d'un produit avec XML

<?xml version="1.0" encoding="UTF-8"?>
<magixcms>
    <product>
        <id>20</id>
        <name>My test update</name>
        <url></url>
        <price>178</price>
        <description><![CDATA[<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>]]></description>
    </product>
</magixcms>

Exemple d'édition d'un produit avec JSON

{"product":{"id":20,"name":"My test","url":"","price":"10.80",
"description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit"}}
  Note : Si vous remplissez l'URL elle sera mise a jour, si vous l'envoyez vide, elle sera réinitialisée sur base du titre.

 

 

L'envoi d'image est réalisée avec un formulaire html ou tout autre système reposant sur la même base.

Le paramètre du POST doit être "img" afin d'être pris en compte par le système sans oublier de mettre la clé d'authentification dans votre requête soit par POST (voir CURL) soit avec GET (ws_key).

Exemple de formulaire d'envoi d'image d'un produit

<form method="post" action="http://www.mywebsite.tld/webservice/catalog/products/1/?ws_key=mykey" enctype="multipart/form-data">
    <div class="form-group">
        <label for="img">Image :</label>
        <input type="hidden" name="MAX_FILE_SIZE" value="2048576" />
        <input type="file" id="img" name="img" value="" />
    </div>
    <div class="form-group">
        <input type="submit" value="send" />
    </div>
</form>

 

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode POST sera toujours en JSON.

Exemple d'une liaison de produits avec XML

<?xml version="1.0" encoding="UTF-8"?>
<magixcms>
    <product>
        <id>20</id>
        <related>4</related>
    </product>
</magixcms>

Exemple d'une liaison de produits avec JSON

{"product":{"id":1,"related":20}}

 Légende

id = mon produit courant

related = le produit que je souhaite joindre.

 

L'envoi d'image est réalisée avec un formulaire html ou tout autre système reposant sur la même base.

Le paramètre du POST doit être "img" afin d'être pris en compte par le système sans oublier de mettre la clé d'authentification dans votre requête soit par POST (voir CURL) soit avec GET (ws_key).

Exemple de formulaire d'envoi d'image d'un produit

<form method="post" action="http://www.mywebsite.tld/webservice/catalog/products/1/gallery/?ws_key=mykey" enctype="multipart/form-data">
    <div class="form-group">
        <label for="img">Image :</label>
        <input type="hidden" name="MAX_FILE_SIZE" value="2048576" />
        <input type="file" id="img" name="img" value="" />
    </div>
    <div class="form-group">
        <input type="submit" value="send" />
    </div>
</form>

 

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode DELETE sera toujours en JSON.

Exemple de suppression d'un produit avec XML

 

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
    <product>
        <id>1</id>
    </product>
</magixcms>

Exemple de suppression d'un produit avec JSON

{"product":{"id":"1"}}

Résultat :

{"statut":true,"notify":"success","result":"Delete success"}

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode DELETE sera toujours en JSON.

Exemple de suppression d'images dans la galerie avec XML

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
     <images>
           <image>38d3df2d.jpg</image>
     </images>
</magixcms>

Exemple de suppression d'images dans la galerie avec JSON

{"images":{"image":"38d3df2d.jpg"}}

 Resultat:

{"statut":true,"notify":"success","result":"Delete success"}

Vous pouvez envoyer vos données au format JSON ou XML mais le résultat avec la méthode DELETE sera toujours en JSON.

Exemple de suppression d'une liaison de produits avec XML

<?xml version="1.0" encoding="UTF-8" ?>
<magixcms>
    <product>
        <related>6</related>
    </product>
</magixcms>

 Exemple de suppression d'une liaison de produits avec JSON

{"product":{"related":"1"}}

Résultat :

{"statut":true,"notify":"success","result":"Delete success"}