anchor.diff:  			{"startDate", ocs_rest:iso8601(SD)}
   	end.
   
  --spec prod_tdate(Prefix, Product) -> Result
  -	when
  -		Prefix :: erl_term | json,
  -		Product :: list() | #product{},
  +-spec prod_tdate(Product) -> Result
  +	when
  +		Product :: [tuple()] | #product{},
   		Result :: undefined | tuple().
   %% @private
  -prod_tdate(erl_term, Product) ->
  +prod_tdate(Product) when is_list(Product) ->
   	case lists:keyfind("terminationDate", 1, Product) of
   		{_, SD} ->
   			ocs_rest:iso8601(SD);
   		false ->
   			undefined
   	end;
  -prod_tdate(json, Product) ->
  +prod_tdate(#product{} = Product) ->
   	case Product#product.termination_date of
   		undefined ->
   			{"terminationDate", ""};
  
positive.code: 			{"isBundle", IsBundle}
  	end.
  
  -spec prod_status(Prefix, Product) -> Result
  	when
  		Prefix	:: erl_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_status(erl_term, Product) ->
  	case lists:keyfind("lifecycleStatus", 1, Product) of
  		{_, FindStatus} ->
  			find_status(FindStatus);
  		false ->
  			undefined
  	end;
  prod_status(json, Product) ->
  	case Product#product.status of
  		undefined ->
  			{"lifecycleStatus", ""};
  
negative.code: query_page1([H | T], Filters, Acc) ->
  	query_page1(T, Filters, [ocs_rest:filter(Filters, H) | Acc]).
  
  product_json(#product{} = Product) ->
  	ID = prod_id(Product),
  	Description = prod_description(Product),
  	Href = prod_href(Product),
  	ValidFor = prod_vf(Product),
  	IsBundle = prod_isBundle(Product),
  	Name = prod_name(Product),
  	Status = prod_status(Product),
  	StartDate = prod_sdate(Product),
  	TerminationDate = prod_tdate(Product),
  	case product_offering_price(Product) of
  		{error, StatusCode} ->
  			throw(StatusCode);
  		OfferPrice ->
  			{struct, [ID, Description, Href, StartDate,
  				TerminationDate, IsBundle, Name, Status, ValidFor,
  				OfferPrice]}
  	end.
  