If you have $0 items and don't want the customer to enter a price, here are the instructions for 4.1.7:
In Admin->Languages, add the following text topic:
Variable: txt_contact_us_for_pricing
Value:
PHP Code:
<a href="help.php?section=contactus&mode=update&subject=Requesting prices for - {{product}}">Contact us</a> for pricing.
In product.tpl, replace:
PHP Code:
<input type="text" size="7" name="price" />
with:
PHP Code:
{$lng.txt_contact_us_for_pricing|substitute:"product":$product.product}
In products.tpl, replace:
PHP Code:
<font class="ProductPrice">{$lng.lbl_enter_your_price}</font>
with:
PHP Code:
<font class="ProductPrice">{$lng.txt_contact_us_for_pricing|substitute:"product":$products[product].product}</font>
In contactus.tpl, replace:
PHP Code:
<input type="text" id="subject" name="subject" size="32" maxlength="128" value="{$userinfo.subject}" />
with:
PHP Code:
<input type="text" id="subject" name="subject" size="32" maxlength="128" value="{$userinfo.subject} {if $smarty.get.subject}{$smarty.get.subject}{/if}" />
Disabling Add to Cart and not displaying $0 in the Wish List is left as an optional exercise for the reader.