1 of 1 people found this helpful
Lots of potential solutions.
If you are comfortable with Velocity, then it may make sense to do that. I'd map this out more though.
Another option is as you describe, which may be easier to setup the first time so you get used to Marketo.
There is another option entirely using Snippets and Dynamic Content. Also some setup but could allow you to swap products more easily.
2 of 2 people found this helpful
Nothing is going to be easier to maintain than Velocity. It's writing the code upfront that is going to be your challenge, if you don't have/aren't fluent in VTL. Once the token logic is done, it stays done. You just update another token that holds your product catalog.
If you have more than 4 products per category (you have to have at least 4 or "send 3 more" doesn't make sense, right?) and you need to send the person 3 product suggestions other than the one(s) they've purchased, in some order or randomly... trying to precompute all the permutations and create separate Smart Campaigns and content is, frankly, madness.
Thank you both for your responses.
Sanford, Our product catalog is in a database along with order information. It's kept up to date through a connection to Magento, our e-commerce platform.
Would it make sense to create on token that handles the catalog lookups and then separate tokens to pass values to the first token. In other words, should I create a collection of methods/functions which would be part of every email? For instance a method for "get related products" that I could pass a SKU number from a second token.
I have never used Velocity. It looks like method/functions are referred to a Macros. Is this correct?
Would it make sense to create on token that handles the catalog lookups and then separate tokens to pass values to the first token.
Create one token that holds the catalog itself, as a Java HashMap literal (it'll look just like a JSON Object, I'm just being precise).
Another token can hold a Velocimacro library, if you find that level of encapsulation is necessary (I don't know if your logic is complex enough to require separate macros).
Then a token only executes the macros/code, using data + functions + settings from other tokens.