我正在开发一个模块,以接收在我的Magento商店销售的公司的佣金。它已经在工作,但需要添加一个我没有得到的新功能。如果任何公司的申请大于"X",我需要在佣金中添加一个额外的值我以一种不起作用的方式做了:
foreach ($order->getAllVisibleItems() as $key => $item)
{
$product = Mage::getModel('catalog/product')->load($item->getProductId());
$price = $item->getPrice();
$valor_comissao = (int)$product->getAttributeText('comissao_vendedor')/100;
$comissao_valor2= $price-($price*$valor_comissao);
$qty = $item->getQtyOrdered();
$valor_pedido= ($price*$qty);
if($valor_pedido > 150) {
$comissao_valor= ($comissao_valor2*$qty-17);
} else {
$comissao_valor=($comissao_valor2*$qty-2);
}
$comissoes[] = array (
'Razao' => 'Produto '.$item->getName().' id '.$item->getProductId().' x '.$item->getQtyToInvoice().' sku: '. $item->getSku(),
'Login' => $product->getAttributeText('login'),
'ValorFixo' => $comissao_valor
);
}
那么只有当产品从 150.00 美元起时,才会添加价值,并且如果您有两个成本为 100.00 美元的选择,则不会添加该值。如果品牌的整个订单超过 150.00 美元,我需要添加值。
我尝试遵循的逻辑如下:
- 取订单的总价值 按
- 标签过滤,即按品牌过滤订单的总价值
- 如果商品是超过"x"的品牌,并且她尚未收到附加价值,请添加运费
想知道是否有人经历过类似的事情,可以帮助我。
感激。
取订单的总价值
您可以通过以下方式检索订单总额:
$order->getGrandTotal()
按标签过滤,即按品牌过滤订单的总价值
我建议使用Magento的资源模型对象并在其上构建查询。
这篇文章展示了如何做到这一点: https://stackoverflow.com/a/5139391/3784145
注意
Mage::getModel('catalog/product')->getCollection()
可以代替
Mage::getResourceModel('sales/order_collection')
关于模型和资源之间区别的说明:
https://magento.stackexchange.com/a/4579
如果商品是超过"x"的品牌,并且她尚未收到附加价值,请添加运费
我真的不知道你的意思:如果产品是超过"x"的品牌
但我认为这需要另一个集合查询。