简而言之,我只想在结账时将目录价格规则应用于产品。我知道 Magento 1 的一些来源提供了很多解决方案,一个例子是这个博客https://jutesenthil.wordpress.com/2015/09/28/get-catalog-rule-by-product-id-in- magento/但试图在 Magento 2 中获得相同的结果似乎不起作用。我的代码片段如下。
/**
* @param $productId
* @param $customerGroupId
* @return mixed
*/
public function getCatalogPriceRuleFromProduct($productId, $customerGroupId)
{
/**
* @var \Magento\Catalog\Model\ProductFactory
*/
$product = $this->_objectManager->create('\Magento\Catalog\Model\ProductFactory')->create()->load($productId);
$storeId = $product->getStoreId();
$store = $this->_store_manager->getStore($storeId);
$websiteId = $store->getWebsiteId();
/**
* @var \Magento\Framework\Stdlib\DateTime\DateTime
*/
$date = $this->_objectManager->create('\Magento\Framework\Stdlib\DateTime\DateTime');
$dateTs = $date->gmtDate();
/**
* @var \Magento\CatalogRule\Model\Rule
*/
$resource = $this->_objectManager->create('\Magento\CatalogRule\Model\Rule');
// $resource = $this->_objectManager->create('\Magento\CatalogRule\Model\RuleFactory');
$rules = $resource->getRulesFromProduct($dateTs, $websiteId, $customerGroupId, $productId);
/*$rules = $resource->getCollection()
->addFieldToFilter('from_time', $dateTs)
->addFieldToFilter('to_time', $dateTs)
->addFieldToFilter('product_id', …Run Code Online (Sandbox Code Playgroud) 我还需要每天获取特定日期范围内的个人用户数量。假设一个月内(1 日 - 30 日)总共有 100 个用户,我需要像这样获得计数
{
1st - 2 users
2nd - 10 users
}
MessagesSchema.statics.totalMessagesGraph = (id, startDate, endDate, platform) => {
return Messages.aggregate([
{
$match: {
id: id,
platform: platform,
timestamp: {
$gte: new Date(startDate),
$lte: new Date(endDate)
}
}
}
])
}
Run Code Online (Sandbox Code Playgroud)
为了获得想要的结果,这里应该做什么?
预期结果:
对于该特定日期范围,每天的计数。
{
date1 - 20,
date2 - 22,
date3 - 24,
...
date30 - 12
}
Run Code Online (Sandbox Code Playgroud)
预期输出应如上所示。之后应该进行什么查询$match。如果可能,请获取样本数据集并提供输出。
我date_time在数据库中有一个类型为的字段datetime。我有一个表单,提交后需要在date_time字段中输入当前日期和时间。我该如何编写代码,以便该date_time字段随当前一起插入datetime。以下是我的代码:(我知道我不能那样打电话NOW(),但我想展示自己想要实现的目标)
$qcData = Array(
"date_time" => NOW(),
"note" => $note
);
$qcNotes = new App_Model_DbTable_QCNotes();
$qcNotes->insert($qcData);
Run Code Online (Sandbox Code Playgroud)