2013-11-12 1 views
1

У меня есть CSV, полный SKU, который мне нужно загрузить за пределами каталога Magento, чтобы внести некоторые изменения.Получить продукт за пределами каталога magento, не зная ID

До сих пор у меня есть это:

require_once('bla/bla/../../app/Mage.php'); 
umask(0); 
Mage::app(); 

$product1 = Mage::getModel('catalog/product')->load(15186); 
$productid = Mage::getModel('catalog/product')->getIdBySku('thatsku'); 
$product2->load($productid); 
var_dump($product1); 
var_dump($product2); 

В этом случае $ product1 возвращает продукт, как и ожидалось, но $ product2 возвращается bool(false). То же самое происходит, когда я пытаюсь это:

$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku); 
var_dump ($_product); 

$ продукт также возвращается как bool(false) здесь.

Любая идея о том, что происходит?

EDIT: Извините, я тупой. В базе данных не было ни одного SKU, даже если бы я мог помахать, я добавил его для тестирования ради. Этот код работает.

ответ

0

Извините, что я тупой. В базе данных не было ни одного SKU, даже если бы я мог помахать, я добавил его для тестирования ради. Этот код работает.

1

Попробуйте это,

print_r($product); 

иногда var_dump, кажется, не вызывают методы получения свойств, поэтому они показаны как нуль

+0

О, черт возьми. Мог бы помахать, я добавил его для тестирования. Хотел дважды проверить, и его там не было. Не знаю, что случилось, но это была проблема. Теперь я чувствую себя немой! Спасибо за подсказку, хотя! – pedropeixoto

+0

Всегда приветствую. Я пробовал свой код на локальном сервере. Я уже столкнулся с этой проблемой. Так что я просто попытался с print_r() .. Он работает нормально .. – Elavarasan

1

здесь я могу дать вам одно альтернативное решение это будет работать для вас

создать функцию, чтобы получить идентификатор продукта от SKU, так что было бы лучше

function getProductId($sku) 
{ 

    $write = Mage::getSingleton('core/resource')->getConnection('core_write'); 
    static $product_ids; 
    if (is_object($sku)) { 
     $sku = $sku->asArray(); 
    } 
    if (empty($product_ids)) { 
     $skus = $write->query('select sku, entity_id from `catalog_product_entity` where type_id="simple"'); 
     foreach ($skus->fetchAll() as $data) { 
      $product_ids[$data['sku']] = $data['entity_id']; 
     } 
     unset($skus); 
     unset($data); 
    } 
    return isset($product_ids[$sku]) ? $product_ids[$sku] : ''; 
} 

возвратит идентификатор продукта, а затем вы можете легко найти с ниже код

$id = getProductId('YOUR SKU GOES HERE'); 

$product = Mage::getModel('catalog/product')->load($id); 

надеюсь, что это будет уверен, что поможет вам.

+0

Спасибо за функцию, она работает действительно. Я буду использовать его в будущем точно. Моя проблема была другой, вы можете увидеть редактирование. – pedropeixoto