Détail du message 60546.3

Message numéro 3 dans le sujet Tag emarketing.

  • 60546.3 en réponse à 60546.1 écrit par adx

    15/06/2012 11:58


    Franck Stauffer
    Titre : Responsable produit
    Rang : Expert
    Le plus simple est de développer un block qui est à placer dans la dernière étape du processus de commande (confirmation de paiement). Voici un exemple de code (pour la solution spreadbutton). L'ajout du bloc se fait à l'aide de la commande change.php et il faut écrire le template correspondant
    <?php
    /**
     * spreadbutton_BlockConversionAction
     * @package modules.spreadbutton.lib.blocks
     */
    class spreadbutton_BlockConversionAction extends website_BlockAction
    {
    	
    	/**
    	 * @return string[]
    	 */
    	public function getRequestModuleNames()
    	{
    		$modules = parent::getRequestModuleNames();
    		$modules[] = 'order';
    		return $modules;
    	}
    	
    	/**
    	 * @return order_persistentdocument_order
    	 */
    	protected function getCurrentOrder()
    	{
    		$orderId = $this->getRequest()->getParameter('orderId');
    		if (intval($orderId))
    		{
    			return order_persistentdocument_order::getInstanceById(intval($orderId));
    		}
    		return null;
    	}
    	
    	/**
    	 * @param f_mvc_Request $request
    	 * @param f_mvc_Response $response
    	 * @return String
    	 */
    	public function execute($request, $response)
    	{
    		if ($this->isInBackofficeEdition())
    		{
    			return website_BlockView::NONE;
    		}
    		$currentOrder = $this->getCurrentOrder();
    		if ($currentOrder)
    		{
    			$request->setAttribute('order', $currentOrder);
    			$request->setAttribute('orderoptin', spreadbutton_MarkersbService::getInstance()->getOrderOptin($currentOrder));
    			$request->setAttribute('orderstate', spreadbutton_MarkersbService::getInstance()->getOrderState($currentOrder));
    			$request->setAttribute('ordertest', spreadbutton_MarkersbService::getInstance()->getOrderTest($currentOrder));
    		}
    		return website_BlockView::SUCCESS;
    	}
    }
    
    


    et template correspondant
    <script tal:condition="order" type="text/javascript">
    //<![CDATA[
            var orderemail = "${order/getCustomer/getEmail}";
            var orderamount = ${order/getTotalAmountWithTaxAndCreditNotes} ;
            var ordername = "${order/getCustomer/getUser/getFullname}";
            var idorder = "${order/getId}";
            var orderoptin = ${orderoptin} ;
            var orderstate = ${orderstate} ;
            var ordertest = ${ordertest} ;
    //]]> 
    </script>
    
 
1359 membres
Aucun membre connecté