2012-06-20 2 views
0

В пикселе отслеживания требуются две переменные, которые необходимо размещать на странице категории, информации о продукте, тележке и странице подтверждения.magento tracking pixel

Мне удалось получить список Prod и Prod, однако, вторые два причиняют мне проблемы.

Я могу отследить ску в тележке, однако продукты являются конфигурируемыми продуктами, поэтому они дублируют sku на выходе. Код, который я использую, приведен ниже:

<?php 
// $items = Mage::getModel('checkout/cart')->getQuote()->getAllItems(); 
$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();foreach($items as $item) { echo ''.$item->getSku().'&nbsp;';} 
?> 

Как изменить это, чтобы отобразить только один настраиваемый SKU?

Второй элемент - это название категории, в которой существует продукт. У кого-нибудь есть идеи по этому поводу? Я пробовал несколько вариантов, но они либо сломали страницу, либо ничего не вернули.

Любая помощь будет оценена по достоинству. Если бы кто-то мог также дать мне примеры того, как они будут работать на странице подтверждения, это было бы здорово.

Благодарим за помощь.

ответ

1

Проверка на видимость продукции (простые продукты, прикрепленные к конфигурируемому не будет видна):

$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems(); 
foreach($items as $item) { 
    if ($item->getProduct()->isVisibleInSiteVisibility()) { 
     echo ''.$item->getSku().'&nbsp;'; 
    } 
} 

Что касается названия категории, продукт может появиться в нескольких категориях, так я не уверен, как вы хотите чтобы справиться с этим. Кроме того, существует опасение, что вы начинаете дублировать код в нескольких файлах шаблонов. Вам нужно будет переместить все это в блок.

Во всяком случае, чтобы получить имена категорий, что продукт относится к здесь является, по меньшей мере один способ сделать это ...

$categoryCollection = $item->getProduct()->getCategoryCollection() 
          ->addAttributeToSelect('name'); 

    foreach($categoryCollection as $category) { 
     echo $category->getData('name') . "<br/>"; 
    } 
+0

Отлично, работал большой. Спасибо! – user1464853

+0

Нет проблем - обязательно отметьте текст как правильно :) –

Смежные вопросы