Magento文件:粘贴和读取此查询结果的位置

时间:2017-06-05 12:21:44

标签: magento

我放弃尝试通过SQL获取magento上的所有产品属性的值,因为它获得了连接的噩梦,但是,我不熟悉文件夹结构,我不知道在下面粘贴此查询的位置。任何人都可以给我一个关于去哪儿的手抄?如果可能,我希望有更多的值,如描述,元关键字等

<?php
require_once 'app/Mage.php';
umask(0);
Mage::app('default');

$collection = Mage::getModel('catalog/product')->getCollection();

echo '<table border="1"> ';
echo '<tr>';
echo "<th>entity_id <th />";
echo "<th>store_id <th />";
echo "<th>name<th />";
echo "<th>sku <th />";
echo "<th>price<th />";
echo "<th>status<th />";
echo '</tr>';

foreach ($collection as $product_all) {
  $sku = $product_all['sku'];
  $product_id =  $product_all['entity_id'];
  // call product model and create product object
  $product    = Mage::getModel('catalog/product')->load($product_id);

  $pk_sku = $product['sku'];
  $pk_name = $product['name'];
  $store_id = $product->getStoreIds();
  $pk_price = $product['price'];
  $status = $product->getStatus();

  echo '<tr>';
  echo "<td>".$product_id."<td />";
  echo "<td>".$store_id[0]."<td />";
  echo "<td>".$pk_name."<td />";
  echo "<td>".$pk_sku."<td />";
  echo "<td>".$pk_price."<td />";
  echo "<td>".$status."<td />";
  echo '</tr>'; 
 }
echo '</table>';?>

1 个答案:

答案 0 :(得分:0)

如果您想查看产品属性数据,这些是您需要关注的数据库中的表。

catalog_product_entity:存储所有基础产品数据

eav_attribute:列出所有attribute_codes和属性类型

catalog_product_entity_{varchar/int/datetime/..}:包含基于eav_attribute attribute_id和catalog_product_entity entity_id的相关属性值。

因此,如果您想使用SQL查询来获取某个属性,可以使用这样的语句来查看为特定产品(或所有产品)存储的所有varchar属性:

SELECT cpe.entity_id, cpe.sku,  attrib.attribute_id, attrib.value
FROM catalog_product_entity AS cpe
LEFT JOIN (
    SELECT entity_id, attribute_id, VALUE
    FROM catalog_product_entity_varchar AS attrib
) AS attrib ON cpe.entity_id = attrib.entity_id
WHERE cpe.sku = '{your sku here}';

通过这些表格以及对eav系统和一点sql知识的更多研究,您应该能够了解系统的工作原理并查看所需的数据。