Bonjour,

J'ai besoin de pouvoir modifier le fichier d'une option produit de type fichier après la validation de la commande.

Dans l'historique des commandes du compte client, dans la visualisation des commandes, j'ai ajouté, via un <form> la possibilité de choisir un fichier et un bouton de type "change file" qui fait appel à un contrôler.

Dans mon contrôler, je récupère bien les infos et le fichier (vérifié avec un Mage::log)

Maintenant, je dois modifier les paramètres de mon option produit (pas de problème à ce niveau)

Cependant, en regardant la structure de l'option fichier :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
    <?php Mage::log('option'); Mage::log($_option); ?>
    <?php Mage::log('option_value'); Mage::log(unserialize($_option['option_value'])); ?>

on a:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2014-07-29T06:09:58+00:00 DEBUG (7): option
    2014-07-29T06:09:58+00:00 DEBUG (7): Array
    (
        [label] => Fichiers Gerber
        [value] => <a href="http://www.e-circuits.fr/sales/download/downloadCustomOption/id/353/key/c25ad2046b4f47d3dbf1/" target="_blank">ecobiz.pdf.zip</a> 
        [print_value] => ecobiz.pdf.zip 
        [option_id] => 6
        [option_type] => file
        [option_value] => a:10:{s:4:"type";s:15:"application/zip";s:5:"title";s:14:"ecobiz.pdf.zip";s:10:"quote_path";s:68:"/media/custom_options/quote/e/c/c25ad2046b4f47d3dbf136b87c40a61d.zip";s:10:"order_path";s:68:"/media/custom_options/order/e/c/c25ad2046b4f47d3dbf136b87c40a61d.zip";s:8:"fullpath";s:118:"/homepages/20/d524244365/htdocs/e-circuits/magento/media/custom_options/quote/e/c/c25ad2046b4f47d3dbf136b87c40a61d.zip";s:4:"size";s:6:"612878";s:5:"width";i:0;s:6:"height";i:0;s:10:"secret_key";s:20:"c25ad2046b4f47d3dbf1";s:3:"url";a:2:{s:5:"route";s:35:"sales/download/downloadCustomOption";s:6:"params";a:2:{s:2:"id";s:3:"353";s:3:"key";s:20:"c25ad2046b4f47d3dbf1";}}}
        [custom_view] => 1
    )
 
    2014-07-29T06:09:58+00:00 DEBUG (7): option_value
    2014-07-29T06:09:58+00:00 DEBUG (7): Array
    (
        [type] => application/zip
        [title] => ecobiz.pdf.zip
        [quote_path] => /media/custom_options/quote/e/c/c25ad2046b4f47d3dbf136b87c40a61d.zip
        [order_path] => /media/custom_options/order/e/c/c25ad2046b4f47d3dbf136b87c40a61d.zip
        [fullpath] => /homepages/20/d524244365/htdocs/e-circuits/magento/media/custom_options/quote/e/c/c25ad2046b4f47d3dbf136b87c40a61d.zip
        [size] => 612878
        [width] => 0
        [height] => 0
        [secret_key] => c25ad2046b4f47d3dbf1
        [url] => Array
            (
                [route] => sales/download/downloadCustomOption
                [params] => Array
                    (
                        [id] => 353
                        [key] => c25ad2046b4f47d3dbf1
                    )
 
            )
 
    )

Aussi, comme on peut le voir :

1- le fichier doit être copié du tmp dans un répertoire média/../x/x/ (here e/c/)
Comment faire cette opération, et notamment le choix / création des répertoires x/x?
(je n'ai pas réussi à trouver la fonction dans magento…)

2- il y'a aussi une secret key…
Est ce que c'est le même type de clef que celle générée pour les url?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />

3- Le nom de fichier final semble être compasé de la secret key + le nom du fichier récupéré dans le tmp.
c'est bien ça?

Merci pour votre aide,

Alex