Php 在MAGENTO上按制造商或品牌获取订单价格

Php 在MAGENTO上按制造商或品牌获取订单价格,php,magento,Php,Magento,我正在开发一个模块,以接收在我的Magento商店销售的公司的佣金。它已经开始工作了,但是需要添加一个我没有得到的新特性。 如果任何公司的申请大于“X”,我需要在佣金中增加额外的价值 我这样做的方式不起作用: foreach ($order->getAllVisibleItems() as $key => $item) { $product = Mage::getModel('catalog/product')->load($item->getProductId(

我正在开发一个模块,以接收在我的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美元,我需要增加价值

我试图遵循的逻辑如下:

  • 获取订单的总价值
  • 按标签过滤,即按品牌过滤订单的总价值
  • 如果该产品是一个超过“x”的品牌,但她尚未收到附加值,则添加运费
我想知道是否有人经历过类似的事情,可以帮助我

谢谢

获取订单的总价值

您可以通过以下方式检索订单总额:

$order->getGrandTotal()
按标签过滤,即按品牌过滤订单的总价值

我建议使用Magento的资源模型对象并在其上构建查询

这篇文章展示了如何做到这一点:

注意

Mage::getModel('catalog/product')->getCollection() 
可以用来代替

Mage::getResourceModel('sales/order_collection')
关于模型和资源之间差异的说明:

如果该产品是一个超过“x”的品牌,但她尚未收到附加值,则添加运费

我真的不知道你是什么意思:如果产品的品牌超过了“x”

但我认为这需要另一个收集查询