새 배송 방법을 만들고 있는데 배송 요금을 확인하려면 새 열을 추가해야합니다. 데이터는 사용자 정의 운송 방법 설정 (예 : 분석법 설명)에서 가져옵니다. 또는 고객이 정보를 추가 할 수있는 일부 입력 필드 (데이터는 따옴표로 묶고 나중에 순서대로 저장 될 수 있음)
아마도 가장 쉬운 부분은 다음을 사용하여 템플릿을 구현하는 것입니다.
Magento_Checkout/web/template/shipping.html
그냥 이것 만 있으면됩니다
<div data-bind="text: method.description"></div>
문제는 사용자 정의 데이터를 추가하는 방법을 알 수 없다는 것입니다. 이것을 추가하는 것만으로는 충분하지 않습니다.
public function collectRates(RateRequest $request)
{
if (!$this->isActive()) return false;
$method = $this->rateMethodFactory->create();
$method->setData('carrier', $this->getCarrierCode());
$method->setData('carrier_title', $this->getConfigData('title'));
$method->setData('method_title', $this->getConfigData('title'));
$method->setData('method', $this->getCarrierCode());
$method->setPrice($this->_price);
$method->setData('cost', $this->_price);
// custom
$method->setData('description', $this->getConfigData('description'));
$result = $this->rateResultFactory->create();
$result->append($method);
return $result;
}
HTML 데이터는 js rates ()에서 가져옵니다. API에서 데이터를 가져옵니다.
<route url="/V1/carts/:cartId/shipping-methods" method="GET">
<service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="getList"/>
<resources>
<resource ref="Magento_Cart::manage" />
</resources>
</route>
그 후 무언가 실제로 수집되는 동안 많은 단계가 있습니다. 나는 찾았다
마 젠토 \ Quote \ Model \ Cart \ ShippingMethodConverter modelToDataObject ()
가장 유망한 것처럼 보였지만 속성을 추가하려고하면 아무 일도 일어나지 않습니다.
내 질문은 실제로 배송료에 새로운 데이터를 추가하는 방법이 있는지 여부입니다. M1에서는 가능했습니다. M2가 불가능하다면 미쳤을 것입니다.
이것이 가능한 이유는 여러 가지가 있습니다. 예를 들어 여러 상점 드롭 다운 또는 이와 유사한 항목을 사용하여 상점 메소드에서 픽업을 원할 경우.