Anak1Dev Posted October 28, 2013 Share Posted October 28, 2013 (edited) Bonjour, On peut attacher un fichier à un produit dématérialisé. Ce fichier dématérialisé peut avoir une durée dans le temps ou par nombre de téléchargement. On peut activer l'envoi d'un mail avec lien de téléchargement lors de l'achat d'un produit dématérialisé. L'admin permet de modifier le fichier du produit dématérialisé. Exemple 1 : ========= 1) La personne achète un produit dématérialisé (v1) le 02/02/2014 et reçoit un mail avec lien de téléchargement. 2) Le 15/02/2014 le marchand modifie le fichier du produit (v2) 3) Si la personne clique sur le lien de téléchargement du fichier le 30/02/2014 elle a comme message "Ce produit n'existe plus"4) L'accès aux fichiers depuis leur détail de commande n'est pas intuitif, résultat les gens appellent. Résultat attendu : - Soit renvoyer le fichier v1 ou un message d'erreur "Le produit a été mis à jour" - Soit et je pense plus souhaitable renvoyer le fichier v2 Je ne maitrise pas encore github, maitrise mal les hooks/surcharges de méthodes et je suis pas expert prestashop mais grosso modo voici ce que j'ai modifié pour avoir un comportement plus normal.j'ai modifié clases/order/orderdetail.php Ajout de : public static function getDownloadFromOrder($order) { if ($order == '') return false; $sql = 'SELECT * FROM `' . _DB_PREFIX_ . 'order_detail` od LEFT JOIN `' . _DB_PREFIX_ . 'product_download` pd ON (od.`product_id`=pd.`id_product`) WHERE od.`id_order` =' . $order . ' AND pd.`active` = 1'; return Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql); } /controllers/getFileController.php J'ai remplacé if (!($info = OrderDetail::getDownloadFromHash($hash))) $this->displayCustomError('This product does not exist in our store.'); par if (!($info = OrderDetail::getDownloadFromOrder(Tools::getValue('id_order')))) $this->displayCustomError('This product does not exist in our store.'); $order_details = OrderDetail::getDownloadFromOrder(Tools::getValue('id_order')); $filename = $order_details['filename']; Edited October 28, 2013 by Anak1Dev (see edit history) Link to comment Share on other sites More sharing options...
Anak1Dev Posted October 28, 2013 Author Share Posted October 28, 2013 PS : Je précise que dans mon cas je n'ai jamais 2 produits dans une commande, sinon il faudrait passer récupérer la ligne détail et non la commande directement. 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