FormitRetriever : one placeholder is not retrieved

hi
Can’t make it

in a complex custom cart page, I’ve bnever been able to grabd one place holder [[!+reg.refcde]]

This page is a cart page.
we are in the case of a guest visitor (not logged )
we have an input where he can enter a free ‘order reference’ [[!+reg.refcde]]

the point is that as this visitor is not a known partner he MUST go through a big form on another page where he must enter a ton of data (address for delivery, billing, etc. before going back to the cart page

this is triggered by a button ‘preview order’ : if data from this big form were not entered yet then we go to this big form page and when validating we come back to the cart page.
the [[!+reg.refcde]] is NOT part of the big guest user form from where all data are correctly retrieved and used in a preview and the email sent in fine, but part of the cart page only.
so [[!+reg.refcde]] looks like never being populated.

thank for any help.

<!-- zone ref commande    - [[!+reg.refcde]]- [[+reg.refcde]] - [[!+refcde]]  -->

<p>[[+username:notequalto=``:show]]</p>
<form method='post' action='[[~[[*id]]]]' class="form-horizontal">                      
  <div class="control-group">  
    <div class="controls"> 
      <label class="checkbox inline">[[%i18n.cde_reference? &namespace=`i18ncustom`]]*  
      </label> 
      <input title="[[%i18n.saisir_cde_reference? &namespace=`i18ncustom`]]" type='text' name='refcde' value='[[!+reg.refcde]]' /> 

    </div>	
<!-- zone checkbox lu et accept cgv -->	
    <div class="controls"> 
      <label class="checkbox ">[[%i18n.cde_cdv1? &namespace=`i18ncustom`]] 
        <a target="_blank" title="[[%i18n.extlk_title]] " h
		="[[!~[[BabelTranslation? &resourceId=`41` &contextKey=`[[*context_key]]`]] ]]" class="Xajax-modal"  data-toggle="Xmodal" data-target="#prev-modal" keyboard="true">[[%i18n.cde_cdv2]]</a> *
<input title="[[%i18n.saisir_cde_cdv? &namespace=`i18ncustom`]]" type='checkbox' name='cdv' value="1" [[!+cdv]] /> 
      </label>&nbsp;&nbsp; [[+msgcdv:is=``:then=``:else=`
      <div class="alert alert-error">
        <i class="icon-exclamation-sign"></i> [[!+msgcdv]]
      </div>`]]  
    </div>
  </div>
  <!-- emailclient : [[+emailclient]]  dans le cas partenaire logé / +reg.email [[!+reg.email]] dans le cas guest  -->
  <p class="text-center emailclient">[[%i18n.cde_msgemailclient? &namespace=`i18ncustom`]] <strong>[[+reg.email]]</strong> [[!+msgemailclient]] </p>      	  
  <!-- <p><a class='ajax-modal btn btn-info' data-toggle="modal" href="[[++site_url]][[get_url_like?alias=commande-apercu]]" data-target="#prev-modal" keyboard="true" title="[[%i18n.preview_title]]">[[%i18n.preview]]&nbsp; <i class="icon-search icon-white"></i></a> &nbsp;</p> -->

<!-- boutons preview -->
  <div class="form-actions">           
   
      <input class=' btn btn-info'  title='[[%i18n.preview_title]]' type='submit' name='preview' value='[[%i18n.preview]]' />  
&nbsp;                  	  
     <!-- <input class='btn btn-primary' title='[[%i18n.cde_title? &namespace=`i18ncustom`]]' type='submit'  value='[[%i18n.cde? &namespace=`i18ncustom`]]' />  -->

<!-- boutons  commander -->
<button class='btn btn-primary' title='[[%i18n.cde_title? &namespace=`i18ncustom`]]' type='submit' >&nbsp;[[%i18n.cde? &namespace=`i18ncustom`]] &nbsp;
      <i class="icon-ok icon-white"></i>
    </button> 
<!-- emailclient : [[+emailclient]]  dans le cas arteniare logé / [[!+reg.email]] dans le cas guest  -->
    <input type='hidden' name='emailclient' value= '[[!+emailclient]][[!+reg.email]]' />        	    
    <input type='hidden' name='action' value='valid' />       
     <br /><i class="icon-info-sign"></i> [[%i18n.cde_msg? &namespace=`i18ncustom`]] 

FormItRetriever only gets the data from the last form that was sent (with the FormIt property &store=`1` ). If there is already data stored from a previous transmission, this data gets overwritten.

You can check what is stored/retrieved by taking a look at the file(s) in the folder core/cache/default/web/elements/formit/submission (if you use the default for &storeLocation).


In your case, you probably have to create a custom hook to store the “order reference” in the session variable ($_SESSION) or you could add a (hidden) field for it to the second form.

thanks a lot for those clarifications