anchor.diff:  			{error, 500}
   	end.
   
  +-spec prod_id(Prefix, Product) -> Result
  +	when
  +		Prefix	:: erlang_term | json,
  +		Product	:: list() | #product{},
  +		Result	:: string() | tuple().
  +%% @private
  +prod_id(json, Product) ->
  +	{"id", Product#product.name}.
  +
  +-spec prod_name(Prefix, Product) -> Result
  +	when
  +		Prefix	:: erlang_term | json,
  +		Product	:: list() | #product{},
  +		Result	:: string() | tuple().
  +%% @private
  +prod_name(erlang_term, Product) ->
  +	{_, Name} = lists:keyfind("name", 1, Product),
  +	Name;
  +prod_name(json, Prod) ->
  +	{"name", Prod#product.name}.
  +
  +-spec prod_description(Prefix, Product) -> Result
  +	when
  +		Prefix	:: erlang_term | json,
  +		Product	:: list() | #product{},
  +		Result	:: undefined | string() | tuple().
  +%% @private
  +prod_description(erlang_term, Product) ->
  +	proplists:get_value("description", Product, undefined);
  +prod_description(json, Product) ->
  +	{"description", Product#product.description}.
  +
  +-spec prod_href(Prefix, Product) -> Result
  +	when
  +		Prefix	:: erlang_term | json,
  +		Product	:: list() | #product{},
  +		Result	:: undefined | string() | tuple().
  +%% @private
  +prod_href(json, Product) ->
  +	{"href", "/product/product/" ++ Product#product.name}.
  +
  +-spec prod_isBundle(Prefix, Product) -> Result
  +	when
  +		Prefix	:: erlang_term | json,
  +		Product	:: list() | #product{},
  +		Result	:: boolean() | tuple().
  +%% @private
  +prod_isBundle(erlang_term, Product) ->
  +	case lists:keyfind("isBundle", 1, Product) of
  +		{"isBundle", "true"} -> true;
  +		_ -> false
  +	end;
  +prod_isBundle(json, Product) ->
  +	{"is_bundle", Product#product.is_bundle}.
  +
  +-spec prod_status(Prefix, Product) -> Result
  +	when
  +		Prefix	:: erlang_term | json,
  +		Product	:: list() | #product{},
  +		Result	:: string() | tuple().
  +%% @private
  +prod_status(erlang_term, Product) ->
  +	case lists:keyfind("lifecycleStatus", 1, Product) of
  +		{_, FindStatus} ->
  +			find_status(FindStatus);
  +		false ->
  +			"active"
  +	end;
  +prod_status(json, Product) ->
  +	{"status", Product#product.status}.
  +
   -spec prod_price_name(Prefix, Price) -> Result
   	when
   		Prefix	:: erlang_term | json,
  
positive.code: %%----------------------------------------------------------------------
  %%  internal functions
  %%----------------------------------------------------------------------
  -spec prod_id(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_id(json, Product) ->
  	{"id", Product#product.name}.
  
  -spec prod_name(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product		:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_name(erlang_term, Product) ->
  	{_, Name} = lists:keyfind("name", 1, Product),
  	Name;
  prod_name(json, Prod) ->
  	{"name", Prod#product.name}.
  
  -spec prod_isBundle(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: boolean() | tuple().
  %% @private
  prod_isBundle(erlang_term, Product) ->
  	case lists:keyfind("isBundle", 1, Product) of
  		{"isBundle", "true"} -> true;
  		_ -> false
  	end;
  prod_isBundle(json, Product) ->
  	{"is_bundle", Product#product.is_bundle}.
  
  -spec prod_status(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_status(erlang_term, Product) ->
  	case lists:keyfind("lifecycleStatus", 1, Product) of
  		{_, FindStatus} ->
  			find_status(FindStatus);
  		false ->
  			"active"
  	end;
  prod_status(json, Product) ->
  	{"status", Product#product.status}.
  
  -spec prod_description(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: undefined | string() | tuple().
  %% @private
  prod_description(erlang_term, Product) ->
  	proplists:get_value("description", Product, undefined);
  prod_description(json, Product) ->
  	{"description", Product#product.description}.
  
  -spec prod_href(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Product	:: list() | #product{},
  		Result	:: undefined | string() | tuple().
  %% @private
  prod_href(json, Product) ->
  	{"href", "/product/product/" ++ Product#product.name}.
  
  -spec prod_offering_price(Prefix, Product) -> Result
  	when
  		Prefix	:: erlang_term | json,
  
negative.code: 	Name;
  prod_price_name(json, Price) ->
  	{"name", Price#price.name}.
  
  -spec prod_price_description(Prefix, Price) -> Result
  	when
  		Prefix	:: erlang_term | json,
  		Price		:: list() | #price{},
  		Result	:: undefined | string() | tuple().
  %% @private
  prod_price_description(erlang_term, Price) ->
  	proplists:get_value("description", Price, undefined);
  prod_price_description(json, Price) ->
  	{"description", Price#price.description}.
  
  -spec prod_price_vf(Prefix, Price) -> Result
  	when
  