我放弃尝试通过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>';?>
答案 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知识的更多研究,您应该能够了解系统的工作原理并查看所需的数据。