本文整理汇总了PHP中Magento\Framework\Object::getShippingMethod方法的典型用法代码示例。如果您正苦于以下问题:PHP Object::getShippingMethod方法的具体用法?PHP Object::getShippingMethod怎么用?PHP Object::getShippingMethod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Framework\Object
的用法示例。
在下文中一共展示了Object::getShippingMethod方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _formShipmentRequest
/**
* Form array with appropriate structure for shipment request
*
* @param \Magento\Framework\Object $request
* @return array
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @SuppressWarnings(PHPMD.NPathComplexity)
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
protected function _formShipmentRequest(\Magento\Framework\Object $request)
{
if ($request->getReferenceData()) {
$referenceData = $request->getReferenceData() . $request->getPackageId();
} else {
$referenceData = 'Order #' . $request->getOrderShipment()->getOrder()->getIncrementId() . ' P' . $request->getPackageId();
}
$packageParams = $request->getPackageParams();
$customsValue = $packageParams->getCustomsValue();
$height = $packageParams->getHeight();
$width = $packageParams->getWidth();
$length = $packageParams->getLength();
$weightUnits = $packageParams->getWeightUnits() == \Zend_Measure_Weight::POUND ? 'LB' : 'KG';
$dimensionsUnits = $packageParams->getDimensionUnits() == \Zend_Measure_Length::INCH ? 'IN' : 'CM';
$unitPrice = 0;
$itemsQty = 0;
$itemsDesc = [];
$countriesOfManufacture = [];
$productIds = [];
$packageItems = $request->getPackageItems();
foreach ($packageItems as $itemShipment) {
$item = new \Magento\Framework\Object();
$item->setData($itemShipment);
$unitPrice += $item->getPrice();
$itemsQty += $item->getQty();
$itemsDesc[] = $item->getName();
$productIds[] = $item->getProductId();
}
// get countries of manufacture
$productCollection = $this->_productCollectionFactory->create()->addStoreFilter($request->getStoreId())->addFieldToFilter('entity_id', ['in' => $productIds])->addAttributeToSelect('country_of_manufacture');
foreach ($productCollection as $product) {
$countriesOfManufacture[] = $product->getCountryOfManufacture();
}
$paymentType = $request->getIsReturn() ? 'RECIPIENT' : 'SENDER';
$requestClient = ['RequestedShipment' => ['ShipTimestamp' => time(), 'DropoffType' => $this->getConfigData('dropoff'), 'PackagingType' => $request->getPackagingType(), 'ServiceType' => $request->getShippingMethod(), 'Shipper' => ['Contact' => ['PersonName' => $request->getShipperContactPersonName(), 'CompanyName' => $request->getShipperContactCompanyName(), 'PhoneNumber' => $request->getShipperContactPhoneNumber()], 'Address' => ['StreetLines' => [$request->getShipperAddressStreet()], 'City' => $request->getShipperAddressCity(), 'StateOrProvinceCode' => $request->getShipperAddressStateOrProvinceCode(), 'PostalCode' => $request->getShipperAddressPostalCode(), 'CountryCode' => $request->getShipperAddressCountryCode()]], 'Recipient' => ['Contact' => ['PersonName' => $request->getRecipientContactPersonName(), 'CompanyName' => $request->getRecipientContactCompanyName(), 'PhoneNumber' => $request->getRecipientContactPhoneNumber()], 'Address' => ['StreetLines' => [$request->getRecipientAddressStreet()], 'City' => $request->getRecipientAddressCity(), 'StateOrProvinceCode' => $request->getRecipientAddressStateOrProvinceCode(), 'PostalCode' => $request->getRecipientAddressPostalCode(), 'CountryCode' => $request->getRecipientAddressCountryCode(), 'Residential' => (bool) $this->getConfigData('residence_delivery')]], 'ShippingChargesPayment' => ['PaymentType' => $paymentType, 'Payor' => ['AccountNumber' => $this->getConfigData('account'), 'CountryCode' => $this->_scopeConfig->getValue(\Magento\Sales\Model\Order\Shipment::XML_PATH_STORE_COUNTRY_ID, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $request->getStoreId())]], 'LabelSpecification' => ['LabelFormatType' => 'COMMON2D', 'ImageType' => 'PNG', 'LabelStockType' => 'PAPER_8.5X11_TOP_HALF_LABEL'], 'RateRequestTypes' => ['ACCOUNT'], 'PackageCount' => 1, 'RequestedPackageLineItems' => ['SequenceNumber' => '1', 'Weight' => ['Units' => $weightUnits, 'Value' => $request->getPackageWeight()], 'CustomerReferences' => ['CustomerReferenceType' => 'CUSTOMER_REFERENCE', 'Value' => $referenceData], 'SpecialServicesRequested' => ['SpecialServiceTypes' => 'SIGNATURE_OPTION', 'SignatureOptionDetail' => ['OptionType' => $packageParams->getDeliveryConfirmation()]]]]];
// for international shipping
if ($request->getShipperAddressCountryCode() != $request->getRecipientAddressCountryCode()) {
$requestClient['RequestedShipment']['CustomsClearanceDetail'] = ['CustomsValue' => ['Currency' => $request->getBaseCurrencyCode(), 'Amount' => $customsValue], 'DutiesPayment' => ['PaymentType' => $paymentType, 'Payor' => ['AccountNumber' => $this->getConfigData('account'), 'CountryCode' => $this->_scopeConfig->getValue(\Magento\Sales\Model\Order\Shipment::XML_PATH_STORE_COUNTRY_ID, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $request->getStoreId())]], 'Commodities' => ['Weight' => ['Units' => $weightUnits, 'Value' => $request->getPackageWeight()], 'NumberOfPieces' => 1, 'CountryOfManufacture' => implode(',', array_unique($countriesOfManufacture)), 'Description' => implode(', ', $itemsDesc), 'Quantity' => ceil($itemsQty), 'QuantityUnits' => 'pcs', 'UnitPrice' => ['Currency' => $request->getBaseCurrencyCode(), 'Amount' => $unitPrice], 'CustomsValue' => ['Currency' => $request->getBaseCurrencyCode(), 'Amount' => $customsValue]]];
}
if ($request->getMasterTrackingId()) {
$requestClient['RequestedShipment']['MasterTrackingId'] = $request->getMasterTrackingId();
}
// set dimensions
if ($length || $width || $height) {
$requestClient['RequestedShipment']['RequestedPackageLineItems']['Dimensions'] = [];
$dimenssions =& $requestClient['RequestedShipment']['RequestedPackageLineItems']['Dimensions'];
$dimenssions['Length'] = $length;
$dimenssions['Width'] = $width;
$dimenssions['Height'] = $height;
$dimenssions['Units'] = $dimensionsUnits;
}
return $this->_getAuthDetails() + $requestClient;
}
示例2: _formIntlShipmentRequest
/**
* Form XML for international shipment request
* As integration guide it is important to follow appropriate sequence for tags e.g.: <FromLastName /> must be
* after <FromFirstName />
*
* @param \Magento\Framework\Object $request
* @return string
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @SuppressWarnings(PHPMD.NPathComplexity)
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
protected function _formIntlShipmentRequest(\Magento\Framework\Object $request)
{
$packageParams = $request->getPackageParams();
$height = $packageParams->getHeight();
$width = $packageParams->getWidth();
$length = $packageParams->getLength();
$girth = $packageParams->getGirth();
$packageWeight = $request->getPackageWeight();
if ($packageParams->getWeightUnits() != \Zend_Measure_Weight::POUND) {
$packageWeight = $this->_carrierHelper->convertMeasureWeight($request->getPackageWeight(), $packageParams->getWeightUnits(), \Zend_Measure_Weight::POUND);
}
if ($packageParams->getDimensionUnits() != \Zend_Measure_Length::INCH) {
$length = round($this->_carrierHelper->convertMeasureDimension($packageParams->getLength(), $packageParams->getDimensionUnits(), \Zend_Measure_Length::INCH));
$width = round($this->_carrierHelper->convertMeasureDimension($packageParams->getWidth(), $packageParams->getDimensionUnits(), \Zend_Measure_Length::INCH));
$height = round($this->_carrierHelper->convertMeasureDimension($packageParams->getHeight(), $packageParams->getDimensionUnits(), \Zend_Measure_Length::INCH));
}
if ($packageParams->getGirthDimensionUnits() != \Zend_Measure_Length::INCH) {
$girth = round($this->_carrierHelper->convertMeasureDimension($packageParams->getGirth(), $packageParams->getGirthDimensionUnits(), \Zend_Measure_Length::INCH));
}
$container = $request->getPackagingType();
switch ($container) {
case 'VARIABLE':
$container = 'VARIABLE';
break;
case 'FLAT RATE ENVELOPE':
$container = 'FLATRATEENV';
break;
case 'FLAT RATE BOX':
$container = 'FLATRATEBOX';
break;
case 'RECTANGULAR':
$container = 'RECTANGULAR';
break;
case 'NONRECTANGULAR':
$container = 'NONRECTANGULAR';
break;
default:
$container = 'VARIABLE';
}
$shippingMethod = $request->getShippingMethod();
list($fromZip5, $fromZip4) = $this->_parseZip($request->getShipperAddressPostalCode());
// the wrap node needs for remove xml declaration above
$xmlWrap = $this->_xmlElFactory->create(['data' => '<?xml version = "1.0" encoding = "UTF-8"?><wrap/>']);
$method = '';
$service = $this->getCode('service_to_code', $shippingMethod);
if ($service == 'Priority') {
$method = 'Priority';
$rootNode = 'PriorityMailIntlRequest';
$xml = $xmlWrap->addChild($rootNode);
} else {
if ($service == 'First Class') {
$method = 'FirstClass';
$rootNode = 'FirstClassMailIntlRequest';
$xml = $xmlWrap->addChild($rootNode);
} else {
$method = 'Express';
$rootNode = 'ExpressMailIntlRequest';
$xml = $xmlWrap->addChild($rootNode);
}
}
$xml->addAttribute('USERID', $this->getConfigData('userid'));
$xml->addAttribute('PASSWORD', $this->getConfigData('password'));
$xml->addChild('Option');
$xml->addChild('Revision', self::DEFAULT_REVISION);
$xml->addChild('ImageParameters');
$xml->addChild('FromFirstName', $request->getShipperContactPersonFirstName());
$xml->addChild('FromLastName', $request->getShipperContactPersonLastName());
$xml->addChild('FromFirm', $request->getShipperContactCompanyName());
$xml->addChild('FromAddress1', $request->getShipperAddressStreet2());
$xml->addChild('FromAddress2', $request->getShipperAddressStreet1());
$xml->addChild('FromCity', $request->getShipperAddressCity());
$xml->addChild('FromState', $request->getShipperAddressStateOrProvinceCode());
$xml->addChild('FromZip5', $fromZip5);
$xml->addChild('FromZip4', $fromZip4);
$xml->addChild('FromPhone', $request->getShipperContactPhoneNumber());
if ($method != 'FirstClass') {
if ($request->getReferenceData()) {
$referenceData = $request->getReferenceData() . ' P' . $request->getPackageId();
} else {
$referenceData = $request->getOrderShipment()->getOrder()->getIncrementId() . ' P' . $request->getPackageId();
}
$xml->addChild('FromCustomsReference', 'Order #' . $referenceData);
}
$xml->addChild('ToFirstName', $request->getRecipientContactPersonFirstName());
$xml->addChild('ToLastName', $request->getRecipientContactPersonLastName());
$xml->addChild('ToFirm', $request->getRecipientContactCompanyName());
$xml->addChild('ToAddress1', $request->getRecipientAddressStreet1());
$xml->addChild('ToAddress2', $request->getRecipientAddressStreet2());
$xml->addChild('ToCity', $request->getRecipientAddressCity());
//.........这里部分代码省略.........
示例3: _formShipmentRequest
//.........这里部分代码省略.........
$shipToPart->addChild('AttentionName', $request->getRecipientContactPersonName());
$shipToPart->addChild('CompanyName', $request->getRecipientContactCompanyName() ? $request->getRecipientContactCompanyName() : 'N/A');
$shipToPart->addChild('PhoneNumber', $request->getRecipientContactPhoneNumber());
$addressPart = $shipToPart->addChild('Address');
$addressPart->addChild('AddressLine1', $request->getRecipientAddressStreet1());
$addressPart->addChild('AddressLine2', $request->getRecipientAddressStreet2());
$addressPart->addChild('City', $request->getRecipientAddressCity());
$addressPart->addChild('CountryCode', $request->getRecipientAddressCountryCode());
$addressPart->addChild('PostalCode', $request->getRecipientAddressPostalCode());
if ($request->getRecipientAddressStateOrProvinceCode()) {
$addressPart->addChild('StateProvinceCode', $request->getRecipientAddressRegionCode());
}
if ($this->getConfigData('dest_type') == 'RES') {
$addressPart->addChild('ResidentialAddress');
}
if ($request->getIsReturn()) {
$shipFromPart = $shipmentPart->addChild('ShipFrom');
$shipFromPart->addChild('AttentionName', $request->getShipperContactPersonName());
$shipFromPart->addChild('CompanyName', $request->getShipperContactCompanyName() ? $request->getShipperContactCompanyName() : $request->getShipperContactPersonName());
$shipFromAddress = $shipFromPart->addChild('Address');
$shipFromAddress->addChild('AddressLine1', $request->getShipperAddressStreet1());
$shipFromAddress->addChild('AddressLine2', $request->getShipperAddressStreet2());
$shipFromAddress->addChild('City', $request->getShipperAddressCity());
$shipFromAddress->addChild('CountryCode', $request->getShipperAddressCountryCode());
$shipFromAddress->addChild('PostalCode', $request->getShipperAddressPostalCode());
if ($request->getShipperAddressStateOrProvinceCode()) {
$shipFromAddress->addChild('StateProvinceCode', $request->getShipperAddressStateOrProvinceCode());
}
$addressPart = $shipToPart->addChild('Address');
$addressPart->addChild('AddressLine1', $request->getShipperAddressStreet1());
$addressPart->addChild('AddressLine2', $request->getShipperAddressStreet2());
$addressPart->addChild('City', $request->getShipperAddressCity());
$addressPart->addChild('CountryCode', $request->getShipperAddressCountryCode());
$addressPart->addChild('PostalCode', $request->getShipperAddressPostalCode());
if ($request->getShipperAddressStateOrProvinceCode()) {
$addressPart->addChild('StateProvinceCode', $request->getShipperAddressStateOrProvinceCode());
}
if ($this->getConfigData('dest_type') == 'RES') {
$addressPart->addChild('ResidentialAddress');
}
}
$servicePart = $shipmentPart->addChild('Service');
$servicePart->addChild('Code', $request->getShippingMethod());
$packagePart = $shipmentPart->addChild('Package');
$packagePart->addChild('Description', substr(implode(' ', $itemsDesc), 0, 35));
//empirical
$packagePart->addChild('PackagingType')->addChild('Code', $request->getPackagingType());
$packageWeight = $packagePart->addChild('PackageWeight');
$packageWeight->addChild('Weight', $request->getPackageWeight());
$packageWeight->addChild('UnitOfMeasurement')->addChild('Code', $weightUnits);
// set dimensions
if ($length || $width || $height) {
$packageDimensions = $packagePart->addChild('Dimensions');
$packageDimensions->addChild('UnitOfMeasurement')->addChild('Code', $dimensionsUnits);
$packageDimensions->addChild('Length', $length);
$packageDimensions->addChild('Width', $width);
$packageDimensions->addChild('Height', $height);
}
// ups support reference number only for domestic service
if ($this->_isUSCountry($request->getRecipientAddressCountryCode()) && $this->_isUSCountry($request->getShipperAddressCountryCode())) {
if ($request->getReferenceData()) {
$referenceData = $request->getReferenceData() . $request->getPackageId();
} else {
$referenceData = 'Order #' . $request->getOrderShipment()->getOrder()->getIncrementId() . ' P' . $request->getPackageId();
}
$referencePart = $packagePart->addChild('ReferenceNumber');
$referencePart->addChild('Code', '02');
$referencePart->addChild('Value', $referenceData);
}
$deliveryConfirmation = $packageParams->getDeliveryConfirmation();
if ($deliveryConfirmation) {
/** @var $serviceOptionsNode Element */
$serviceOptionsNode = null;
switch ($this->_getDeliveryConfirmationLevel($request->getRecipientAddressCountryCode())) {
case self::DELIVERY_CONFIRMATION_PACKAGE:
$serviceOptionsNode = $packagePart->addChild('PackageServiceOptions');
break;
case self::DELIVERY_CONFIRMATION_SHIPMENT:
$serviceOptionsNode = $shipmentPart->addChild('ShipmentServiceOptions');
break;
default:
break;
}
if (!is_null($serviceOptionsNode)) {
$serviceOptionsNode->addChild('DeliveryConfirmation')->addChild('DCISType', $packageParams->getDeliveryConfirmation());
}
}
$shipmentPart->addChild('PaymentInformation')->addChild('Prepaid')->addChild('BillShipper')->addChild('AccountNumber', $this->getConfigData('shipper_number'));
if ($request->getPackagingType() != $this->configHelper->getCode('container', 'ULE') && $request->getShipperAddressCountryCode() == self::USA_COUNTRY_ID && ($request->getRecipientAddressCountryCode() == 'CA' || $request->getRecipientAddressCountryCode() == 'PR')) {
$invoiceLineTotalPart = $shipmentPart->addChild('InvoiceLineTotal');
$invoiceLineTotalPart->addChild('CurrencyCode', $request->getBaseCurrencyCode());
$invoiceLineTotalPart->addChild('MonetaryValue', ceil($packageParams->getCustomsValue()));
}
$labelPart = $xmlRequest->addChild('LabelSpecification');
$labelPart->addChild('LabelPrintMethod')->addChild('Code', 'GIF');
$labelPart->addChild('LabelImageFormat')->addChild('Code', 'GIF');
$this->setXMLAccessRequest();
$xmlRequest = $this->_xmlAccessRequest . $xmlRequest->asXml();
return $xmlRequest;
}