2016-06-08 3 views
0

PHP 사이트에서 Google 전자 상거래를 사용하려고합니다. 나는이 참조를 사용하고 있습니다 : 나는 작업 트랜잭션 데이터를 가지고Google 전자 상거래 용 PHP 배열 사용

https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#booya

그러나 나는 정보 ItemData 부분에 대한 항목을 추출하는 방법을 모르겠습니다. 다음은

Array 
(
    [0] => Array 
     (
      [orderID] => 823 
      [items] => Array 
       (
        [0] => Array 
         (
          [itemQty] => 2 
          [orderID] => 823 
          [price_with_tax] => 30.00 
          [sku] => TOLM386DOGY 
          [title] => The Toledo 
         ) 

        [1] => Array 
         (
          [itemQty] => 1 
          [orderID] => 823 
          [price_with_tax] => 35.00 
          [sku] => BIS73R 
          [title] => The Biscuit 

         ) 
       ) 

      [shipping_with_tax] => 5.95 
      [grand_total] => 95.00 
      [currencyCode] => GBP 
     ) 

) 

는 자바 스크립트를 만드는 데 사용되는 함수입니다 : 이것은 내 배열의 예 ($ 순서)입니다. 나는 성공적으로 내 주문 정보를 얻을 첫 번째 조정했지만, 그래서 이것은 예를 들어 구글에서 제공되는 코드로이 남아있는 항목 정보를 얻기 위해 두 번째로 어려움을 겪고 오전 :

function getTransactionJs(&$order) { 
    return <<<HTML 
ga('ecommerce:addTransaction', { 
    'id': '{$order['0']['orderID']}', 
    'revenue': '{$order['0']['grand_total']}', 
    'shipping': '{$order['0']['shipping_with_tax']}', 
    'currency': '{$order['0']['currencyCode']}' 
}); 
HTML; 
} 

// Function to return the JavaScript representation of an ItemData object. 
    function getItemJs(&$transId, &$item) { 
    return <<<HTML 
ga('ecommerce:addItem', { 
    'id': '{$item['orderID']}', 
    'name': '{$item['title']}', 
    'sku': '{$item['sku']}', 
    'price': '{$item['price_with_tax']}', 
    'quantity': '{$item['itemQty']}' 
}); 
HTML; 
} 

이것은에서 다음 출력 다음 스크립트 :

<script> 
ga('require', 'ecommerce'); 

<?php 
echo getTransactionJs($order); 

foreach ($items as &$item) { 
echo getItemJs($order['0']['orderID'], $item); 
} 
?> 

ga('ecommerce:send'); 
</script> 

내 내가 두 번째 기능으로 변경하려면 어떻게해야합니까되는 질문, 잠재적 스크립트 내 아이템 정보가 분석에 추가 얻을?

+0

사실 모든 것이 좋아 보인다 - 누락 된 데이터는 무엇인가? 어떤 상품이 GA에서 구매 된 것인지 알지 못합니까? 그리고'$ trans [ 'id']'가 설정되어 있습니까? '$ trans [ 'id']'는'$ order [ '0'] [ 'orderID']'- 정확해야합니까? – Jurik

+0

안녕하세요. Jurik - 코드를 약간 수정 했으므로 업데이트했습니다. 아이템에'id'가 이미 있으므로'$ trans [ 'id']'를 사용하지 않았습니다. 문제는 'foreach'에 대한 항목이 출력되지 않는다는 것입니다 –

답변

1

$ 항목이 설정되지 않았으며 올바른 오류 알림을 받으면이 설정되지 않은 변수에 대한 알림이 표시된다고 생각합니다.

<?php 
    foreach ($order[0]['items'] as $item) { 
    echo getItemJs($item); 
    } 
?> 

을 그리고 이것은 함수의 모습 수있는 방법입니다 :이 시도

function getItemJs($item) { 
    return <<<HTML 
    ga('ecommerce:addItem', { 
     'id': '{$item['orderID']}', 
     'name': '{$item['title']}', 
     'sku': '{$item['sku']}', 
     'price': '{$item['price_with_tax']}', 
     'quantity': '{$item['itemQty']}' 
    }); 
HTML; 
} 
+0

안녕 주익 - 그 덕분에, 고마워요! 대답으로 표시하고, 단 하나의 질문입니다. 함수에'& $ transId' 인수가 있습니다. 변경해야합니까, 아니면 그대로 두어도 괜찮습니까? –

+0

숫자가 같으 므로 보관하거나 항목 배열에서 가져올 수 있습니다. 그건 너에게 달렸어. – Jurik

+0

나는 이것을 시도했지만 오류가 발생했다 :'function getItemJs (& $ item [ 'orderID'], & $ item)' –

관련 문제