###############################################################################
# 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=${sys:getProperty('ofbiz.home')}/runtime/output/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 configuration indicator
shipment.usps.shipping=Y
# Testing indicator, currently only used for printing labels since USPS doesn't 
# use a separate url for testing
shipment.usps.test=Y

# USPS Connection URL & timeout in seconds
shipment.usps.connect.url=http://production.shippingapis.com/ShippingAPITest.dll
# Url for labels differs in that the url is the same whether testing or not 
shipment.usps.connect.url.labels=http://production.shippingapis.com/ShippingAPITest.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.dhl.template.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

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

# Template locations
shipment.fedex.template.ship.location=component://product/templates/shipment/FedexShipRequestTemplate.xml.ftl
shipment.fedex.template.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
