product-recommendations.tpl 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. {if !empty($lastProduct)}
  2. <div class="product-added-panel panel card">
  3. <div class="panel-body card-body">
  4. <span class="text-muted">
  5. <i class="far fa-check"></i>&nbsp;{lang key="recommendations.productAdded"}
  6. </span>
  7. <div>
  8. <span class="product-name">&nbsp;{$lastProduct.product.name}</span>
  9. <span class="product-group">&nbsp;{$lastProduct.product.productGroup.name}</span>
  10. </div>
  11. <div>
  12. <span class="product-price">
  13. {if !$lastProduct.pricing->isFree()}
  14. &nbsp;{$lastProduct.pricing->price()->toFull()}
  15. {if $lastProduct.pricing->setup() && $lastProduct.pricing->setup()->toNumeric() > 0}
  16. + {$lastProduct.pricing->setup()->toFull()} {lang key="ordersetupfee"}
  17. {/if}
  18. {/if}
  19. </span>
  20. <span class="product-cycle">&nbsp;{lang key='orderpaymentterm'|cat:$lastProduct.pricing->cycle()}</span>
  21. </div>
  22. </div>
  23. </div>
  24. {/if}
  25. <div class="product-recommendations-container">
  26. <div class="product-recommendations">
  27. {if !in_array($templatefile, ['viewcart', 'checkout', 'complete'])}
  28. <p>{lang key="recommendations.explain.product"}</p>
  29. {elseif !$recommendStyle && $templatefile != 'complete'}
  30. <p>{lang key="recommendations.explain.generic"}</p>
  31. {elseif $templatefile == 'complete'}
  32. <div>
  33. <h4 class="float-left pull-left">{lang key="recommendations.title.generic"}</h4>
  34. <h4 class="text-muted float-right pull-right">
  35. <small>
  36. {if !empty($productRecommendations.order)}
  37. {lang key="recommendations.title.yourOrder"}
  38. {else}
  39. {lang key="recommendations.title.yourProducts"}
  40. {/if}
  41. </small>
  42. </h4>
  43. <div class="clearfix"></div>
  44. </div>
  45. {/if}
  46. {if $productRecommendations}
  47. {foreach $productRecommendations as $categoryKey => $categoryRecommendations}
  48. {if $templatefile == 'complete' && $categoryKey == 'own' && !empty($productRecommendations.own) && !empty($productRecommendations.order)}
  49. <h4 class="text-muted float-right pull-right">
  50. <small>{lang key="recommendations.title.yourProducts"}</small>
  51. </h4>
  52. <div class="clearfix"></div>
  53. {/if}
  54. {foreach $categoryRecommendations as $categoryRecommendation}
  55. {if $recommendStyle && $templatefile != 'complete'}
  56. <p>{lang key="recommendations.explain.ordered" productName=$categoryRecommendation.name}</p>
  57. {/if}
  58. {foreach $categoryRecommendation.recommendations as $recommendation}
  59. {assign var="price" value=$recommendation->pricing()->first()}
  60. <div class="product-recommendation" data-color="{$recommendation.color}" style="border-color:{$recommendation->color};">
  61. <div class="header{if !$recommendation.shortDescription} header-static{/if}">
  62. <div class="cta">
  63. <div class="price" style="color:{$recommendation->color};">
  64. <span {if !$recommendation->isFree()}class="w-hidden hidden"{/if}>{lang key="orderfree"}</span>
  65. {if !$recommendation->isFree() && $price}
  66. <span class="breakdown-price">
  67. {if $price->isOneTime()}
  68. {$price->price()->toFull()}
  69. {elseif $price->isRecurring()}
  70. {$price->breakdownPrice()}
  71. {/if}
  72. </span>
  73. {/if}
  74. {if !$recommendation->isFree() && !is_null($price->setup()) && $price->setup()->toNumeric() > 0}
  75. <span class="setup-fee"><small>{$price->setup()->toFull()}&nbsp;{lang key="ordersetupfee"}</small></span>
  76. {/if}
  77. </div>
  78. <a type="button" class="btn btn-sm btn-add" href="{$recommendation->getRoutePath()}" role="button" style="background-color:{$recommendation->color};">
  79. <span class="text">
  80. {lang key="addtocart"}
  81. </span>
  82. <span class="arrow" style="background-color:{$recommendation->color};">
  83. <i class="fas fa-chevron-right"></i>
  84. </span>
  85. </a>
  86. </div>
  87. <div class="expander" style="color:{$recommendation->color};">
  88. {if $recommendation.shortDescription}
  89. <i class="fas fa-chevron-right rotate" data-toggle="tooltip" data-placement="right" title="{lang key="recommendations.learnMore"}"></i>
  90. {else}
  91. <i class="fas fa-square fa-xs"></i>
  92. {/if}
  93. </div>
  94. <div class="content">
  95. <div class="headline truncate">{$recommendation.productGroup.name} - {$recommendation.name}</div>
  96. <div class="tagline truncate">
  97. {if empty($recommendation.tagline)}
  98. {lang key="recommendations.taglinePlaceholder"}
  99. {else}
  100. {$recommendation.tagline}
  101. {/if}
  102. </div>
  103. </div>
  104. </div>
  105. <div class="body clearfix">
  106. <p>{$recommendation.shortDescription}</p>
  107. </div>
  108. </div>
  109. {/foreach}
  110. {/foreach}
  111. {/foreach}
  112. {/if}
  113. </div>
  114. </div>