문제

배송 방법은 그것이 있어야합니다.그러나 운송 방법에 따라 배송 비율 또는 주문 배송 비율이 주문에 추가되지 않습니다.

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


다른 질문을 통해 검색하는 다른 질문을 통해 주문에 맞춤 운송 속도를 추가하는 솔루션을 발견했으나 그랜트 전체에 배송비를 추가하지 않습니다.

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

여기에 이미지 설명

도움이 되었습니까?

해결책

시도 :

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

다른 팁

이 해결 되었습니까?

이 작업을 수행하는 사람의 경우, 2 곳에서 운송 비용을 설정해야합니다. 우선 운송 방법을 설정하고 배송 방법 내에서 가격을 설정해야합니다.나는 아래와 같이 자신의 setShippingMethod 함수를 만들었습니다 :

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;
}
.

그런 다음 내 createOrder 함수 내에서 shippingAddress를 추가 한 다음이 방법을 다음과 같이 호출합니다.

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

다음 물론 나는 언급 된 바와 같이 주문에 비용을 추가해야합니다 :

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

아무도 도움이되기를 바랍니다.

를 사용해보십시오

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top