在magento 2中获取基于产品的送货方式

时间:2018-10-25 14:41:24

标签: php magento2

我们的商店根据所选产品有不同的运输方式。 在产品视图上,我想基于给定产品的可用运输方式显示其他信息。

当前,我尝试使用Address::requestShippingRatescollectShippingRates,但是此方法需要有效的报价,并且创建新报价只是列出可用的送货方式会有些麻烦。

有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

现在我想出了这个解决方案,只用必要的信息建立自己的费率请求。

$quoteItem = $this->_quoteItemFactory->create();
$quoteItem->setQuote($quote);
$quoteItem->setProduct($product);

/** @var $request \Magento\Quote\Model\Quote\Address\RateRequest */
$request = $this->_rateRequestFactory->create();

$request->setAllItems([$quoteItem]);
$request->setDestCountryId($this->getCurrentCountry());
$request->setStoreId($quote->getStoreId());
$request->setWebsiteId($this->_storeManager->getWebsite()->getId());
$request->setBaseCurrency($this->_storeManager->getStore()->getBaseCurrency());
$request->setPackageCurrency($request->getBaseCurrency());

/** @var \Magento\Shipping\Model\Rate\Result $result */
$result = $this->_rateCollector->create()->collectRates($request)->getResult();
$rates = $result->getAllRates();

如果有人有更好的方法,请随时纠正我-我愿意提出建议