torn33260 Posted August 17, 2016 Share Posted August 17, 2016 Bonjour à tous, J'ai un ecommerce de produit alimentaire. Afin de l'améliorer, je me suis lancé dans l'automatisation de processus. Avant je mettais manuellement le prix au kilo, qui devait etre changé à chaque modification de prix et promotions. Maintenant, c'est afficher sous le prix avec distinction Litre / Kilo. Le tout grace aux variables de la page livraison (poid, hauteur, largeur du colis) aui me sont inutiles (pas d'envoi). Je voudrais afficher la date limite de consommation des produits. Malheureusement, je ne suis pas un pro de la programmation. Je me débrouille un peu sous php. L'environnement de prestashop est très complexe pour moi. Je compte faire une page externe pour modifier les dates sur une page unique et recevoir un mail journalier pour la gestion des casses et des promotions DLC. Modifier le Product.tpl pour calculer et afficher comme je veux n'est pas un problème tant que j'ai mes variables. Pour les DLC j'ai créé une colonne dans ma base (dans prestashop_product) mais je ne sais pas comment le récupérer dans mon fichier template. J'ai beaucoup cherché et trouvé la fonction assign de smarty mais ma comprehension de la chose s'arrete là. Je ne sais pas où sont récurérés les données de la base et assignés à des variables. Pouvez vous m'aider? Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 17, 2016 Share Posted August 17, 2016 (edited) bonsoir, si je comprend bien tu veux ajouter un champ style DLC dans ta page produit. 1) tu vas dans ton phpmyadmin, dans la table "ps_product_lang" tu vas dans structure et tu ajoutes une colonne de type text qu'on appelle "product_dlc". 2) tu crées un override de la classe product, (dans le dossier override/classes) tu crées un fichier que tu nomme Product.php <?php class Product extends ProductCore { public $product_dlc; public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null) { parent::$definition['fields']['product_dlc'] = array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString'); parent::__construct($id_product, $full, $id_lang, $id_shop, $context); } } 3) si tu veux créer un champ dans ton backoffice au niveau de la fiche produit tu crées /override/controllers/admin/templates/products/information.tpl la tu reprend tout le code du tpl de /ton_dossier_admin/themes/default/template/controllers/products/informations.tpl (copier / coller) et tu injectes le nouveau morceau de code qui va afficher ton nouveau champ {*START NEW FIELD ALEX*} <div class="form-group"> <div class="col-lg-1"><span class="pull-right">{include file="controllers/products/multishop/checkbox.tpl" field="product_dlc" type="tinymce" multilang="true"}</span></div> <label class="control-label col-lg-2" for="product_dlc_{$id_lang}"> <span class="label-tooltip" data-toggle="tooltip" title="{l s='Appears in the body of the product page.'}"> {l s='DLC Produit'} </span> </label> <div class="col-lg-9"> {include file="controllers/products/input_text_lang.tpl" languages=$languages input_name='product_dlc' input_value=$product->product_dlc} </div> </div> {*END NEW FIELD ALEX*} 3) tu effaces /cache/class_index.php 4) tu as envie de faire l importation des nouvelles données DLC via un csv et l outils d import produit de prestashop pour te faire gagner du temps: tu crées override/controllers/admin/AdminImportController.php <?php class AdminImportController extends AdminImportControllerCore { public function __construct() { parent::__construct(); $this->available_fields += array( 'product_dlc' => array('label' => $this->l('DLC Produit')), ); } } tu effaces encore class_index.php 5) pour afficher la variable au niveau de product.tpl, tu injectes ou tu veux dans le code: {$product->product_dlc|escape:'html':'UTF-8'} cdt Edited August 17, 2016 by Alex-Kodd (see edit history) 1 Link to comment Share on other sites More sharing options...
torn33260 Posted August 18, 2016 Author Share Posted August 18, 2016 Merci beaucoup poiur cette réponse très précise. Je ne vais pas utilisé le CSS car je dois rentrer moi meme les dates. Je me suis fait un petit tableau avec imput pour me faciliter les choses à la réception d'une commande. Je peux maintenant afficher ma DLc sur les fiches produits. Demain je regarde pour inclure un input dans le Backoffice. Merci encore et bonne soirée. Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 18, 2016 Share Posted August 18, 2016 Salut css et csv ce n est pas pareil ! Cdt Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now