Pregunta

El método de envío La adición está sucediendo como debería ser.Pero, la tasa de envío según el método de envío o, la tasa de envío personalizada no se agrega al pedido.

$address = $quoteObj->getShippingAddress ();
$address->setCollectShippingRates ( true )->collectShippingRates()
        ->setShippingMethod('flatrate_flatrate');
$quoteObj->collectTotals ()->save ();


Búsqueda de algunas otras preguntas Encontré una solución que agrega la tasa de envío personalizada al pedido, pero no agrega las tarifas de envío al gran total.

$shippingprice = 0.9;
$orderObj->setShippingAmount($shippingprice);
$orderObj->setBaseShippingAmount($shippingprice);

ingrese la descripción de la imagen aquí

¿Fue útil?

Solución

Intenta esto:

$shippingprice = 0.9;
$orderObj->setShippingAmount($shippingprice);
$orderObj->setBaseShippingAmount($shippingprice);
$orderObj->setGrandTotal($orderObj->getGrandTotal() + $shippingprice); //adding shipping price to grand total
$orderObj->save();

Otros consejos

¿Obtuviste esto resuelto?

Para cualquier persona que se está ejecutando en esto, debe establecer los gastos de envío en 2 lugares. En primer lugar, debe establecer el método de envío y dentro del método de envío, debe establecer su precio.Hice mi propia función SetShippingMethod como a continuación:

public function setMyShippingMethod($shippingPrice = 0)
{
$result = Mage::getModel('shipping/rate_result');
// Add carrier
$method = Mage::getModel('shipping/rate_result_method');
if ($shippingPrice > 0) {
   // use my custom shipping method but you can use another shipment method here
   $method->setCarrier('dpdelivery'); 
   $method->setMethod('dpdelivery');
   $method->setCarrierTitle('Shipping');
   $method->setMethodTitle('outside the Netherlands'); 
   $method->setPrice($shippingPrice);
   $method->setCost($shippingPrice);
} else {
   $method->setCarrier('flatrate'); 
   $method->setMethod('flatrate');
   $method->setCarrierTitle('Freeshipping');
   $method->setMethodTitle('within the Netherlands');
   $method->setPrice($shippingPrice);
   $method->setCost($shippingPrice);
}
    $result->append($method);
    return $result;
}

Luego, dentro de mi función de Create Order, agrego el envío de envío y luego llame a mi método como este:

$shippingMethod = $this->setMyShippingMethod($shippingCost);
$this->_order->setShippingAddress($shippingAddress)
  ->setShippingMethod($shippingMethod);
$this->_order->setShippingDescription('My shipping description');

Entonces, por supuesto, todavía necesito agregar los costos al pedido como se mencionó:

$this->order->setIsVirtual(0)
    ....    
    ->setShippingAmount($shippingCost)
    ->setShippingTaxAmount($shippingCostTax)

Espero que ayude a nadie.

Pruebe esto

$order->setShippingAmount($shippingprice);
$order->setBaseShippingAmount($shippingprice);
$order->save();

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top