【问题标题】:How to get special price magento 2如何获得特价magento 2
【发布时间】:2021-12-29 06:06:07
【问题描述】:

如何使用连接在 magento.catalog_product_entity_decimal 上添加 special_price。

attribute_id 77 = 价格,我还需要特价 attribute_id 78

【问题讨论】:

    标签: mysql magento


    【解决方案1】:

    您可以使用子查询来获取结果这是您可以用来获取数据的 SQL 查询 -

    SELECT catprod.entity_id,catprod.value,catprod.value_id,catprod.store_id,catprod.attribute_id,(SELECT value FROM catalog_product_entity_decimal WHERE attribute_id=78 AND entity_id=catprod.entity_id) AS special_price FROM catalog_product_entity_decimal AS catprod在哪里attribute_id = 77;

    See Result Image

    上面的链接显示的是一行产品的价格和特价数据,没有特价的将是NULL

    【讨论】:

      【解决方案2】:

      使用 Magento/Catalog/Model/ProductFactory 加载产品,并从模型中获取价格信息

      $specialPrice = $this->productFactory()->create()->load($id)->getPriceInfo()->getPrice('special_price');

      【讨论】:

        【解决方案3】:

        使用 \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();
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-13
          • 1970-01-01
          • 1970-01-01
          • 2011-10-17
          相关资源
          最近更新 更多