WebHook Product

Résumé

Manipulation de l'entité Product (Articles) en lecture/écriture/suppression via un objet métier depuis une application externe.

Tables

Les tables utilisées sont :

  • sw_data_product : Table des articles

Critères d'activation

WHK_Product est défini dans la gestion des webhooks du studio.

Fonctionnement

verb: GET
resultType: simple


  "product":{
    "codeproduct":"ALB0001",
    "description":"Album 'Mon petit Louvre' français / anglais",
    "productfamily_ID":"BIJOUXARG"
  }

verb: GET
resultType: extended

"product":{
    "codeproduct":"ALB0001",
    "description":"Album 'Mon petit Louvre' français / anglais",
    "productfamily_ID":"BIJOUXARG",
    "barcode":"3210330376946",
    "saleMultiple":"",
    "defaultPrice":"18.84",
    "weight":"0.23",
    "purchasePrice":"6.85",
    "coefficient":"",
    "packaging":"1",
    "supplierReference":"LIVR-JEUX000",
    "supplierBarcode":"",
    "generictype_ID_weightunit":"KG",
    "generictype_ID_taxCode":"1",
    "blocked":"0",
    "supplier_ID":"Saphira",
    "supplementaryDescription1":"test description 1 azerty",
    "supplementaryDescription2":"test description 2",
    "generictype_ID_sellingunit":"SIMPLE",
    "unused":"0",
    "generictype_ID_managementType":"",
    "height":"1",
    "width":"15",
    "depth":"20",
    "generictype_ID_lengthunit":"MM",
    "generictype_ID_brand":"",
    "productGeneric":"0",
    "product_ID_parentDeclination":"",
    "productdeclination_ID_level1":"",
    "productdeclination_ID_level2":"",
    "productdeclination_ID_level3":"",
    "productdeclination_ID_level4":"",
    "productdeclination_ID_level5":"",
    "stockDeclination":"0",
    "erpProductID":""
  }

Verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour la table productfamily

"related":[
{
  "productfamily":{
    "codeproductfamily":"BIJOUXARG",
    "label":"Bijouterie Argent",
    "hierarchicalLevel":"1",
    "productfamily_ID_parentFamily":"ARG"
  }
}]

verb: PUT

