Class: ReactiveShipping::Stamps
- Defined in:
- lib/reactive_shipping/carriers/stamps.rb
Overview
Stamps.com integration for rating, tracking, address validation, and label generation Integration ID can be requested from Stamps.com
Constant Summary collapse
- LIVE_URL =
TODO: Update to latest API. Documentation for the latest WSDL version is available here: http://support.stamps.com/outgoing/swsimv39doc.zip
'https://swsim.stamps.com/swsim/swsimv34.asmx'
- TEST_URL =
'https://swsim.testing.stamps.com/swsim/swsimv34.asmx'
- NAMESPACE =
'http://stamps.com/xml/namespace/2014/01/swsim/swsimv34'
- REQUIRED_OPTIONS =
[:integration_id, :username, :password].freeze
- PACKAGE =
[ 'Postcard', 'Letter', 'Large Envelope or Flat', 'Thick Envelope', 'Package', 'Flat Rate Box', 'Small Flat Rate Box', 'Large Flat Rate Box', 'Flat Rate Envelope', 'Flat Rate Padded Envelope', 'Large Package', 'Oversized Package', 'Regional Rate Box A', 'Regional Rate Box B', 'Regional Rate Box C', 'Legal Flat Rate Envelope' ].freeze
- US_POSSESSIONS =
%w(AS FM GU MH MP PW PR VI)
- SERVICE_TYPES =
{ 'US-FC' => 'USPS First-Class Mail', 'US-MM' => 'USPS Media Mail', 'US-PM' => 'USPS Priority Mail', 'US-BP' => 'USPS BP', 'US-LM' => 'USPS LM', 'US-XM' => 'USPS Express Mail', 'US-EMI' => 'USPS Express Mail International', 'US-PMI' => 'USPS Priority Mail International', 'US-FCI' => 'USPS First Class Mail International', 'US-CM' => 'USPS Critical Mail', 'US-PS' => 'USPS Parcel Select' }
- ADD_ONS =
{ 'SC-A-HP' => 'Hidden Postage', 'SC-A-INS' => 'Insurance', 'SC-A-INSRM' => 'Insurance for Registered Mail', 'US-A-CM' => 'Certified Mail', 'US-A-COD' => 'Collect on Delivery', 'US-A-COM' => 'Certificate of Mailing', 'US-A-DC' => 'USPS Delivery Confirmation', 'US-A-ESH' => 'USPS Express - Sunday / Holiday Guaranteed', 'US-A-INS' => 'USPS Insurance', 'US-A-NDW' => 'USPS Express - No Delivery on Saturdays', 'US-A-RD' => 'Restricted Delivery', 'US-A-REG' => 'Registered Mail', 'US-A-RR' => 'Return Receipt Requested', 'US-A-RRM' => 'Return Receipt for Merchandise', 'US-A-SC' => 'USPS Signature Confirmation', 'US-A-SH' => 'Special Handling', 'US-A-NND' => 'Notice of non-delivery', 'US-A-SR' => 'Unknow Service Name SR', 'US-A-RRE' => 'Unknow Service Name RRE' }
- CARRIER_PICKUP_LOCATION =
{ 'FrontDoor' => 'Packages are at front door', 'BackDoor' => 'Packages are at back door', 'SideDoor' => 'Packages are at side door', 'KnockOnDoorOrRingBell' => 'Knock on door or ring bell', 'MailRoom' => 'Packages are in mail room', 'Office' => 'Packages are in office', 'Reception' => 'Packages are at reception area', 'InOrAtMailbox' => 'Packages are in mail box', 'Other' => 'Other Location' }
- PRINT_LAYOUTS =
[ 'Normal', 'NormalLeft', 'NormalRight', 'Normal4X6', 'Normal6X4', 'Normal75X2', 'NormalReceipt', 'NormalCN22', 'NormalCP72', 'Normal4X6CN22', 'Normal6X4CN22', 'Normal4X6CP72', 'Normal6X4CP72', 'Normal4X675', 'Normal4X675CN22', 'Normal4X675CP72', 'Return', 'ReturnCN22', 'ReturnCP72', 'Return4X675', 'Return4X675CN22', 'Return4X675CP72', 'SDC3510', 'SDC3520', 'SDC3530', 'SDC3610', 'SDC3710', 'SDC3810', 'SDC3820', 'SDC3910', 'Envelope9', 'Envelope10', 'Envelope11', 'Envelope12', 'EnvelopePersonal', 'EnvelopeMonarch', 'EnvelopeInvitation', 'EnvelopeGreeting' ]
- IMAGE_TYPE =
%w(Auto Epl Gif Jpg Pdf Png Zpl)
- @@name =
'Stamps'
Instance Attribute Summary collapse
-
#last_swsim_method ⇒ Object
readonly
Returns the value of attribute last_swsim_method.
Attributes inherited from Carrier
Instance Method Summary collapse
- #account_info ⇒ Object
- #clear_authenticator ⇒ Object
- #create_shipment(origin, destination, package, line_items = [], options = {}) ⇒ Object
- #find_rates(origin, destination, package, options = {}) ⇒ Object
- #find_tracking_info(shipment_id, options = {}) ⇒ Object
- #namespace ⇒ Object
- #purchase_postage(purchase_amount, control_total) ⇒ Object
- #purchase_status(transaction_id) ⇒ Object
- #validate_address(address, options = {}) ⇒ Object
Methods inherited from Carrier
#available_services, #cancel_shipment, default_location, #initialize, #maximum_address_field_length, #maximum_weight, #save_request, #timestamp_from_business_day, #valid_credentials?
Constructor Details
This class inherits a constructor from ReactiveShipping::Carrier
Instance Attribute Details
#last_swsim_method ⇒ Object (readonly)
Returns the value of attribute last_swsim_method.
9 10 11 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 9 def last_swsim_method @last_swsim_method end |
Instance Method Details
#account_info ⇒ Object
130 131 132 133 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 130 def account_info request = build_get_account_info_request commit(:GetAccountInfo, request) end |
#clear_authenticator ⇒ Object
174 175 176 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 174 def clear_authenticator @authenticator = nil end |
#create_shipment(origin, destination, package, line_items = [], options = {}) ⇒ Object
158 159 160 161 162 163 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 158 def create_shipment(origin, destination, package, line_items = [], = {}) origin = standardize_address(origin) destination = standardize_address(destination) request = build_create_indicium_request(origin, destination, package, line_items, ) commit(:CreateIndicium, request) end |
#find_rates(origin, destination, package, options = {}) ⇒ Object
151 152 153 154 155 156 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 151 def find_rates(origin, destination, package, = {}) origin = standardize_address(origin) destination = standardize_address(destination) request = build_rate_request(origin, destination, package, ) commit(:GetRates, request) end |
#find_tracking_info(shipment_id, options = {}) ⇒ Object
165 166 167 168 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 165 def find_tracking_info(shipment_id, = {}) request = build_track_shipment_request(shipment_id, ) commit(:TrackShipment, request) end |
#namespace ⇒ Object
170 171 172 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 170 def namespace NAMESPACE end |
#purchase_postage(purchase_amount, control_total) ⇒ Object
135 136 137 138 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 135 def purchase_postage(purchase_amount, control_total) request = build_purchase_postage_request(purchase_amount, control_total) commit(:PurchasePostage, request) end |
#purchase_status(transaction_id) ⇒ Object
140 141 142 143 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 140 def purchase_status(transaction_id) request = build_get_purchase_status(transaction_id) commit(:GetPurchaseStatus, request) end |
#validate_address(address, options = {}) ⇒ Object
145 146 147 148 149 |
# File 'lib/reactive_shipping/carriers/stamps.rb', line 145 def validate_address(address, = {}) address = standardize_address(address) request = build_cleanse_address_request(address) commit(:CleanseAddress, request) end |