【问题标题】:How to get a list of skus in magento如何在magento中获取skus列表
【发布时间】:2016-07-11 14:10:01
【问题描述】:

如何在没有使用 magento 循环的情况下获取 skus 列表。 示例:我在我的条件下使用下面的代码。

$productsCollection = Mage::getModel('catalog/product')->getCollection()
    ->addAttributeToSelect('sku');

现在我想结果为array('A001','A002'....) 等。 我不想迭代(循环)产品集合。

请提出建议。

【问题讨论】:

    标签: magento magento-1.9 product


    【解决方案1】:

    如果您想以这种方式检索集合,则必须遍历集合并检索 sku。

    $skus = array();
    foreach ($productsCollection as $product) {
        $skus[] = $product->getSku();
    }
    

    如果您不想这样,您可以只使用一个简单的查询,因为 SKU 保存在 catalog_product_entity 表中。

    $conn = Mage::getSingleton('core/resource')->getConnection('core_write');
    $table = 'catalog_product_entity';
    $q = "SELECT sku FROM {$table}";
    $list = $conn->fetchOneFieldAll($q, 'sku');
    

    【讨论】:

    • 如果你可以访问 MySql SELECT sku FROM catalog_product_entity /*where type_id = 'simple'
    【解决方案2】:

    检索您应该使用->getConnection('core_read') 而不是->getConnection('core_write')读取 连接。整个代码在下面哪个运行得更快。

    $resource = Mage::getSingleton('core/resource');
    $readConnection = $resource->getConnection('core_read');
    $skus = $readConnection->fetchCol('SELECT sku FROM `catalog_product_entity`');
    foreach ($skus as $sku) {
        echo $sku;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多