###############################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
###############################################################################

########################################
#Uncomment the following line to inhibit all external rate checks
#shipment.doratecheck=false
########################################
#Uncomment the following line to inhibit rate external rate checks for usps
#shipment.doratecheck.uspsRateInquire=false
#You can inhibit any of the external rate checks by substituting uspsRateInquire
#with the serviceName
########################################

############################################
# General Configuration
############################################
shipment.default.weight.uom=WT_lb
shipment.default.dimension.uom=LEN_in
shipment.default.weight.value=1

shipment.default.cost_actual_over_estimated_percent_allowed=10

############################################
# UPS XPCI Configuration
############################################

# UPS configuration indicator
shipment.ups.shipping=N

# UPS Connection URL & timeout in seconds
shipment.ups.connect.url=https://wwwcie.ups.com/ups.app/xml
shipment.ups.connect.timeout=60

# UPS Shipper Number
shipment.ups.shipper.number=12345E

# UPS Bill Shipper Account Number
shipment.ups.bill.shipper.account.number=12345E

# UPS XPCI Access License Number
shipment.ups.access.license.number=TEST262223144CAT

# UPS XPCI Access User ID
shipment.ups.access.user.id=REG111111

# UPS XPCI Access Password
shipment.ups.access.password=REG111111

# Setting to save files needed for UPS certification
shipment.ups.save.certification.info=true
shipment.ups.save.certification.path=/ofbiz/work/ofbiz/upscert

# Shipper Default Pickup Type
# 01 - Daily Pickup
# 03 - Customer Counter
# 06 - One Time Pickup
# 07 - On Call Air Pickup
# 11 - Suggested Retail Rates (UPS Store)
# 19 - Letter Center
# 20 - Air Service Center
shipment.ups.shipper.pickup.type=06

# Customer Classification
# Valid Values are
# 01 - Wholesale
# 03 - Occasional
# 04 - Retail
# The default value is "01"(wholesale) when Pick Type code is "01"(daily pickup)
# The default value is "03"(occasional) when Pick Type code is "06"(One Time Pickup), 
# "07"(On Call Air Pickup), "19"(Letter Center), "20"(Air Service Center)
# The default value is "04"(Retail) when Pick Type code is "03"(Customer Counter)
shipment.ups.customerclassification=03

# Estimate split into packages
# This number is used as the max weight per package
# when the total weight is > than this weight the
# weights are split into packages not exceeding max.
shipment.ups.max.estimate.weight=90

# Minimum weight for a package (per UPS specs)
# Please make an weight > 0, but less than the
# minimum be equal to the value below.
shipment.ups.min.estimate.weight=.1

# COD
# Will be applied if shipment.ups.cod.allowCOD is true and all shipment package items
# are from orders which have been fully paid via EXT_COD
shipment.ups.cod.allowCOD=true
shipment.ups.cod.surcharge.amount=9
shipment.ups.cod.surcharge.currencyUomId=USD

# shipment.ups.cod.surcharge.applyToPackages:
# all - surcharge amount will be applied to each shipment package
# first - surcharge amount will be applied to the first package in the shipment
# split - surcharge amount will be split between shipment packages (fractional cents are rounded
#         via symmetric arithmetic rounding)
# none - the surcharge will not be applied to any packages (use this when COD surcharges have been applied
#        earlier in the process, such as during the order entry process
shipment.ups.cod.surcharge.applyToPackages=first

# CODFundsCode
# The code that indicates the type of funds used for the COD payment.
# For package-level COD:
# 0 = Unsecured funds allowed (check, cashier's check or money order - no cash allowed)
# 8 = Secured Funds only (cashier's check or money order - no cash allowed)
# Shipment-level COD: Not supported
shipment.ups.cod.codFundsCode=0

# Return label email memo and subject
shipment.ups.default.returnLabel.memo=UPS Shipment Return Memo
shipment.ups.default.returnLabel.subject=UPS Shipment Return Label

############################################
# USPS Webtools API Configuration
############################################

# USPS Connection URL & timeout in seconds
shipment.usps.connect.url=http://localhost:8080/facility/ShippingAPI.dll
shipment.usps.connect.timeout=60

# USPS Credentials
shipment.usps.access.userid=000000000000
shipment.usps.access.password=999999999999

# Estimate split into packages
shipment.usps.max.estimate.weight=70

############################################
# DHL ShipIT Configuration
############################################

# DHL Shipment Label configuration
shipment.dhl.label.image.format=PNG

# DHL API Schema Templates
shipment.template.dhl.rate.estimate=api.schema.DHL

# DHL Connection URL & timeout in seconds
## Use this one for testing.  Change it to the production URL.
shipment.dhl.connect.url=HTTPS://eCommerce.airborne.com/ApiLandingTest.asp
## This is the production URL
#shipment.dhl.connect.url=HTTPS://eCommerce.airborne.com/ApiLanding.asp
shipment.dhl.connect.timeout=60

# DHL Head Attributes
shipment.dhl.head.version=1.1
shipment.dhl.head.action=Request

# DHL Credentials
shipment.dhl.access.userid=YOUR DHL ShipIT USER ID
shipment.dhl.access.password=YOUR DHL ShipIT ACCESS PASSWORD
shipment.dhl.access.accountNbr=YOUR DHL ShipIT ACCOUNT NUMBER
shipment.dhl.access.shippingKey=YOUR DHL ShipIT SHIPPING KEY

# DHL Shipment Label configuration
shipment.dhl.label.image.format=PNG


############################################
# FedEx Ship Manager Direct Configuration
############################################

# Template locations
shipment.template.fedex.ship.location=component://product/templates/shipment/FedexShipRequestTemplate.xml.ftl
shipment.template.fedex.subscription.location=component://product/templates/shipment/FedexSubscriptionRequestTemplate.xml.ftl

# Credentials
shipment.fedex.access.accountNbr=
shipment.fedex.access.meterNumber=
shipment.fedex.access.userCredential.key=
shipment.fedex.access.userCredential.password=

# Connection details
# https://gatewaybeta.fedex.com/GatewayDC - Test URL
# https://gateway.fedex.com/GatewayDC     - Production URL
# https://gatewaybeta.fedex.com/web-services - SOAP Test URL
# https://gateway.fedex.com/web-services     - SOAP Production URL
shipment.fedex.connect.url=https://gatewaybeta.fedex.com/GatewayDC
shipment.fedex.connect.soap.url=https://gatewaybeta.fedex.com:443/web-services
shipment.fedex.connect.timeout=60

# Label configuration
# labelImageType must be PDF or PNG (PNG valid only for intra-US shipments)
shipment.fedex.labelImageType=PNG

# Default dropoff type
#REGULARPICKUP      - Regular Pickup
#REQUESTCOURIER     - Request Courier
#DROPBOX            - Drop-Box
#BUSINESSSERVICECTR - Business Service Center
#STATION            - Station
shipment.fedex.default.dropoffType=REGULARPICKUP

# Default packaging type
#FXENV      - FedEx Envelope
#FXENV_LGL  - FedEx Envelope (Legal)
#FXPAK_SM   - FedEx Pak (Small)
#FXPAK_LRG  - FedEx Pak (Large)
#FXBOX_SM   - FedEx Box (Small)
#FXBOX_MED  - FedEx Box (Medium)
#FXBOX_LRG  - FedEx Box (Large)
#FXTUBE     - FedEx Tube
#FX10KGBOX  - FedEx 10KG Box
#FX25KGBOX  - FedEx 25KG Box
#YOURPACKNG - Your Packaging
shipment.fedex.default.packagingType=YOURPACKNG
