I would try to utilize the dynamic section/content functionality with CPQ quote templates. For example - Add a checkbox formula to your quote object that gets set to true when the quote record is for San Diego. Then use this field as the Conditional Print Field on a Quote Template Section. This means this section/content would be displayed on your quote pdf only if the field is set to True. Then you could do the same for Toronto. This dynamic display functionality is a huge benefit of CPQ quote templates and appears to be a perfect use case for what you're looking to achieve.
CPQ 見積テンプレートで動的セクション/コンテンツ機能を利用してみます。例 - 見積レコードがサンディエゴ向けの場合に true に設定されるチェックボックス式を見積オブジェクトに追加します。次に、このフィールドを見積テンプレート セクションの条件付き印刷フィールドとして使用します。これは、フィールドが True に設定されている場合にのみ、このセクション/コンテンツが見積 PDF に表示されることを意味します。そうすれば、トロントでも同じことができます。この動的な表示機能は CPQ 見積テンプレートの大きな利点であり、達成しようとしているものに最適な使用例と思われます。
If each profile should use only one template, you could take advantage of the "Quote Template Id" field on the quote. You'd have to get this ID to fill dynamically via a price rule or some other process. This of course won't work if each profile should have access to multiple templates though.
Have you thought about taking advantage of the conditional options available for the Quote Section records? By conditionally displaying certain sections based on formula fields we have on our Quote object, we've been able to get our quote down to one record, and just swap out the sections based on the quote values.
各プロファイルでテンプレートを 1 つだけ使用する必要がある場合は、見積の「見積テンプレート ID」フィールドを利用できます。価格ルールまたはその他のプロセスを介して動的に入力するには、この ID を取得する必要があります。ただし、各プロファイルが複数のテンプレートにアクセスできる必要がある場合、これはもちろん機能しません。
見積セクションのレコードに使用できる条件付きオプションを利用することを考えたことはありますか? Quote オブジェクトにある数式フィールドに基づいて特定のセクションを条件付きで表示することで、見積を 1 つのレコードにまとめ、見積値に基づいてセクションを交換するだけで済みます。