update_basket_items


Questa chiamata aggiorna i prodotti nel basket  riservato WWT assieme ai dati del cliente finale.


Chiamata parametri:

Parametro

Obbligatorio

Note

uid

si

Id cliente

pid

si

Id Portale

lid

si

id Lingua

key

si

Codice di autenticazione

api_version  

si

Versione API.

request

si

Nome della funzione richiesta

items

si

Radice dell'albero che contiene le richieste

    id_basket

si

Id del prodotto ottenuto dalla chiamata get_brand_items

    qty

si

quantità del prodotto richiesta

Nota: qty = 0  equivale a cancellare la riga dal basket

    user_id_order

no

id ordine utente finale

    user_id_user

no

id utente finale

    user_company_name

no

ragione sociale o titolo dell'utente finale (Mr., Ms., Sig. , Sig.ra, dott., etc...  )

    user_first_name

no

nome utente finale

    user_last_name

no

cognome utente finale

    user_address

no

indirizzo utente finale

    user_city

no

città utente finale

    user_country

no

provincia utente finale

    user_zipcode

no

cap utente finale

    user_state

no

nazione utente finale

    user_phone

no

telefono utente finale

    user_mobile

no

cellulare utente finale

    user_mail

no

indirizzo mail  utente finale

    user_retail_price

no

prezzo retail utente finale

    user_discount

no

prezzo scontato utente finale

    user_price

no

prezzo finale utente finale

    user_cod

no

Pagamento in contrassegno (cod: Cache on Delivery ). Due soli valori ammessi:

  • 1 - Si
  • 0 - No

Default : 0

    user_note

no

note inserite dall'utente finale

    internal_note

no

note inserite dal partner per WWT


I campi non obbligatori sono quelli riguardanti l'utente che ha eseguito l'ordine ed i campi di messaggistica.

Nel caso in cui il partner voglia utilizzare la nostra interfaccia di Dropshipping questi dati saranno necessari anche se restano comunque non obbligatori.


I campi di messaggistica devono essere inviati codificati in base64 onde prevenire problemi di interpretazione della struttura dati JSON.

Nel caso in cui non lo fossero, le API provvederanno a farlo.

Ad ogni modo questi campi ( user_note ed internal_note ) saranno diffusi in base64.

 




Risposta parametri:


Questa risposta è divisa in due parti.

  • Parte generale che stabilisce se l'intero processo di inserimento dati nel basket è andato bene o meno.
  • Parte dettagliata, che riporta per ogni singola richiesta l'esito dell'inserimento nel DB. Queste risposte sono incapsulate nel nodo padre "items"



Risposta Parte generale


Parametro

Sempre Presente

Note

success

si

true o false, indica se tutte le operazioni eseguite hanno  avuto buon esito o meno

rc

si

return code.

message

si

Messaggio di errore


Questo parte del messaggio  può avere come messaggi d'errore


  • -2  Access Denied
  • -4  Fatal Error: There was an internal Error. Please retry or contact webmaster@wwt.it
  • -11 One or more errors occurred while processing your request.
  • -14 Unable to proceed. User does not have permission to perform this action



Nel caso  di errori  -2 o -4, non sarà presente  il campo items e quindi neppure il dettaglio dei singoli messaggi.



Risposta Parte Dettagliata.


L'esito della richiesta con rc = 0 ( tutto ok) o un rc = -4 (fatal Error)  viene evidenziato con soli 4 campi:


Parametro

Sempre Presente

Note

success

si

true o false, indica se tutte le operazioni eseguite hanno  avuto buon esito o meno

rc

si

return code.

message

si

Messaggio di errore

id_basket

si

L'Id del basket a cui si riferisce l'esito dell'operazione



Tutti gli altri risultati mostrano i seguenti campi:


Parametro

Sempre Presente

Note

success

si

true o false, indica se l'operazione ha avuto buon esito o meno

rc

si

return code.

message

si

Messaggio di errore

id_basket

si

Indica l'id di riferimento nel basket WWT.

qty_requested

si

Quantità richiesta

qty_available

si

Nuova quantità disponibile nello store WWT dopo aver modificato il basket

minimum_qty

si

Quantità minima necessaria per poter procedere all'inserimento del prodotto nel basket. Questo valore è possibile prenderlo dal campo "min_qty" della funzione get_brands.

qty_reserved

si

Quantità riservata. Questo valore può essere diverso dalla qty_requested se:

  • qty_requested < min_qty ,  ma in magazzino abbiamo solo N prodotti che sono meno di min_qty  e qty_requested => N
  • qty_requested > qty_available



