Получение текущего списка продуктов для учетной записи в Salesforce

За последний год я часто работал над различными типами интеграции между нашим приложением и Salesforce. Одна из вещей, которые я обнаружил, что я должен сделать, – это составить список всех продуктов, которые клиент имеет в своем аккаунте. Насколько я могу судить, я должен сделать это так:

  1. Получите все возможности для учетной записи
  2. Получите все продукты ( OpportunityLineItem ) для этих возможностей
  3. «Добавьте» их вместе, чтобы получить окончательный список продуктов (текущие продукты)

Наша команда по продажам создает новую Opportunity для каждого события продаж для учетной записи (будь то новый продукт, взлом или понижение), так что теоретически у вас могут быть такие возможности:

  1. Добавить продукт A
  2. Продукт Upsell A для продукта C
  3. Добавить продукт B
  4. Удалить продукт C

Конечным результатом (фактическим текущим списком продуктов) будет просто Продукт B. Возможности просто представляют исторические данные для всех продаж, которые были сделаны для этой Account .

Я разработчик. Я не знаю, является ли это лучшим способом для процесса продаж – я оставляю это им. Тем не менее, моя работа – найти список всех текущих продуктов, чтобы я мог синхронизировать это с нашей биллинговой системой автоматически. Текущий способ (описанный выше) кажется неуклюжим и не очень полезным. Он также может стать очень сложным, и его будет сложно масштабировать, не внося изменений в код. Например, если Sales должен был добавить новый продукт, мне придется обновить код для обработки этих дополнений.

Есть ли способ получить список текущих продуктов для Account не зацикливая каждую Opportunity ?

Я надеюсь, что в этом есть смысл. Псевдокод будет работать нормально, или вы можете указать мне некоторую документацию, которую я, возможно, пропустил.

Спасибо за ваше время, ребята!

    Я не думаю, что есть какой-то другой способ, чем перебирать возможности для получения списка текущих продуктов.

    Возможно, вы захотите посмотреть на создание настраиваемого объекта для хранения отношения к продукту или создать собственный прейскурант учетной записи, в котором есть продукты, относящиеся только к этой учетной записи.