{
  "product": {
    "codeproduct": "ALB0001", /* Code globalement unique de l'article (Varchar (255))*/
    "description": "Album 'Mon petit Louvre'  français / anglais", /* Description (Varchar (255))*/
    "productfamily_ID": "LIBTECH", /* Code famille d'article (ForeignKey () - sw_data_productfamily.codeproductfamily)*/
    "saleMultiple": "", /* Multiple de vente (Double ())*/
    "defaultPrice": "18.84", /* Prix par défaut (Double ())*/
    "purchasePrice": "6.85", /* Prix d'achat (Double ())*/
    "weight": "0.230", /* Poids brut (Double ())*/
    "coefficient": "", /* Coefficient PV TTC / PA HT (Double ())*/
    "generictype_ID_weightunit": "WEIGHT_UNIT-KG", /* Code unité de poids (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = WEIGHT_UNIT)*/
    "barcode": "3210330376946", /* Code-barres (Varche (64))*/
    "packaging": "1", /* Conditionnement (Varchar (64))*/
    "generictype_ID_taxCode": "TAX_PRODUCT-1", /* Code TVA article (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = TAX_PRODUCT)*/
    "supplierReference": "LIVR-JEUX000", /* Référence chez le fournisseur (Varchar (64))*/
    "supplier_ID": "SAPHIRA", /* Code fournisseur (ForeignKey () - sw_data_supplier.codesupplier)*/
    "supplierBarcode": "", /* Code-barres fournisseur (Varchar (64))*/
    "generictype_ID_sellingUnit": "SELLING_UNIT-SIMPLE", /* Code unité de vente (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = SELLING_UNIT)*/
    "unused": "0", /* Inactif (Valeurs possibles : 0,1) (Bool ())*/
    "generictype_ID_managementType": null, /* Code type de gestion. Utilisé pour la gestion lot/n° de série. (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = PRODUCT_MANAGEMENT_TYPE)*/
    "height": "1", /* Hauteur (Double ())*/
    "width": "15", /* Largeur (Double ())*/
    "depth": "20", /* Profondeur (Double ())*/
    "generictype_ID_lengthunit": "LENGTH_UNIT-MM", /* Code unité de dimension (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = LENGTH_UNIT)*/
    "productGeneric": "0", /* Article générique (Valeurs possibles : 0,1) (Bool ())*/
    "product_ID_parentdeclination": null, /* Code article parent. A renseigner si l'article en cours est une déclinaison (ForeignKey () - sw_data_product.codeproduct)*/
    "productdeclination_ID_level1": null, /* Code déclinaison article niveau 1. A renseigner si l'article en cours est une déclinaison. (ForeignKey () - sw_data_productdeclination.codeproductdeclination)*/
    "productdeclination_ID_level2": null, /* Code déclinaison article niveau 2. A renseigner si l'article en cours est une déclinaison et si besoin d'un 2eme niveau. (ForeignKey () - sw_data_productdeclination.codeproductdeclination)*/
    "productdeclination_ID_level3": null, /* Code déclinaison article niveau 3. A renseigner si l'article en cours est une déclinaison et si besoin d'un 3eme niveau. (ForeignKey () - sw_data_productdeclination.codeproductdeclination)*/
    "productdeclination_ID_level4": null, /* Code déclinaison article niveau 4. A renseigner si l'article en cours est une déclinaison et si besoin d'un 4eme niveau. (ForeignKey () - sw_data_productdeclination.codeproductdeclination)*/
    "productdeclination_ID_level5": null, /* Code déclinaison article niveau 5. A renseigner si l'article en cours est une déclinaison et si besoin d'un 5eme niveau. (ForeignKey () - sw_data_productdeclination.codeproductdeclination)*/
    "stockDeclination": "0", /* Gestion de stock avec déclinaisons (Valeurs possibles : 0,1) (Bool ())*/
    "blocked": "0", /* Article bloqué (Valeurs possibles : 0,1) (Bool ())*/
    "supplementaryDescription1": "", /* Description complémentaire 1 (Text (65535))*/
    "supplementaryDescription2": "", /* Description complémentaire 2 (Text (65535))*/
    "generictype_ID_brand": "", /* Code marque (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = BRAND)*/
    "erpProductID": null, /* ID article ERP (Varchar (255))*/
    "internalCodeProduct": null, /* CodeProduct original de weavy s'il y a eu transcodage (Varchar (255)) */
 
    /* Champs supplémentaires en surcharge DIVINF */
    "divinf_t001_ID_tafamr": "LIB", /* Code famille de tarification (ForeignKey () - sw_data_divinf_t001.codedivinf_t001)*/
    "divinf_t001_ID_tafamrx": "", /* Code famille de tarification exceptionnelle (ForeignKey () - sw_data_divinf_t001.codedivinf_t001)*/
    "divinf_t002_ID_refamr": "LIBR", /* Code classe de remise (ForeignKey () - sw_data_divinf_t002.codedivinf_t002)*/
    "divinf_t002_ID_refamrx": "", /* Code classe de remise exceptionnelle (ForeignKey () - sw_data_divinf_t002.codedivinf_t002)*/
    "divinf_pvcod": "1", /* Code prix de vente (Valeurs possibles : 1 (si l'article n'est pas décomposé ou si prix de vente sur composé), 2 (si prix de vente sur composant)) (Int ())*/
    "divinf_CR": "6.85", /* Coût de revient (Double ())*/
    "divinf_CMP": "6.85", /* Coût moyen pondéré (Double ())*/
    "divinf_generictype_ID_refUn": "SELLING_UNIT-P", /* Code unité de référence (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = SELLING_UNIT)*/

    /* Optionnel : pour mettre à jour les champs dynamiques selon paramétrage */
    /* Exemple : */
    "dynamicfields": 
    [{
      "fieldname": "ArtCatalogue",
      "fieldvalue": "La vie du rail"
    },
    {
      "fieldname": "ArtCataloguePage",
      "fieldvalue": "99"    
    },
    {
      "fieldname": "ArtCatalogueNbre",
      "fieldvalue": "3"    
    },
    {
      ...
    }]
    /* Exemple 2 : */
    /* A partir de la version SUMMER'21, le mappage direct des champs dynamiques est possible en utilisant le nom du champ en bdd */
    "v_ArtCatalogue": "La vie du rail",
    "v_ArtCataloguePage": "99",
    "v_ArtCatalogueNbre": "3",
    ...	
  }
}

verb: LIST
resultType: simple, extended, extendedRelated reprendre les définitions du GET

"filters:" {
  "codeProduct": "value", filter is equal
  "description": "value", filter is contains
  "productFamily": "value" filter is equal
}