...
Code Block | ||||
---|---|---|---|---|
| ||||
$logger.log($customer.orders.size()) #set( $hasOrdered = false ) #set( $sevenDaysAgo = $dateManager.currentTime()) $sevenDaysAgo.add("day", \-7) $logger.log($sevenDaysAgo.format("MM/dd/yyyy")) #foreach( $order in $customer.orders ) $logger.log($order.orderId) $logger.log($order.paymentDate.time) #if($order.paymentDate.time > $sevenDaysAgo.timeInMillis) $logger.log('order was within 8 days') #set( $hasOrdered = true ) #else $logger.log('order was NOT within 8 days') #end #end #if($hasOrdered) #set( $result = 'DidOrder' ) #else #set( $result = 'DidNotOrder' ) #end |
...
Discussion
...
- Line 1: A log statement to see if this customer has placed any orders. A good thing to know, yes?
- Line 2: create a flag variable and set it to false.
- Line 4: I need a variable to check the payment dates against. So initialize a date variable. At first, it points to 'now'.
- Line 5: move the date variable back 7 days
- Line 14: If the payment date was within the last seven days, set the flag variable to true. (Could probably break out of the for-loop here...)
- Line 20: If they have ordered, direct them to the 'DidOrder' step, otherwise, send them to the 'DidNotOrder' step.
Code Block | ||||
---|---|---|---|---|
| ||||
#if($customer.hasPurchasedInLastDays(8))
#set( $result = 'DidOrder' )
#else
#set( $result = 'DidNotOrder' )
#end |
...
Discussion
...
Info |
---|
The code block above makes liberal use of the $logger.log() function. This will print out any velocity object. This is an invaluable tool for developing logic blocks. It won't hurt to keep it in place for production runs. |
...