SpreeFosdickIntegration

Current gem provides easy integration for you Spree Commerce based apps with full service fulfillment services of Fosdick Fulfillment.

Spree Commerce versions:

  • Spree Core - 3.6
  • Spree Auth Devise - 3.3

Installation

Add this line to your application's Gemfile:

gem 'spree_fosdick_integration'

Bundle your dependencies and run the installation generator:

bundle
bundle exec rails g spree_fosdick_integration:install

Update config/fosdick.yml with your credentials received from Fosdick

Usage

Create a rake task to push shipments to Fosdick iPost interface:

desc "Push shipments to Fosdick iPost interface"
task push_shipments_fosdick: :environment do
  eligible_shipments = Spree::Shipment.perform_fosdick_shipments

  if eligible_shipments.present?
    eligible_shipments.each do |shipment|
      Fosdick::Processor.send_shipment(shipment, FOSDICK_CONFIG)
    end
  end
end

Create a rake task to receive shipment information from Fosdick API:

desc "Receive shipment information from Fosdick API"
task receive_shipments_fosdick: :environment do
  eligible_shipments = Spree::FosdickShipment.eligible_fosdick_shipments

  if eligible_shipments.present?
    eligible_shipments.each do |fosdick_shipment|
      # get tracking details
      Fosdick::Processor.receive_shipment({external_order_num: fosdick_shipment.external_order_num }) if fosdick_shipment.tracking_number.nil?
      # get ship_date
      Fosdick::Processor.receive_shipment({external_order_num: fosdick_shipment.external_order_num }, 'shipments.json') if fosdick_shipment.ship_date.nil?
    end
  end
end

Override the email view to customise:

app/views/spree/fosdick_shipment_mailer/order_shipped.html.erb

Testing

Be sure to bundle your dependencies and then create a dummy test app for the specs to run against.

bundle
bundle exec rake test_app
bundle exec rspec spec

When testing your applications integration with this extension you may use it's factories. Simply add this require statement to your spec_helper:

require 'spree_fosdick_integration/factories'