Wiki

Clone wiki

OCAPI / nl_categoryController

XML categoryController

index

dgeDetailhandel / dgeGroothandel gebruikt de GET method om categorieën op te halen. De andere methods worden door dgeDetailhandel / dgeGroothandel niet gebruikt. De categorieën worden in OpenCart aangemaakt en onderhouden. In dgeDetailhandel / dgeGroothandel worden de categorieën alleen weergegeven zodat producten vanuit dgeDetailhandel / dgeGroothandel direct in de juiste categorie aan OpenCart kunnen worden toegevoegd. Zie voor meer informatie nl_productController.

Methods gebruikt door dgeDetailhandel / dgeGroothandel

GET 1 overview

Met de parameters 'start' en 'limit' kan het aantal categorieën worden opgehaald net zolang totdat een 404 status terug komt (404, not found). De communicatie vanuit dgeDetailhandel / dgeGroothandel start standaard met een 'limit' van 5. Mocht de webserver een HTTP statuscode 500 teruggeven (bijvoorbeeld door onvoldoende geheugen) dan wordt de 'limit' automatisch verlaagd naar 1.

De volgorde van de categorieën dient dusdanig te zijn dat ingeval een categorie een parent_id bevat <parent_id> dit parent_id als categorie al eerder is aangeboden. De categorieën dienen dus in de juiste volgorde te worden aangeboden.

HEADERS
GET /oc2/ocapi/category.xml?start=0&limit=20 HTTP/1.1
x-auth-token: e3a6a1fc0bf3e1f0c5dcb801caca5fb3
x-service-token: 555c7f149178099205edcc30
Host: jd.windev.nl
Connection: close
CONTENT

De tag 'reference' is belangrijk. Hieraan is te zien of een Webshop product is gekoppeld aan het pakket. Of dat een product gekoppeld dient te worden.

Als reference->dge_reference leeg is, maar reference->catalogus_id is wel gevuld, dan kan het product in het pakket gekoppeld worden.

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <category>
    <category_id>10</category_id>
    <name>Test Category</name>
    <parent_id>0</parent_id>
    <sort_order>0</sort_order>
        <reference>
      <catalogus_id>3995974</catalogus_id>
      <product_id>24367</product_id>
      <dge_reference>
        <product_id>24367</product_id>
        <catalogus_id>3995974</catalogus_id>
        <unit_id>1</unit_id>
        <unit_description>stuks</unit_description>
      </dge_reference>
    </reference>
    <reference>
      <catalogus_id>3996360</catalogus_id>
      <product_id>24368</product_id>
      <dge_reference>
        <product_id>24368</product_id>
        <catalogus_id>3996360</catalogus_id>
        <unit_id>1</unit_id>
        <unit_description>stuks</unit_description>
      </dge_reference>
    </reference>
    <products>
      <product_id/>
    </products>
  </category>
  <category>
    <category_id>12</category_id>
    <name>Test Category 3</name>
    <parent_id>0</parent_id>
    <sort_order>0</sort_order>
    <products>
      <product_id/>
    </products>
  </category>
  <category>
    <category_id>11</category_id>
    <name>Test Category 2</name>
    <parent_id>10</parent_id>
    <sort_order>0</sort_order>
    <products>
      <product_id/>
    </products>
  </category>
</response>
Tags

De volgende tags worden door dgeDetailhandel / dgeGroothandel gebruikt.

niveau tag formaat aanwezig omschrijving
top <response> [1..1]
1 <category> [1..n]
2 .<category_id> Numeriek(9) [1..1] OpenCart Category ID
2 .<name> Tekst(255) [1..1] Omschrijving van de categorie
2 .<parent_id> Numeriek(9) [1..1] Het OpenCart Category ID van de bovenliggende groep
2 .<sort_order> Numeriek(9) [1..1] Sorteervolgorde
2 .<reference> [0..n]
3 ..<product_id> Numeriek(9) [1..1] OpenCart product ID
3 ..<catalogus_id> Numeriek(9) [1..1] dge artikelnummer
3 ..dge_reference> [0..1] Deze sectie dient aanwezig te zijn als het product al eerder is gekoppeld met dgeDetailhandel / dgeGroothandel. Als deze sectie niet aanwezig is dan wordt het product opnieuw gekoppeld. De prijs en voorraad van het product zullen dan worden aangeboden aan OpenCart. Zie nl_productController Afhankelijk van een instelling in dgeDetailhandel/ dgeGroothandel zal de prijs en voorraad òf van alleen de voorkeurs verkoopeenheid òf van alle verkoopeenheden worden aangeboden aan OpenCart.
4 ...<product_id> Numeriek(9) [1..1] OpenCart Product ID
4 ...<catalogus_id> Numeriek(9) [1..1] dge artikelnummer
4 ...<unit_id> Numeriek(3) [1..1] dge eenheidscode

Testplan

De volgende handelingen kunnen in dgeDetailhandel / dgeGroothandel worden uitgevoerd om de communicatie te testen:

Overige methods

De onderstaande methods worden niet door dgeDetailhandel / dgeGroothandel gebruikt en hoeven dus niet te worden geïmplementeerd.

POST 1 insert

HEADERS
POST /oc2/ocapi/category.xml HTTP/1.1
x-auth-token: e3a6a1fc0bf3e1f0c5dcb801caca5fb3
x-service-token: 555c7f149178099205edcc30
Content-Type: application/xml
Content-Length: 146636
Host: jd.windev.nl
CONTENT

