【发布时间】:2021-12-29 06:06:07
【问题描述】:
如何使用连接在 magento.catalog_product_entity_decimal 上添加 special_price。
attribute_id 77 = 价格,我还需要特价 attribute_id 78
【问题讨论】:
如何使用连接在 magento.catalog_product_entity_decimal 上添加 special_price。
attribute_id 77 = 价格,我还需要特价 attribute_id 78
【问题讨论】:
您可以使用子查询来获取结果这是您可以用来获取数据的 SQL 查询 -
SELECT catprod.entity_id,catprod.value,catprod.value_id,catprod.store_id,catprod.attribute_id,(SELECT value FROM
catalog_product_entity_decimalWHERE attribute_id=78 AND entity_id=catprod.entity_id) AS special_price FROMcatalog_product_entity_decimalAS catprod在哪里attribute_id= 77;
上面的链接显示的是一行产品的价格和特价数据,没有特价的将是NULL。
【讨论】:
使用 Magento/Catalog/Model/ProductFactory 加载产品,并从模型中获取价格信息
$specialPrice = $this->productFactory()->create()->load($id)->getPriceInfo()->getPrice('special_price');
【讨论】:
使用 \Magento\Catalog\Model\ProductRepository 类获取产品的特价。
public $productRepository;
public function __construct(
...
\Magento\Catalog\Model\ProductRepository $productRepository,
...
) {
$this->productRepository = $productRepository;
}
按产品 ID 获取特价
public function getSpecialPriceById($productId) {
$product = $this->productRepository->getById($productId);
return $product->getSpecialPrice();
}
按产品 SKU 获取特价
public function getSpecialPriceBySKU($productSKU) {
$product = $this->productRepository->getById($productSKU);
return $product->getSpecialPrice();
}
【讨论】: