USPS 1.9.1.1 Priority Mail International 부서짐


15

Priority Mail International을 선택하고 캐나다로 견적을 보내면 배송료를 선택할 수있는 옵션으로 취급 수수료가 부과됩니다.

해결 방법은 "우선 우편 국제"을 선택 해제하는 것입니다.

답변:


13

편집 : Magento는 2015 년 6 월 18 일에 SUPEE-6237 패치로이 문제를 해결했습니다.이 시점에서이 문제를 해결하기 위해 패치를 설치하는 것이 더 쉽습니다.

메서드 이름없이 요율이 $ 0.00로 표시되는 문제가있었습니다. 이 문제는 2015 년 5 월 31 일자로 USPS 요율 변화와 일치하는 것으로 보입니다.

2015 년 5 월 31 일 USPS 웹 도구는 US Postal Service API에 대한 수정 및 추가 기능을 구현할 예정입니다. 다음 변경 사항은 특히 운송 시스템에 영향을 줄 수 있습니다.

  • Priority Mail International에서 캐나다로 출발하는 오리진 우편 번호
  • 수정 된 특별 서비스
  • 수정 된 서비스 ID
  • 상품 반품 서비스에 대한 수정 된 사용 가능한 메일 클래스

우선 순위 국제 우편의 첫 번째 원인은 다음 오류를 반환합니다.

<ServiceErrors>
    <ServiceError>
        <Id>50050</Id>
        <Description>The Origin ZIP Code and the Destination Postal Code is required for Priority Mail International when mailing to Canada.</Description>
    </ServiceError>
</ServiceErrors>

이 솔루션은 파일을 복사하는 것이 었습니다 : app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.phpapp/code/local/Mage/Usa/Model/Shipping/Carrier/Usps.php

그런 다음 394 행에 다음 코드를 삽입했습니다.

if($r->getDestCountryId()=='CA'){
    $package->addChild('OriginZip', $r->getOrigPostal());
}

이것은 나를 위해 문제를 해결했습니다.

편집 : 배송 출발지에 5 자리 우편 번호를 입력 한 경우에만 작동합니다.


나는 그것이 담당자 요구 사항이라는 것을 알지 못했지만 OP는 여기에 그가 당신의 답변에 의견을 넣을 수 없다고 말한 후속 질문이 있습니다 : magento.stackexchange.com/questions/69946/…
Mike

1
참고로 Usps.php 파일을 편집 할 때 "$ package-> addChild ( 'Girth', $ girth);"뒤에 코드를 배치했습니다. 닫는 중괄호 앞에. 이것은 "else"의 국제 섹션에 있습니다.
Rob Mangiafico

+이 문제가 해결되었습니다. Magento 1.9.1
Jason McCreary

USPS 미디어 메일에 대한 도움을받을 수 있습니까-> magento.stackexchange.com/q/227667/57334
zus

2

패치 SUPEE-6237 수정 된 문제입니다. SUPEE-6237의 변경 사항은 다음과 같습니다.

app/code/core/Mage/Usa/Model/Shipping/Carrier/Abstract.php
@@ -442,6 +442,17 @@ abstract class Mage_Usa_Model_Shipping_Carrier_Abstract extends Mage_Shipping_Mo
     }

     /**
+     * Check is Canada
+     *
+     * @param string $countryId
+     * @return boolean
+     */
+    protected function _isCanada($countryId)
+    {
+        return $countryId == 'CA';
+    }
+
+    /**
      * Check whether girth is allowed for the carrier
      *
      * @param null|string $countyDest

app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.php
@@ -392,7 +392,10 @@ class Mage_Usa_Model_Shipping_Carrier_Usps
             $package->addChild('Height', $height);
             $package->addChild('Girth', $girth);

-
+            if ($this->_isCanada($r->getDestCountryId())) {
+                //only 5 chars available
+                $package->addChild('OriginZip', substr($r->getOrigPostal(), 0, 5));
+            }
             $api = 'IntlRateV2';
         }
         $request = $xml->asXML();
@@ -477,6 +480,9 @@ class Mage_Usa_Model_Shipping_Carrier_Usps
                      else {
                         if (is_object($xml->Package) && is_object($xml->Package->Service)) {
                             foreach ($xml->Package->Service as $service) {
+                                if ($service->ServiceErrors->count()) {
+                                    continue;
+                                }
                                 $serviceName = $this->_filterServiceName((string)$service->SvcDescription);
                                 $serviceCode = 'INT_' . (string)$service->attributes()->ID;
                                 $serviceCodeToActualNameMap[$serviceCode] = $serviceName;

이것이 누군가를 돕기를 바랍니다.


0

원래 게시물은 Magento v1.9에 관한 것이었지만 Magento v2와 동일한 문제가 계속 발생하는 다른 사람들을 위해 게시하고 싶습니다.

수정하려면 $api = 'IntlRateV2';파일 의 줄 바로 앞에 다음 줄을 추가해야 합니다 vendor/magento/module-usps/Model/Carrier.php.

$package->addChild('OriginZip', $r->getOrigPostal());
$package->addChild('AcceptanceDateTime', date('c'));
$package->addChild('DestinationPostalCode', $r->getDestPostal());

이 magento2 문제에 대한 풀 요청은 https://github.com/magento/magento2/pull/8041에서 확인할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.