{if !empty($product_types) && !empty($type_id)}
{$product_features = $product.features} {$feature_type=0}
[`Product type`]
{shopHelper::getIcon($product.type.icon)} {$product.type.name|escape}  {if $type_id != $product.type_id} → {shopHelper::getIcon($product_types[$type_id]['icon'])} {$product_types[$type_id]['name']}{/if} [`Change type`]
{foreach $features as $code => $feature} {if strpos($code,'.') == false}
{if $feature.selectable} {if $feature.multiple} {foreach $feature.values as $value_id => $value}
{/foreach} {if empty($smarty.capture) || empty($smarty.capture['feature-value-multiple-template-js'])}
{/if} {else}{* $feature.multiple*}
{/if} {else}
{*$feature.selectable*} {if (strpos($feature.type,'2d') === 0) || (strpos($feature.type,'3d') === 0)} {$type = substr($feature.type,3)} {if strpos($type,'dimension') === 0} {$units = shopDimension::getUnits($type)} {$d=intval($feature.type)} {$feature_unit = null} {if !$feature_unit && isset($product_features[$code][$d-1])} {$feature_unit=$product_features[$code][$d-1]->unit} {/if} {for $i=0;$i<$d;$i++} {$code_="`$code`.`$i`"} {if !$feature_unit && isset($product_features[$code][$i])} {$feature_unit=$product_features[$code][$i]->unit} {/if} {if $i}×{/if} {/for} {else} {for $i=0;$i {/for} {/if} {elseif strpos($feature.type,'dimension') === 0} {$units = shopDimension::getUnits($feature.type)} {elseif strpos($feature.type,'range') === 0} {$units = shopDimension::getUnits($feature.type)} {if $units} {/if} {elseif strpos($feature.type,'text') === 0} {elseif strpos($feature.type,'color') === 0} # {elseif strpos($feature.type,'boolean') === 0} {if isset($product_features[$code])} {$value = $product_features[$code]->value} {else} {$value = false} {/if}
{elseif strpos($feature.type,'divider') === 0} {else} {/if}
{/if}
{/if} {foreachelse} [`Product features undefined`] {/foreach} {foreach $product_features as $code => $value} {if empty($features[$code])}
{$code}
{$value}
{/if} {/foreach} {* new feature templates namespace = product[features][{%=code}] *}
{literal} {/literal}
{* value templates *} {literal} {% o.feature.input = o.feature.input +'][value'; %} {% include (o.feature.value_template, {feature: o.feature}); %} {/literal}
#
{$dimension = shopDimension::getInstance()} {$dimensions = $dimension->getList()} {foreach $dimensions as $code=>$unit} {$units = shopDimension::getUnits($code)} {if $units} {/if} {/foreach} {foreach $dimensions as $code=>$unit} {$units = shopDimension::getUnits($code)} {if $units} {/if} {/foreach} {include file="../../includes/featuresValuesTypes.html" base="/product/`$product.id`/edit/features/feature/type" class="js-action" link=true inline}
{*

{var_export($product_features,true)|escape}

{var_export($changed_features,true)|escape}

{var_export($features,true)|escape}

*} {foreach $smarty.capture as $name => $template} {if strpos($name,'template-js')} {/if} {/foreach} {else if empty($product_types)}

[`To edit product custom features, add at least one product type on the Settings → Product types & features screen.`]

{else}

[`Assign this product to a particular product type to be able to edit product custom features.`]

[`Change type`]
{/if}