I'm running Expresso Store 2.0.6, Zoo Visitor 1.3.30, and EE 2.7.2, and having an issue with Expresso Store checkout not displaying the Zoo Visitor details of the logged in user.

I've mapped all Zoo Visitor fields in Expresso Store > Settings > Order Fields, but when a logged in user goes to the Checkout, their details are not being shown in the fields. I'm just using the built in {field:xxx) tag (ie {field:shipping_address1} ) to show the field.

If I map these fields to the Member fields, then they DO show up. The issue with this is that Zoo Visitor doesn't save back to the normal Member custom fields (either in the CP or using the update Front-End tags) ... so I can't use them either.

Anyone else replicate this issue?


  • What are your custom field names? I believe they only sync to native fields if you name them member_field_name. Commented Nov 24, 2013 at 22:41
  • They are basically what Zoo Visitor creates ... which is prefixed with mbr_ ... so mbr_shipping_address1 ... I would have thought that the mapping would mean it wouldn't matter what the field name was? I could be wrong though. Commented Nov 24, 2013 at 23:01
  • Ah that's what I'm thinking of. What about your native custom member fields? Are they prefix-less? Commented Nov 25, 2013 at 7:56
  • Thanks Jason. I misunderstood how this was implemented! Nico has set me straight in one of the answers below. Thanks for taking the time to respond! Commented Nov 25, 2013 at 11:51

2 Answers 2


Visitor channel fields can be mapped to native EE member fields when you prefix them with "member_" and the field_name has to match http://ee-zoo.com/docs/visitor/tutorial/working-with-native-member-fields.html

  • Brilliant. I've completely missed this in the docs. I think that this might be the solution for me! Commented Nov 25, 2013 at 11:49
  • So my comment was right? Andrew said his fields were mbr_ by default. Why doesn't Zoo prefix them as member_ by default? Commented Nov 25, 2013 at 15:25

I have answered this question asked previously

I have recently completed a build using Store 2 and Zoo Visitor, I ran into this issue but came up with a working solution.

    error_handling="inline" error_delimiters='<div>|</div>' }
    {if no_items}{redirect="cart"}{/if}

    {!-- Avoid issues with parse order --}
    {exp:ifelse parse="inward"}
        {if logged_in}
            {exp:zoo_visitor:details {global:disable_categories}}

    <h2>Billing Information</h2>

    <label for="billing_first_name">First Name</label>
    <input type="text" name="billing_first_name" value="{if billing_first_name}{billing_first_name}{if:elseif

    <label for="billing_last_name">Last Name</label>
    <input type="text" name="billing_last_name" value="{if billing_last_name}{billing_last_name}{if:elseif

    <label for="billing_address1">Street address</label>
    <input type="text" name="billing_address1" value="{if billing_address1}{billing_address1}{if:elseif

    <label for="billing_city">Suburb</label>
    <input type="text" name="billing_city" value="{if billing_city}{billing_city}{if:elseif

    <label for="billing_state">State</label>
    <select name="billing_state">
        <option value="ACT" {if (billing_state AND billing_state == "ACT") OR visitor:billing_state == "ACT"}selected{/if}>Australian
Capital Territory</option>
        <option value="NSW" {if (billing_state AND billing_state == "NSW") OR visitor:billing_state == "NSW"}selected{/if}>New South
        <option value="NT"  {if (billing_state AND billing_state == "NT" ) OR visitor:billing_state == "NT" }selected{/if}>Northern
        <option value="QLD" {if (billing_state AND billing_state == "QLD") OR visitor:billing_state ==
        <option value="SA"  {if (billing_state AND billing_state == "SA" ) OR visitor:billing_state == "SA" }selected{/if}>South
        <option value="VIC" {if (billing_state AND billing_state == "VIC") OR visitor:billing_state ==
        <option value="WA"  {if (billing_state AND billing_state == "WA" ) OR visitor:billing_state == "WA" }selected{/if}>Western

    <label for="billing_postcode">Postcode</label>
    <input type="text" name="billing_postcode" value="{if billing_postcode}{billing_postcode}{if:elseif

    <input type="hidden" name="billing_country" value="AU">

    <label for="billing_phone">Contact Number</label>
    <input type="tel" name="billing_phone" value="{if billing_phone}{billing_phone}{if:elseif

    {if logged_out}
        <label for="order_email">Email Address</label>
        <input type="email" name="order_email" value="{order_email}">

    {!-- Avoid issues with parse order --}
    {exp:ifelse parse="inward"}
        {if logged_in}


Presentation HTML and Shipping Details removed for brevity.

  • Nice one Jeremy! Love that there are always work arounds with EE. I'm gonna try using the member_ prefix that Nico and Jason mentioned for the moment, but this is a great work around. Thanks! Commented Nov 25, 2013 at 11:50

Not the answer you're looking for? Browse other questions tagged or ask your own question.