{"text_format":"1","workbook":"xlsx","n_sheets":7,"sheets":["MDD SECONDAIRE","PROFILES","ORDERS","ORDER LINES","ABANDONED CARTS","ABANDONED CART LINES","liste valeur"],"not_rendered":{"charts":0,"images":0,"macros":0,"external_links":0,"defined_names":0,"comments":1,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"MDD SECONDAIRE","index":0,"n_rows":63,"n_cols":9,"rows_kept":63,"cut":false,"hidden":true,"merged":[[15,1,15,8],[26,1,26,8],[38,1,38,8],[50,1,50,8],[59,1,59,8]]}
[]
["DESCRIPTION DU MODÈLE DE DONNÉES SECONDAIRE"]
[]
[null,null,"Colonne à l'usage du client uniquement"]
[null,null,"Colonne à l'usage d'ACTITO uniquement"]
[]
[null,"Attention : chaque fichier doit être zippé individuellement en format .zip ou .gzip"]
[null,"LISTE DES TABLES"]
[null,null,"Nom technique de la table","Nom de la table dans l'interface ","Type de table","Si FTP : fichier obligatoire / optionnel","Si FTP : nom de fichier"]
[null,1,"Secondaire","Secondaire","Profils","Obligatoire","<YYYYMMDD>_<CLIENT>_SECONDAIRE.csv"]
[null,2]
[]
["TABLE DE PROFILS"]
["Toutes les personnes devant recevoir une communication marketing sont à importer dans la table de profil"]
[]
[null,"CONTACTS"]
[]
[null,null,"Nom technique / libellé de colonne dans le fichier","Provenance (colonne à l'usage du client / partenaire)","Type","Contraintes","Lien table de référence / Champ standard ACTITO","Nom du champ dans ACTITO","Description"]
[null,1,"idContact",null,"INTEGER","Unique et obligatoire",null,"Contact ID","Identifiant unique et obligatoire du profil dans ACTITO"]
[null,2,"email",null,"emailAddress",null,"emailAddress","Adresse email"]
[null,3]
[null,4]
[]
["TABLES DE DONNÉES LIÉES"]
["Relations 1-1 ou 1-N entre Profil et la table"]
[]
[null,"XXX"]
[]
[null,null,"Nom technique / libellé de colonne dans le fichier","Provenance (colonne à l'usage du client / partenaire)","Type","Contraintes","Lien table de référence / Champ standard ACTITO","Nom du champ dans ACTITO","Description"]
[null,1,"idUniqueXXX",null,"INTEGER","Unique et obligatoire",null,"ID XX","Identifiant unique et obligatoire dans la table"]
[null,2,"idContact",null,"INTEGER","Obligatoire",null,"Contact ID","Identifiant du profil, lien avec la table de profils"]
[null,3]
[null,4]
[]
["TABLES DES INTERACTIONS"]
["Relations 1-1 ou 1-N entre Profil et la table"]
["Un champ obligatoire au format date et heure doit être à minima présent dans cette table"]
[]
[null,"XXX"]
[]
[null,null,"Nom technique / libellé de colonne dans le fichier","Provenance (colonne à l'usage du client / partenaire)","Type","Contraintes","Lien table de référence / Champ standard ACTITO","Nom du champ dans ACTITO","Description"]
[null,1,"idUniqueXXX",null,"INTEGER","Unique et obligatoire",null,"ID XX","Identifiant unique et obligatoire dans la table"]
[null,2,"idContact",null,"INTEGER","Obligatoire",null,"Contact ID","Identifiant du profil, lien avec la table de profils"]
[null,3]
[null,4]
[]
["TABLES DE RÉFÉRENCE"]
["Relations N-1 entre une table de profils et/ou de données liées et/ou des interactions et la table de référence"]
["Maximum 10000 lignes"]
[]
[null,"XXX"]
[]
[null,null,"Nom technique / libellé de colonne dans le fichier","Provenance (colonne à l'usage du client / partenaire)","Type","Contraintes","Lien table de référence / Champ standard ACTITO","Nom du champ dans ACTITO","Description"]
[null,1,"idUniqueXXX",null,"INTEGER","Unique et obligatoire",null,"ID XX","Identifiant unique et obligatoire dans la table"]
[null,2]
[]
[]
["FICHIERS TECHNIQUES"]
[]
[null,"Suppression de profils"]
[]
[null,null,"Nom technique / libellé de colonne dans le fichier","Provenance (colonne à l'usage du client / partenaire)","Type","Contraintes","Lien table de référence / Champ standard ACTITO","Nom du champ dans ACTITO","Description"]
[null,1,"idContact",null,"INTEGER","Obligatoire",null,"ID Contact"]

{"sheet":"PROFILES","index":1,"n_rows":30,"n_cols":5,"rows_kept":30,"cut":false,"hidden":false,"merged":[[18,0,18,4],[21,0,21,4]]}
["#","Technical name on Actito table","CMS concept","CMS Field","Rules apply during the injection"]
[1,"accountId","customers","id"," -"]
[2,"firstName","customers","firstname"," -"]
[3,"lastName","customers","lastname"," -"]
[4,"emailAddress","customers","email"," -"]
[5,"sex","customers","id_gender","Convert value '1' for M or '2' for F"]
[6,"birthDate","customers","birthday"," -"]
[7,"addressCompany","addresses","company","Fetch first customer's address"]
[8,"VATNumber","addresses","vat_number","Fetch first customer's address"]
[9,"addressStreet","addresses","address1","Fetch first customer's address"]
[10,"addressLocality","addresses","city","Fetch first customer's address"]
[11,"addressCountry","countries","iso_code","Fetch first customer's address \nthen fetch the id_country of this adress\nthen fetch the iso_code of this country"]
[12,"addressRegion","zones","name","Fetch first customer's address \nthen fetch the id_country of this adress\nthen fetch the id_zone  of this country\nthen fetch the name of this zone"]
[13,"addressPostalCode","addresses","postcode","Fetch first customer's address"]
[14,"mobilePhoneNumber","addresses","phone_mobile\nphone","Fetch first customer's address \n\nUse address.phone_mobile or address.phone if empty"]
[15,"customerGroup","groups","name.value","Fetch the id_default_group of the customer\nthen fetch the name of group\n\nOnly the first available name is stored"]
[16,"source","customers","id_shop","Value is derived from 'PRESTASHOP_{id_shop}'"]
[17,"motherLanguage","languages","iso_code","Fetch the id_lang of the customer\nthen fetch the iso_code on this language"]
["Subscription"]
[1,"Newsletter","customers","newsletter"," -"]
[18,"Alerte","Alerte","BOOLEAN"," - true/false"]
["Segmentation"]
[1,"Clients Churn risks","-","-","compute on Actito with a predefined rule"]
[2,"Potential purchasers","-","-","compute on Actito with a predefined rule"]
[3,"New buyers","-","-","compute on Actito with a predefined rule"]
[4,"VIP customer","-","-","compute on Actito with a predefined rule"]
[5,"Unengaged","-","-","compute on Actito with a predefined rule"]
[6,"New subscribers","-","-","compute on Actito with a predefined rule"]
[7,"Engaged 3 months","-","-","compute on Actito with a predefined rule"]
[8,"Unengaged 1 year","-","-","compute on Actito with a predefined rule"]

{"sheet":"ORDERS","index":2,"n_rows":17,"n_cols":5,"rows_kept":17,"cut":false,"hidden":false,"merged":[]}
["#","Technical name on Actito table","CMS concept","CMS Field","Rules apply during the injection"]
[1,"orderId","orders","id","-"]
[2,"reference","orders","reference\nid","Use reference or id if empty"]
[3,"currency","currencies","iso_code","Fetch id_currency of the order\nthen fetch the iso_code of the currency"]
[4,"date","orders","date_add","-"]
[5,"total","orders","total_paid_tax_incl","-"]
[6,"totalExclTax","orders","total_paid_tax_excl","-"]
[7,"totalInclTax","orders","total_paid_tax_incl","-"]
[8,"shipping","orders","total_shipping","-"]
[9,"shippingOption","carriers","name","Fetch the id_carrier of the order\nthen fetch the name of the carrier"]
[10,"paymentMethod","orders","payment","-"]
[11,"couponCode","-","-","Not synchronized"]
[12,"status","order_states","name.value","Fetch the current_state of the order\nThen fetch the name of this order state\n\nIf value for an id_lang is set on the order, we fetch the related name otherwise we use the first available one "]
[13,"shopId","orders","id_shop","-"]
[14,"shopName","shops","name","Fetch the id_shop of the order\nthen fetch the name of the shop"]
[15,"emailAddress","customers","email","Fetch the id_customer of the order \nthen fetch the email of this customer\n"]
[16,"accountId","orders","id_customer","Empty value if the id_customer is '0'"]

{"sheet":"ORDER LINES","index":3,"n_rows":17,"n_cols":5,"rows_kept":17,"cut":false,"hidden":false,"merged":[]}
["#","Technical name on Actito table","CMS concept","CMS Field","Rules apply during the injection"]
[1,"orderId","orders","id"]
[2,"orderDetailId","orders","associations.order_rows[X].id"]
[3,"orderReference","orders","reference\nid","Use reference or id if empty"]
[4,"sku","orders","associations.order_rows[X].product_reference\nassociations.order_rows[X].product_ean13\nassociations.order_rows[X].product_upc","Use the product_reference if not empty, otherwise use the product_ean13 or the upc if empty (value '0' is ignored)"]
[5,"description","products","description[0].value","Fetch the product based on associations.order_rows[X].product_id then sanitize his first available description"]
[6,"name","orders","associations.order_rows[X].product_name"]
[7,"quantity","orders","associations.order_rows[X].product_quantity"]
[8,"unitPrice","orders","associations.order_rows[X].unit_price_tax_incl"]
[9,"unitPriceExclTax","orders","associations.order_rows[X].unit_price_tax_excl"]
[10,"unitPriceInclTax","orders","associations.order_rows[X].unit_price_tax_incl"]
[11,"productUrl","products","id","Fetch the product based on order.associations.order_rows[X].product_id\n\nValue is derived from '{ECOM_CONFIG_API_URL}/index.php?controller=product&id_product={PRODUCT_ID}'"]
[12,"pictureUrl","products\ncombinations","product.id_default_image\ncombination.associations.images[0].id","Fetch the product based on order.associations.order_rows[X].product_id\nFetch the combination based on order.associations.combinations[0].id\n\nValue is derived from '{ECOM_CONFIG_API_URL}/img/p/{SPLIT_IMAGE_ID}/{IMAGE_ID}.jpg'\n\nIMAGE_ID\n---------------\nIf combination, search for an image combination.associations.images[0].id\nIf no image, search for the default image product.id_default_image with a related product.associations.images[DEFAULT_IMAGE].id\n\nSPLIT_IMAGE_ID\n---------------\nThis is a split by characters  (e.g. : id '123' => '1/2/3')"]
[13,"shopId","orders","id_shop"]
[14,"shopName","shops","name","Fetch the shop based on order.id_shop"]
[15,"emailAddress","customers","email","Fetch customer based on the order.id_customer"]
[16,"accountId","orders","id_customer","Empty value if the id_customer is '0'"]

{"sheet":"ABANDONED CARTS","index":4,"n_rows":13,"n_cols":5,"rows_kept":13,"cut":false,"hidden":false,"merged":[]}
["#","Technical name on Actito table","CMS concept","CMS Field","Rules apply during the injection"]
[1,"abandonedCartId","carts","id","Value is derived from '{CART_ID}_{TODAY_AS_YYYYMMDD}'"]
[2,"reference","carts","id"]
[3,"currency","currencies","iso_code","Fetch currency based on cart.id_currency"]
[4,"total","carts\nproducts","cart.associations.cart_rows[ALL].quantity\nproduct.price","Fetch products based on cart.associations.cart_rows[ALL].id_product\n\nFor all the cart.associations.cart_rows, sum the line prices (a line price is derived from cart_rows[X].quantity * product.price)"]
[5,"totalExclTax","-","-","Not synchronized"]
[6,"totalInclTax","-","-","Not synchronized"]
[7,"status","-","-","Not synchronized"]
[8,"abandonedSinceMoment","carts","date_add"]
[9,"shopId","shops","id","Fetch shop based on cart.id_shop"]
[10,"shopName","shops","name","Fetch shop based on cart.id_shop"]
[11,"emailAddress","customers","email","Fetch customer based on the carts.id_customer"]
[12,"accountId","carts","id_customer","Empty value if the id_customer is '0'"]

{"sheet":"ABANDONED CART LINES","index":5,"n_rows":17,"n_cols":5,"rows_kept":17,"cut":false,"hidden":false,"merged":[]}
["#","Technical name on Actito table","CMS concept","CMS Field","Rules apply during the injection"]
[1,"abandonedCartId","carts","id","Value is derived from '{CART_ID}_{TODAY_AS_YYYYMMDD}'"]
[2,"abandonedCartDetailId","carts","id","INDEX is the index of items (1 for the first line, 2 for the second one, etc.)\n\nValue is derived from '{CART_ID}_{TODAY_AS_YYYYMMDD}_{CART_ID}_{INDEX}'"]
[3,"abandonedCartReference","carts","id"]
[4,"sku","products","product.reference\nproduct.ean13\nproduct.upc","Fetch product based on cart.associations.cart_rows[X].id_product\n\nUse the reference if not empty, otherwise use the ean13 or the upc if empty (value '0' is ignored)"]
[5,"description","products","description[0].value","Fetch the product based on associations.cart_rows[X].id_product then sanitize his first available description"]
[6,"name","products","product.name[0].value","Fetch product based on cart.associations.cart_rows[X].id_product"]
[7,"quantity","carts","cart.associations.cart_rows[X].quantity"]
[8,"unitPrice","products\nspecific_prices\ntaxes","product.price\nspecificPrice.price\nspecificPrice.reduction_type\nspecificPrice.reduction","Fetch customer's first address based on the cart.id_customer\nFetch the product based on associations.cart_rows[X].id_product\nFetch specificPrice based on the product.id and address.id_country\nFetch taxRule based on product.id_tax_rules_group and address.id_country\nFetch tax based on taxRule.id_tax\n\nValue is a computedPrice and if none, use product.price\n\ncomputedPrice\n--------------------\nThe ending point of the computedPrice is to find a priceWithTaxes and apply reductions (if any).\n\nIn case the specificPrice is '-1', the priceWithTaxes is the product.price\nIn case there is no tax or the tax.active isn't set or tax.deleted is set, the priceWithTaxes is the specifPrice.price\nOtherwise the priceWithTaxes is computed with specifPrice.price + (specifPrice.price * tax.rate / 100)\n\nThe supported reductions are specificPrice.reduction_type with type 'percentage' and 'amount'.\nIn reduction 'percentage', the reduction is computed with priceWithTaxes - (priceWithTaxes * specificPrice.reduction)\nIn reduction 'amount', the reduction is computed with priceWithTaxes - specificPrice.reduction"]
[9,"unitPriceExclTax","-","-","Not synchronized"]
[10,"unitPriceInclTax","-","-","Not synchronized"]
[11,"productUrl","products","id","Fetch product based on cart.associations.cart_rows[X].id_product\n\nValue is derived from '{ECOM_CONFIG_API_URL}/index.php?controller=product&id_product={PRODUCT_ID}'"]
[12,"pictureUrl","products","associations.images[0]","Fetch product based on cart.associations.cart_rows[X].id_product\n\nValue is derived from '{ECOM_CONFIG_API_URL}/img/p/{SPLIT_IMAGE_ID}/{IMAGE_ID}.jpg'\n\nIMAGE_ID\n---------------\nUse the first available product.associations.images[0]\n\nSPLIT_IMAGE_ID\n---------------\nThe SPLIT_IMAGE_ID is a split by characters  (e.g. : id '123' => '1/2/3')"]
[13,"shopId","shops","id","Fetch shop based on cart.id_shop"]
[14,"shopName","shops","name","Fetch shop based on cart.id_shop"]
[15,"emailAddress","customers","email","Fetch customer based on the cart.id_customer"]
[16,"accountId","carts","id_customer","Empty value if the id_customer is '0'"]

{"sheet":"liste valeur","index":6,"n_rows":22,"n_cols":4,"rows_kept":22,"cut":false,"hidden":true,"merged":[]}
["STRING",null,null,"firstName"]
["INTEGER",null,null,"lastName"]
["BOOLEAN (True / False)",null,null,"birthDate"]
["DATE (yyyy-mm-dd)",null,null,"sex"]
["TIMESTAMP (yyyy-mm-dd hh:mm:ss)",null,null,"motherLanguage"]
["NUMERIC (xx.xx)",null,null,"emailAddress"]
["birthdate",null,null,"addressStreet"]
["emailAddress",null,null,"addressNulber"]
["gsmNumber",null,null,"addressBox"]
["codeLangue",null,null,"addressPostalCode"]
["sex",null,null,"addressLocality"]
["telephoneNumber",null,null,"addressCountry"]
["civilité (M., Mlle, Mme)",null,null,"gsmNumber"]
["codePays",null,null,"telephoneNumber"]
[null,null,null,"civilState"]
[null,null,null,"nbChildren"]
[null,null,null,"profession"]
[null,null,null,"marketingConsent"]
[null,null,null,"-"]
[null,null,null,"abonnement email"]
[null,null,null,"abonnement sms"]
[null,null,null,"abonnement postal"]