Struttura Json di richiesta:


{

    "uid": 12345,

    "pid": 2,

    "lid": 1,

    "key": "VtKpudWnzRBioQeBKQXPBdSpamppUTw8",

    "api_version": "1.0.0",

    "request": "update_basket_items",

    "items": [{

        "id_basket": 112,

        "qty": 31,

        "user_id_order": 22,

        "user_id_user": 33,

        "user_company_name": "Ms.",

        "user_first_name": "Matilda",

        "user_last_name": "Dale",

        "user_address": "10 Horner Street",

        "user_city": "Akron",

        "user_country": "OH",

        "user_zipcode": "44307",

        "user_state": "United States",

        "user_phone": "330-977-0601",

        "user_mobile": "330-977-0602",

        "user_mail": "MatildaDale@rhyta.com",

        "user_retail_price": 1000,

        "user_discount": 50.3,

        "user_price": 497,

        "user_cod": 1,

        "user_note": "dGVzdG8gY2xpZW50ZQ==",

        "internal_note": "dGVzdG8gZXNlcmNlbnRl"

    }, {

        "id_basket": 22,

        "qty": 14,

        "user_id_order": 22,

        "user_id_user": 33,

        "user_company_name": "Mr.",

        "user_first_name": "Arabella",

        "user_last_name": "Palermo",

        "user_address": "Bayreuther Strasse 14",

        "user_city": "Offenbach",

        "user_country": "am",

        "user_zipcode": "63073",

        "user_state": "Germany",

        "user_phone": "069 82 66 04",

        "user_mobile": "069 82 66 07",

        "user_mail": "ArabellaPalermo@dayrep.de",

        "user_retail_price": 1000,

        "user_discount": 50.3,

        "user_price": 497,

        "user_cod": 0,

        "user_note": "dGVzdG8gY2xpZW50ZQ==",

        "internal_note": "dGVzdG8gZXNlcmNlbnRl"

    }, {

        "id_basket": 114,

        "qty": 3,

        "user_id_order": 22,

        "user_id_user": 33,

        "user_company_name": "Intervals s.a.r.l.",

        "user_first_name": "Melvin",

        "user_last_name": "Jansson",

        "user_address": "Avda. Alameda Sundheim, 72",

        "user_city": "Binaced",

        "user_country": "",

        "user_zipcode": "22510",

        "user_state": "Spain",

        "user_phone": "974 313 352",

        "user_mobile": "974 313 687",

        "user_mail": "MelvinJansson@jourrapide.com",

        "user_retail_price": 1000,

        "user_discount": 50.3,

        "user_price": 497,

        "user_cod": 1,

        "user_note": "dGVzdG8gY2xpZW50ZQ==",

        "internal_note": "dGVzdG8gZXNlcmNlbnRl"

    }]

}



Esempio di chiamata php:



$data = array(

    "uid"          => 12345,

    "pid"          => 2,

    "lid"          => 1,

    "key"          => "VtKpudWnzRBioQeBKQXPBdSpamppUTw8",

    "api_version" => "1.0.0",

    "request"     => "update_basket_item",

    "items"    => array(

        array(

            'id_basket'          => 112,

            'qty'                => 31,

            'user_id_order'      => 1,

            'user_id_user'       => 2,

            'user_company_name'  => 'Ms',

            'user_first_name'    => 'Matilda',

            'user_last_name'     => 'Dale',

            'user_address'       => '10 Horner Street',

            'user_city'          => 'Akron',

            'user_country'       => 'OH',

            'user_zipcode'       => '44307',

            'user_state'         => 'United States',

            'user_phone'         => '330-977-0601',

            'user_mobile'        => '330-977-0602',

            'user_mail'          => 'MatildaDale@rhyta.com',

            'user_retail_price'  => 1000,

            'user_discount'      => 50.30,

            'user_price'         => 497,

            'user_cod'           => 1,

            'user_note'          => base64_encode('testo cliente'),

            'internal_note'      => base64_encode('testo esercente')

        ) ,

        array(

            'id_basket'          => 22,

            'qty'                => 14,

            'user_id_order'      => 3,

            'user_id_user'       => 4,

            'user_company_name'  => 'Mr.',

            'user_first_name'    => 'Arabella',

            'user_last_name'     => 'Palermo',

            'user_address'       => 'Bayreuther Strasse 14',

            'user_city'          => 'Offenbach',

            'user_country'       => 'am',

            'user_zipcode'       => '63073',

            'user_state'         => 'Germany',

            'user_phone'         => '069 82 66 04',

            'user_mobile'        => '069 82 66 07',

            'user_mail'          => 'ArabellaPalermo@dayrep.de',

            'user_retail_price'  => 1000,

            'user_discount'      => 50.30,

            'user_price'         => 497,

            'user_cod'           => 1,

            'user_note'          => base64_encode('testo cliente'),

            'internal_note'      => base64_encode('testo esercente')


        ),

        array(

            'id_basket'          => 114,

            'qty'                => 3,

            'user_id_order'      => 5,

            'user_id_user'       => 6,

            'user_company_name'  => 'Intervals s.a.r.l.',

            'user_first_name'    => 'Melvin',

            'user_last_name'     => 'Jansson',

            'user_address'       => 'Avda. Alameda Sundheim, 72',

            'user_city'          => 'Binaced',

            'user_country'       => '',

            'user_zipcode'       => '22510',

            'user_state'         => 'Spain',

            'user_phone'         => '974 313 352',

            'user_mobile'        => '974 313 687',

            'user_mail'          => 'MelvinJansson@jourrapide.com',

            'user_retail_price'  => 1000,

            'user_discount'      => 50.30,

            'user_price'         => 497,

            'user_cod'           => 1,

            'user_note'          => base64_encode('testo cliente'),

            'internal_note'      => base64_encode('testo esercente')

        )

    )

);



