I have 3 salesforce objects: - PersonAccount - MyWatches (Fields:PersonAccountId, ProductId, Status = Owner) - contains the list of watches bought by the PersonAccount - Product2 (Fields: Series) - contains product details
PersonAccount is linked to MyAccessories and the MyAccessories records contain a Product ID (lookup to the Products object). A PersonAccount can have multiple MyAccessories records.
I have used a loop to retrieve all the accessories purchased by the PersonAccount. So far so good.
%%[VAR @SubscriberKey
SET @SubscriberKey= _SubscriberKey
IF NOT EMPTY(@Subscriberkey) THEN
SET @ContactTable = RetrieveSalesforceObjects("Account","Id","Contact_ID__pc", "=", @SubscriberKey)
SET @ContactRow = ROW(@ContactTable,1)
SET @PersonAccountId = FIELD(@ContactRow,"Id")
ELSE
ENDIF]%%
%%[IF NOT EMPTY(@PersonAccountId) THEN
SET @MyWatchesTable = RetrieveSalesforceObjects("My_Watches__c","Product__c","Person_Account__c", "=", @PersonAccountId,"Status__c","=", "Owner")
SET @rowCount = RowCount(@MyWatchesTable)
IF @rowCount > 0 THEN
FOR @counter = 1 to @rowCount DO
SET @MyWatchesRow = Row(@MyWatchesTable, @counter)
SET @Product = Field(@MyWatchesRow,"Product__c") ]%%
%%=v(@counter)=%% Product: %%=v(@Product)=%%
%%[ next @counter ]%%
%%[ else ]%%
No records found
%%[ endif ]%%
%%[ENDIF]%%
As you can see from the image below it retrieves multiple product Ids but only the series associated to the last product Id.
I need to retrieve the value in the Series field stored on the Product2 object associated with the products the PersonAccount has purchased.
I tried to use a second LOOP but it only retrieves the series for the last purchased product id. Is it possible to retrieve it for all? The end goal is to then use the series retrieved to tick multiple checkboxes on the page.
%%[ VAR @ProductTable, @productCount, @productcount
SET @ProductTable = RetrieveSalesforceObjects("Product2","Series__c","Id", "=", @Product)
set @productCount = RowCount(@ProductTable)
if @productCount > 0 then
for @productcount = 1 to @productCount do
VAR @ProductRow, @Series
set @ProductRow = Row(@ProductTable, @productCount)
set @Series = Field(@ProductRow, "Series__c") ]%%
Prod %%=v(@productCount)=%% Series: %%=v(@Series)=%%
%%[ next @productCount ]%%
%%[ else ]%%
No product found
%%[ endif ]%%