Skip to content

Instantly share code, notes, and snippets.

View peterberkenbosch's full-sized avatar
:shipit:

Peter Berkenbosch peterberkenbosch

:shipit:
View GitHub Profile
desc "Generate completed orders on a fresh Spree install. e.g. rake make_orders[10]"
task :make_orders, [:number] => :environment do |t, args|
address_attributes = {
firstname: "Spree",
lastname: "Commerce",
address1: "4600 East West Highway, Suite 800",
city: "Bethesda",
country_id: Spree::Country.find_by(iso: "US").id,
state_id: Spree::State.find_by(abbr: "MD").id,
zipcode: "20814",
s3_host_alias = "s3-ap-southeast-2.amazonaws.com"
Spree::Image.attachment_definitions[:attachment][:url] = s3_host_alias
Spree::Image.attachment_definitions[:attachment][:path] = '/spree/products/:id/:style/:basename.:extension'
Spree::Image.attachment_definitions[:attachment][:storage] = :s3
Spree::Image.attachment_definitions[:attachment][:bucket] = ENV['s3_bucket']
Spree::Image.attachment_definitions[:attachment][:s3_credentials]= {
:access_key_id => ENV['s3_access_key_id'],
:secret_access_key => ENV['s3_secret_access_key']
}
@peterberkenbosch
peterberkenbosch / push_products.rb
Created March 17, 2014 12:47
push variants to the hub as products
Spree::Product.find_each do |product|
variants = product.variants_including_master
Spree::Hub::Client.push(ActiveModel::ArraySerializer.new( variants, each_serializer: Spree::Hub::ProductSerializer, root: 'products').to_json)
end

Keybase proof

I hereby claim:

  • I am peterberkenbosch on github.
  • I am peterberkenbosch (https://keybase.io/peterberkenbosch) on keybase.
  • I have a public key whose fingerprint is A8EB 749F A5E2 B932 6F2E 019C BFB0 B428 3D2B 42FE

To claim this, I am signing this object:

@peterberkenbosch
peterberkenbosch / add_order_handler.rb
Created April 2, 2014 09:20
Sample handlers for add_order and add_product with specs.
module Spree
module Hub
module Handler
class AddOrderHandler < OrderHandler
def process
order = Spree::Core::Importer::Order.import(find_spree_user, OrderHandler.order_params(@payload[:order]))
response "Order number #{order.number} was added"
end
private
@peterberkenbosch
peterberkenbosch / serializer_decorator.rb
Created May 1, 2014 12:58
Customize the serializer
# app/serializers/my_shipment_serializer.rb
class MyShipmentSerializer < Spree::Hub::ShipmentSerializer
attributes :order_token
def order_token
object.order.token
end
end
# app/models/spree/shipment_decorator.rb
# bundle exec rails console
product = Product.find_by_slug("typo slug here")
product.slug = "new-better-slug"
product.save!
{
"products": [
{
"id": "SPREE-T-SHIRT",
"name": "Spree T-Shirt",
"sku": "SPREE-T-SHIRT",
"description": "Awesome Spree T-Shirt",
"price": 35.0,
"cost_price": 22.33,
"available_on": "2014-01-29T14:01:28.000Z",
order.shipments.map {|s| s.shipping_rates.frontend.collect(&:cost) }.flatten
Spree::Order.find_each do |order|
order_tax_adjustments = order.adjustments.where(source_type: "Spree::TaxRate")
if order_tax_adjustments.count > 0
#apply the tax on the line_items
Spree::TaxRate.adjust(order, order.line_items)
end
#remove the order adjustments
order_tax_adjustments.collect(&:destroy)
end