Mudanças entre as edições de "Regra de negocio para cada transportadora"
Ir para navegação
Ir para pesquisar
(Criou página com 'Primeiro, você deve ter em mente que o modulo webshopapps matrix rate deve ser instalado. É ele que será usado para as regras de negocios. Todas as regras ficarao contidas nes...') |
|||
Linha 1: | Linha 1: | ||
Primeiro, você deve ter em mente que o modulo webshopapps matrix rate deve ser instalado. | Primeiro, você deve ter em mente que o modulo webshopapps matrix rate deve ser instalado. | ||
É ele que será usado para as regras de negocios. Todas as regras ficarao contidas neste plugin. | É ele que será usado para as regras de negocios. Todas as regras ficarao contidas neste plugin. | ||
1 - Criar regras proprias sem ter que adicionar campos novos na planilha | |||
Vá em: | |||
vendor/webshopapps/module-matrixrates/src/model/carrier/matrixrate.php | |||
<nowiki> | |||
// CODIGO MODIFICADO - INICIO | |||
$quantidadeTotalDeVolumes = 0; | |||
$products = $request->getAllItems(); | |||
$arr = []; | |||
$verificaSeEhFilho = true; | |||
foreach($products as $product) | |||
{ | |||
if( !$product->getHasChildren() && $verificaSeEhFilho ){ // Produto Simples que nao seja filho | |||
$quantidadeParcialDoItem = $product->getQty(); | |||
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); | |||
$product = $objectManager->create('Magento\Catalog\Model\Product')->load($product->getProductId()); | |||
$quantidadeDeVolumesItem = $product->getData('quantidade_de_volumes'); | |||
// aqui existe um campo volume no cadastro de novos produtos | |||
if( $quantidadeDeVolumesItem == null || $quantidadeDeVolumesItem == "" ) $quantidadeDeVolumesItem = 1; | |||
if( !is_nan($quantidadeDeVolumesItem) && !is_nan($quantidadeParcialDoItem) ) { | |||
$resultado = $quantidadeDeVolumesItem*$quantidadeParcialDoItem; | |||
$quantidadeTotalDeVolumes+= $resultado; | |||
} | |||
$verificaSeEhFilho = true; | |||
} | |||
if($product->getHasChildren()){ // Produtos configuraveis | |||
$quantidadeParcialDoItem = $product->getQty(); | |||
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); | |||
$product = $objectManager->create('Magento\Catalog\Model\Product')->load($product->getProductId()); | |||
$quantidadeDeVolumesItem = $product->getData('quantidade_de_volumes'); | |||
// aqui existe um campo volume no cadastro de novos produtos | |||
if( $quantidadeDeVolumesItem == null || $quantidadeDeVolumesItem == "" ) $quantidadeDeVolumesItem = 1; | |||
if( !is_nan($quantidadeDeVolumesItem) && !is_nan($quantidadeParcialDoItem) ) { | |||
$resultado = $quantidadeDeVolumesItem*$quantidadeParcialDoItem; | |||
$quantidadeTotalDeVolumes+= $resultado; | |||
} | |||
$verificaSeEhFilho = false; | |||
}else{ | |||
$verificaSeEhFilho = true; | |||
} | |||
} | |||
// $resultadoFinal = 0; | |||
// for($arr as $item){ | |||
// $resultadoFinal+= $item; | |||
// } | |||
//throw new LocalizedException(__('resultadoFinal %1', $arr[2])); | |||
if ( (strpos($rate['shipping_method'], 'JFORT') !== false) && $quantidadeTotalDeVolumes !=0) { | |||
$shippingPrice = $shippingPrice*$quantidadeTotalDeVolumes; // No caso, o shippingPrice para esta transportadora deve ser 100 | |||
} | |||
</nowiki> |
Edição das 13h50min de 16 de março de 2018
Primeiro, você deve ter em mente que o modulo webshopapps matrix rate deve ser instalado. É ele que será usado para as regras de negocios. Todas as regras ficarao contidas neste plugin.
1 - Criar regras proprias sem ter que adicionar campos novos na planilha
Vá em:
vendor/webshopapps/module-matrixrates/src/model/carrier/matrixrate.php
// CODIGO MODIFICADO - INICIO $quantidadeTotalDeVolumes = 0; $products = $request->getAllItems(); $arr = []; $verificaSeEhFilho = true; foreach($products as $product) { if( !$product->getHasChildren() && $verificaSeEhFilho ){ // Produto Simples que nao seja filho $quantidadeParcialDoItem = $product->getQty(); $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $product = $objectManager->create('Magento\Catalog\Model\Product')->load($product->getProductId()); $quantidadeDeVolumesItem = $product->getData('quantidade_de_volumes'); // aqui existe um campo volume no cadastro de novos produtos if( $quantidadeDeVolumesItem == null || $quantidadeDeVolumesItem == "" ) $quantidadeDeVolumesItem = 1; if( !is_nan($quantidadeDeVolumesItem) && !is_nan($quantidadeParcialDoItem) ) { $resultado = $quantidadeDeVolumesItem*$quantidadeParcialDoItem; $quantidadeTotalDeVolumes+= $resultado; } $verificaSeEhFilho = true; } if($product->getHasChildren()){ // Produtos configuraveis $quantidadeParcialDoItem = $product->getQty(); $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $product = $objectManager->create('Magento\Catalog\Model\Product')->load($product->getProductId()); $quantidadeDeVolumesItem = $product->getData('quantidade_de_volumes'); // aqui existe um campo volume no cadastro de novos produtos if( $quantidadeDeVolumesItem == null || $quantidadeDeVolumesItem == "" ) $quantidadeDeVolumesItem = 1; if( !is_nan($quantidadeDeVolumesItem) && !is_nan($quantidadeParcialDoItem) ) { $resultado = $quantidadeDeVolumesItem*$quantidadeParcialDoItem; $quantidadeTotalDeVolumes+= $resultado; } $verificaSeEhFilho = false; }else{ $verificaSeEhFilho = true; } } // $resultadoFinal = 0; // for($arr as $item){ // $resultadoFinal+= $item; // } //throw new LocalizedException(__('resultadoFinal %1', $arr[2])); if ( (strpos($rate['shipping_method'], 'JFORT') !== false) && $quantidadeTotalDeVolumes !=0) { $shippingPrice = $shippingPrice*$quantidadeTotalDeVolumes; // No caso, o shippingPrice para esta transportadora deve ser 100 }