Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在magento的成功页面中动态集成JS代码_Javascript_Php_Magento_Zend Framework - Fatal编程技术网

Javascript 如何在magento的成功页面中动态集成JS代码

Javascript 如何在magento的成功页面中动态集成JS代码,javascript,php,magento,zend-framework,Javascript,Php,Magento,Zend Framework,我知道success.phtml是我应该放我想要执行的代码的文件,但我从CJ收到的这个文件不是html,而是php类 问题很简单:我想知道在收到订单后如何将此文件集成到success.phtml中 多谢各位 class CommissionJunction extends Mage_Core_Helper_Data { /** * Get SKU, quantity, price and discount amount for each product in a given

我知道success.phtml是我应该放我想要执行的代码的文件,但我从CJ收到的这个文件不是html,而是php类

问题很简单:我想知道在收到订单后如何将此文件集成到success.phtml中

多谢各位

class CommissionJunction extends Mage_Core_Helper_Data
{

    /**
     * Get SKU, quantity, price and discount amount for each product in a given order
     * @param object $order
     * @return array
     */
    private function _getOrderProductsList($order) {
        $orderItems = $order->getAllItems();
        $purchasedSkus = array();
        $count_orderItems = count($orderItems);
        for($i = 0; $i < $count_orderItems; $i++) {
            $purchasedSkus[$i] = array(
              'ITEM' => $orderItems[$i]['sku'],
                'QTY' => number_format($orderItems[$i]['qty_ordered'],0), // no decimals
                'AMT' => number_format($orderItems[$i]['price'],2) // 2 decimal places
                'DCNT' => number_format(abs($orderItems[$i]['discount_amount']),2) */
            );
        }
        return $purchasedSkus;
    }

    /**
     * Get the Universal Data (JSON) Object for Commission Junction.
     * This object contains the order details passed on to Commission Junction for reporting purposes
     * on the Checkout Success / Order Confirmation page.
     * Notes:
     *  - CID, TYPE AND CURRENCY are hard coded
     * @param string $orderId
     * @return JSON object Universal Data Object for Commission Junction $json_masterTmsUdp
     */
    public function getCommissionJunctionUdo($orderId) {
        $order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
        $udo = array();
        $udo['CID'] = 'XXXX';
        $udo['TYPE'] = 'XXXX';
        $udo['CURRENCY'] = 'USD';
        $udo['OID'] = $orderId;
        $udo['DISCOUNT'] = number_format(abs($order->discount_amount),2);

        $order_coupon_code = $order->coupon_code;
        if(!is_null($order_coupon_code) && !empty($order_coupon_code)) {
            $udo['COUPON'] = $order_coupon_code;
        }

        $udo['PRODUCTLIST'] = self::_getOrderProductsList($order);       

        if(Mage::getModel('core/cookie')->get('aff_commissionjunction') == 'cjafflx') {
            $udo['FIRECJ'] = "TRUE";
        }
        else {
            $udo['FIRECJ'] = "FALSE";
        }

        $masterTmsUdo['CJ'] = $udo;
        $json_masterTmsUdo = json_encode($masterTmsUdo);

        return $json_masterTmsUdo;

    }



}
class CommissionJunction扩展了Mage_Core_Helper_数据
{
/**
*获取给定订单中每个产品的SKU、数量、价格和折扣金额
*@param对象$order
*@return数组
*/
私有函数\u getOrderProductsList($order){
$orderItems=$order->getAllItems();
$purchasedSkus=array();
$count_orderItems=count($orderItems);
对于($i=0;$i<$count\u orderItems;$i++){
$purchasedSkus[$i]=阵列(
'ITEM'=>$orderItems[$i]['sku'],
“数量”=>number\u格式($orderItems[$i]['QTY\u ordered'],0),//无小数
'AMT'=>number_格式($orderItems[$i]['price'],2)//2位小数
“DCNT”=>number\u格式(abs($orderItems[$i]['折扣金额]),2)*/
);
}
返回$purchasedSkus;
}
/**
*获取用于连接的通用数据(JSON)对象。
*此对象包含传递给Commission Junction用于报告的订单详细信息
*在“签出成功/订单确认”页面上。
*注:
*-CID、类型和货币为硬编码
*@param string$orderId
*@return JSON object Commission Junction$JSON_masterTmsUdp的通用数据对象
*/
公共函数getCommissionJunctionUdo($orderId){
$order=Mage::getModel('sales/order')->loadByIncrementId($orderId);
$udo=array();
$udo['CID']='XXXX';
$udo['TYPE']='XXXX';
$udo[“货币”]=“美元”;
$udo['OID']=$orderId;
$udo['折扣]]=编号格式(abs($order->折扣金额),2);
$order\u优惠券\u code=$order->优惠券\u code;
如果(!为空($order\u优惠券代码)&&!为空($order\u优惠券代码)){
$udo['优惠券]=$order\U优惠券\U代码;
}
$udo['PRODUCTLIST']=self::_getOrderProductsList($order);
if(Mage::getModel('core/cookie')->get('aff_commissionjunction')=='cjafflx'){
$udo['FIRECJ']=“真”;
}
否则{
$udo['FIRECJ']=“假”;
}
$masterTmsUdo['CJ']=$udo;
$json_masterTmsUdo=json_encode($masterTmsUdo);
返回$json_masterTmsUdo;
}
}
JS文件模板

<script> var MasterTmsUdo = { 'CJ' : { 'CID': '123', 'TYPE': '123', 'DISCOUNT' : '5.00', 'OID': 'SAMPLE_OID', 'CURRENCY' : 'USD', 'COUPON' : 'SAVE20', 'FIRECJ' : 'xxxx', PRODUCTLIST : [ { 'ITEM' : 'ABC', 'AMT' : '1.00', 'QTY' : '3' }, { 'ITEM' : 'ABC', 'AMT' : '5.00', 'QTY' : '1' } ] } }; </script>
var MasterTmsUdo={'CJ':{'CID':'123','TYPE':'123','贴现':'5.00','OID':'SAMPLE_-OID','CURRENCY':'USD','优惠券':'SAVE20','FIRECJ':'xxxx',产品列表:[{'ITEM':'ABC','AMT':'1.00','QTY':'3'},{'ITEM':'ABC','AMT':'5.00','QTY':'1'};

这似乎是一个解决问题的糟糕方法,但从我的推断,他们希望你在
成功的顶端做这样的事情。phtml

<?php require_once "path/to/commissionjunction.php" ?>
<script>var MasterTmsUdo = <?php echo CommissionJunction::getCommissionJunctionUdo($this->getOrderId()); ?></script>

我不明白这与JavaScript有什么关系——正如你所说,这是PHP代码。等等,我将编辑。CJ给了我生成JS代码的PHP代码,他们也向我提供了JS的外观(见JS模板),问题是我如何在suces.phtml(head)上集成PHP生成JS代码从magento.where是放置php文件的最佳位置?magento的结构如此复杂:)我意识到他们的意思是该文件是一个magento助手类,并更新了我的答案。那是他们提供给你的唯一文件吗?他们给了你任何目录结构吗?不,他们没有给我任何结构,你能告诉我应该把它放在哪里吗?因为这就是他们给你的全部,你可以把它放在
lib
目录中,然后看我的第一个例子。更好的方法是正确设置模块,但我希望CommissionJunction能够做到这一点……还要注意,在您提供的文件中有一些错误:需要打开

<script>var MasterTmsUdo = <?php echo Mage::helper('commissionjunction')->getCommissionJunctionUdo($this->getOrderId()); ?></script>