获取随机SKU产品编号

时间:2013-10-09 12:55:26

标签: magento

我有以下代码:

$sku = $id; 
$_product=Mage::getModel('catalog/product')->loadByAttribute('sku',$sku); //Get Product by ID (ASIN)
$qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty(); //if in stock
$_prodcats = $_product->getCategoryIds(); 

通过指定SKU ID,我希望能够获得随机SKU产品编号并使用它

$sku = random product number from database

3 个答案:

答案 0 :(得分:3)

我使用以下脚本从集合中生成随机sku。您也可以使用它来满足您的要求。

//Geting a random sku from collection

$collection = Mage::getModel('catalog/product')->getCollection();
$collection->getSelect()->order(new Zend_Db_Expr('RAND()'));
$randomSku = $collection->setPage(1, 1)->getFirstItem()->getSKU();

在您的情况下,您的代码应该看起来像.......

$collection = Mage::getModel('catalog/product')->getCollection();
$collection->getSelect()->order(new Zend_Db_Expr('RAND()'));
$_product = $collection->setPage(1, 1)->getFirstItem()->load();

$qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty(); //if in stock
$_prodcats = $_product->getCategoryIds(); 

答案 1 :(得分:0)

这样的事应该可以正常工作;)

$collection = Mage::getResourceModel(‘catalog/product_collection’);
Mage::getModel(‘catalog/layer’)->prepareProductCollection($collection);
$collection->getSelect()->order(‘rand()’);
$collection->addStoreFilter();
$collection->setPage(1, 1);
$_product = $collection->getFirstItem();

答案 2 :(得分:0)

我在项目中使用的代码以及它对我的工作正常:

<?php 

    // get Random prdocut list
    $collection = Mage::getResourceModel(‘catalog/product_collection’);
    Mage::getModel(‘catalog/layer’)->prepareProductCollection($collection);
    $collection->getSelect()->order(‘rand()’);
    $collection->addStoreFilter();
    $numProducts = $this->getNumProducts() ? $this->getNumProducts() : 2;
    $collection->setPage(1, $numProducts);

    foreach($collection as $product){

    echo $product->getName();

    }
?>