Dit zijn tevens alle beschikbare velden voor een Category.

<?xml version="1.0" encoding="UTF-8"?>
<category>
    <parent_id>0</parent_id>
    <image_b64>/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEB
    ....
  </image_b64>
    <top>0</top>
    <status>0</status>
    <sort_order>0</sort_order>
    <column>3</column>
    <keyword>seo_url_voor_test_category</keyword>
    <category_description>
        <nl>
            <name>Test Category</name>
            <description>for testing puproses</description>
            <meta_description>meta description for test puposes</meta_description>
            <meta_keyword>meta, keywords, tests</meta_keyword>
        </nl>
    </category_description>
</category>

RESPONSE POST 1 insert

HEADERS
HTTP/1.1 200 Ok
Date: Fri, 22 May 2015 06:55:06 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: OC Dge Driver (v2)
Transfer-Encoding: chunked
Connection: close
Content-Type: application/xml; charset=utf-8
CONTENT
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <category>
    <status>ok</status>
    <category_id>10</category_id>
  </category>
</response>

POST 2 update

De category id wordt toegevoegd aan de url als een bestaande category ge-update moet worden.

HEADERS
POST /oc2/ocapi/category/11.xml HTTP/1.1
x-auth-token: e3a6a1fc0bf3e1f0c5dcb801caca5fb3
x-service-token: 555c7f149178099205edcc30
Content-Type: application/xml
Content-Length: 88
Host: jd.windev.nl
Connection: close
CONTENT

Bij een update kunnen alle afzonderlijke velden gezet worden.

<?xml version="1.0" encoding="UTF-8"?>
<category>
    <parent_id>10</parent_id>
</category>

RESPONSE POST 2 update

HEADERS
HTTP/1.1 200 Ok
Date: Fri, 22 May 2015 06:55:06 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: OC Dge Driver (v2)
Transfer-Encoding: chunked
Connection: close
Content-Type: application/xml; charset=utf-8
CONTENT
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <category>
    <status>ok</status>
    <category_id>11</category_id>
  </category>
</response>

POST 3 minimal insert

De category id wordt toegevoegd aan de url als een bestaande category ge-update moet worden.

HEADERS
POST /oc2/ocapi/category.xml HTTP/1.1
x-auth-token: e3a6a1fc0bf3e1f0c5dcb801caca5fb3
x-service-token: 555c7f149178099205edcc30
Content-Type: application/xml
Content-Length: 194
Host: jd.windev.nl
Connection: close
CONTENT

Bij een update kunnen alle afzonderlijke velden gezet worden.

<?xml version="1.0" encoding="UTF-8"?>
<category>
    <status>0</status>
    <category_description>
        <pipo>4</pipo>
        <nl>
            <name>Test Category 3</name>
        </nl>
    </category_description>
</category>

RESPONSE POST 3 minimal insert

HEADERS
HTTP/1.1 200 Ok
Date: Fri, 22 May 2015 06:55:06 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: OC Dge Driver (v2)
Transfer-Encoding: chunked
Connection: close
Content-Type: application/xml; charset=utf-8
CONTENT
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <category>
    <status>ok</status>
    <category_id>12</category_id>
  </category>
</response>

GET 2 details

HEADERS
GET /oc2/ocapi/category/10.xml HTTP/1.1
x-auth-token: e3a6a1fc0bf3e1f0c5dcb801caca5fb3
x-service-token: 555c7f149178099205edcc30
Host: jd.windev.nl
Connection: close
CONTENT
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <category>
    <category_id>10</category_id>
    <image>catalog/c/10/10_.jpg</image>
    <parent_id>0</parent_id>
    <top>0</top>
    <column>3</column>
    <sort_order>0</sort_order>
    <status>0</status>
    <date_added>2015-05-22 08:55:06</date_added>
    <date_modified>2015-05-22 08:55:06</date_modified>
    <path></path>
    <keyword>seo_url_voor_test_category</keyword>
    <category_description>
      <nl>
        <name>Test Category</name>
        <meta_title>Test Category</meta_title>
        <meta_description>meta description for test puposes</meta_description>
        <meta_keyword>meta, keywords, tests</meta_keyword>
        <description>for testing puproses</description>
      </nl>
    </category_description>
    <category_filter/>
    <category_store/>
    <category_layout/>
    <products/>
  </category>
</response>

DELETE

Een delete kan op 2 manieren plaatsvinden:

  • Met de HTTP method delete: Tot voor kort ondersteunde de dge omgeving (windev) deze methode niet en daarom wordt de deze manier (nog) niet gebruikt
  • Met een http GET method en een aktie 'delete' (zie voorbeeld);
HEADERS

GET /oc2/ocapi/category/delete/12.xml HTTP/1.1 x-auth-token: e3a6a1fc0bf3e1f0c5dcb801caca5fb3 x-service-token: 555c7f149178099205edcc30 Host: jd.windev.nl Connection: close

RESPONSE delete

HEADERS
HTTP/1.1 200 Ok
Date: Fri, 22 May 2015 06:55:06 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: OC Dge Driver (v2)
Transfer-Encoding: chunked
Connection: close
Content-Type: application/xml; charset=utf-8
CONTENT
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <category>
    <status>deleted</status>
    <category_id>12</category_id>
  </category>
</response>

index

Updated