Skip to content

Instantly share code, notes, and snippets.

View peterberkenbosch's full-sized avatar
:shipit:

Peter Berkenbosch peterberkenbosch

:shipit:
View GitHub Profile
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
@peterberkenbosch
peterberkenbosch / heroku_ssl_error.md
Last active August 15, 2019 21:11
heroku push openssl

Do you see this error pushing to the hub from Heroku?

/app/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:918:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

This indicates that ruby is unable to find the certification authority certificates. You can probably confirm this by setting the following in your code:

order.shipments.map {|s| s.shipping_rates.frontend.collect(&:cost) }.flatten
{
"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",
# bundle exec rails console
product = Product.find_by_slug("typo slug here")
product.slug = "new-better-slug"
product.save!
@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
@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

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 / 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
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']
}