$data = array('data' => json_encode($data));

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://dev.dropshippingb2b.com/api/");

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,2);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$ce = curl_exec($ch);


echo $ce;


curl_close($ch);






Esempio di Risposta positiva


{

    "success": true,

    "rc": 0,

    "message": "",

    "items": [{

        "success": true,

        "rc": 0,

        "message": "",

        "id_basket": 112

    }, {

        "success": true,

        "rc": 0,

        "message": "",

        "id_basket": 22

    }, {

        "success": true,

        "rc": 0,

        "message": "",

        "id_basket": 114

    }]

}



Alcuni esempi di Risposta negativa:


{

    "success": false,

    "rc": -11,

    "message": "One or more errors occurred while processing your request",

    "items": [{

        "success": true,

        "rc": 0,

        "message": "",

        "id_basket": 3

    }, {

        "success": false,

        "rc": -12,

        "message": "id_basket 40 not found. No change has been made",

        "id_basket": 40

    }, {

        "success": false,

        "rc": -12,

        "message": "id_basket 37 not found. No change has been made",

        "id_basket": 37

    }]

}



{

    "success": false,

    "rc": -11,

    "message": "One or more errors occurred while processing your request",

    "items": [{

        "success": false,

        "rc": -10,

        "message": "The requested quantity is not available in stock. Only 11 item(s) was reserved",

        "id_basket": 3,

        "qty_requested": 55,

        "qty_available": "0",

        "minimum_qty": "0",

        "qty_reserved": 11

    }, {

        "success": false,

        "rc": -12,

        "message": "id_basket 40 not found. No change has been made",

        "id_basket": 40

    }, {

        "success": false,

        "rc": -12,

        "message": "id_basket 37 not found. No change has been made",

        "id_basket": 37

    }]

}



{

    "success": false,

    "rc": -11,

    "message": "One or more errors occurred while processing your request",

    "items": [{

        "success": true,

        "rc": 0,

        "message": "",

        "id_basket": 3

    }, {

        "success": true,

        "rc": 0,

        "message": "",

        "id_basket": 4

    }, {

        "success": false,

        "rc": -8,

        "message": "It was not possible to reserve item(s). Minimum quantity is not reached",

        "id_basket": 5,

        "qty_requested": 1,

        "qty_available": "0",

        "minimum_qty": "10",

        "qty_reserved": "14"

    }]

}



Questa parte del messaggio  può avere come messaggi d'errore


  • -4  Fatal Error: There was an internal Error. Please retry or contact webmaster@wwt.it
  • -6  Field {0} si mandatory
  • -8  It was not possible to reserve item(s). Minimum quantity is not reached
  • -10 The requested quantity is not available in stock. Only {0} item(s) was reserved
  • -12 id_basket {0} not found
  • -13 Unable to add quantity requested. The product is out of stock
  • -20 user_cod must be 0 or 1



















Created with the Personal Edition of HelpNDoc: Free EPub and documentation generator