Product page logic extracted to builder