我需要从数据库中获取一个要发货的已订购物理项目的列表。列表需要包括名称、sku、数量、价格、重量和尺寸。
如果不使用magento自己的框架组件,我们怎么能做到这一点呢。
问题是,如果一个产品包含选项,它会按不同的产品类型(简单、捆绑、可配置等)和不同的产品ID在表中多次出现。
$items = array();
$sql = (
"SELECT oi.name, oi.sku, oi.qty_ordered, oi.price, oi.weight
FROM {$db->prefix}sales_flat_order_item oi
WHERE oi.order_id = ". (int)$order_entity_id .";"
);
if ($result = $mysqli->query($sql)) {
while ($row = $result->fetch_assoc()) {
$items[] = [
'name' => $row['name'],
'sku' => $row['sku'],
'quantity' => (float)$row['qty_ordered'],
'unit_price' => (float)$row['price'],
'unit_weight' => (float)$row['weight'],
//'unit_length' => (float)$row['length'], // Not present?
//'unit_width' => (float)$row['width'], // Not present?
//'unit_height' => (float)$row['height'], // Not present?
];
}
$result->close();
}
如果我通过过滤器 AND product_type = 'simple'
只得到简单的产品,不包含价格。
2条答案
按热度按时间knsnq2tg1#
如果一个可配置产品有多个价格相同的简单产品,那么价格将只保存在可配置产品中。所以你不应该使用“简单产品”过滤器。尝试下面的查询,
这为您提供了简单和可配置产品的详细信息,您可以使用条件(if/else)对内容进行归档。
zyfwsgd62#
试试这个:
请注意,对于magento,sku是一个标识符,而在sales\u平面表中,这个属性用于将捆绑包或可配置产品链接到其简单属性。父产品(可配置或捆绑)包含查询中所需的所有信息。