benmorganio
02/08/2024, 9:57 PMbenmorganio
02/08/2024, 9:57 PMJacob Penn
02/08/2024, 9:58 PMbenmorganio
02/08/2024, 9:58 PMJacob Penn
02/08/2024, 9:58 PMJacob Penn
02/08/2024, 9:59 PMdef set_currency
# session[:currency] = currency_from_headers
# session[:country] = country_from_headers
session[:currency] = 'EUR'
session[:country] = 'DE'
end
Jacob Penn
02/08/2024, 9:59 PMbenmorganio
02/08/2024, 9:59 PMbenmorganio
02/08/2024, 9:59 PMbenmorganio
02/08/2024, 10:00 PMbenmorganio
02/08/2024, 10:01 PMorder = Spree::Order.where(currency: 'EUR').last
p order
p order.line_items
benmorganio
02/08/2024, 10:01 PMbenmorganio
02/08/2024, 10:02 PMJacob Penn
02/08/2024, 10:03 PM=>
[#<Spree::LineItem:0x00007efcf2c282b0
id: 347352,
variant_id: 54,
order_id: 283231,
quantity: 1,
price: 0.1e4,
created_at: Thu, 08 Feb 2024 15:41:55.575342000 CST -06:00,
updated_at: Thu, 08 Feb 2024 15:41:55.974511000 CST -06:00,
cost_price: nil,
tax_category_id: 1,
adjustment_total: 0.0,
additional_tax_total: 0.0,
promo_total: 0.0,
included_tax_total: 0.0,
stripe_plan_id: nil,
free_perpetual_trial: false>]
irb(main):007:0> p o.line_items.first.price.to_f
1000.0
=> 1000.0
benmorganio
02/08/2024, 10:04 PMJacob Penn
02/08/2024, 10:04 PMJacob Penn
02/08/2024, 10:04 PMJacob Penn
02/08/2024, 10:04 PMbenmorganio
02/08/2024, 10:05 PMJacob Penn
02/08/2024, 10:06 PMJacob Penn
02/08/2024, 10:06 PMbenmorganio
02/08/2024, 10:07 PMbenmorganio
02/08/2024, 10:08 PMJacob Penn
02/08/2024, 10:09 PMJacob Penn
02/08/2024, 10:09 PMdef populate
@order = current_order(create_order_if_necessary: true)
authorize! :update, @order, cookies.signed[:guest_token]
variant = Spree::Variant.find(params[:variant_id])
quantity = params[:quantity].present? ? params[:quantity].to_i : 1
binding.pry
# 2,147,483,647 is crazy. See issue <https://github.com/spree/spree/issues/2695>.
if !quantity.between?(1, 2_147_483_647)
@order.errors.add(:base, t('spree.please_enter_reasonable_quantity'))
else
begin
@line_item = @order.contents.add(variant, quantity)
rescue ActiveRecord::RecordInvalid => error
@order.errors.add(:base, error.record.errors.full_messages.join(", "))
end
end
respond_with(@order) do |format|
format.html do
if @order.errors.any?
flash[:error] = @order.errors.full_messages.join(", ")
redirect_back_or_default(spree.root_path)
return
else
redirect_to cart_path
end
end
end
end
Jacob Penn
02/08/2024, 10:10 PMJacob Penn
02/08/2024, 10:10 PMdef add_to_line_item(variant, quantity, options = {})
binding.pry
line_item = grab_line_item_by_variant(variant, false, options)
line_item ||= order.line_items.new(
quantity: 0,
variant: variant,
adjustments: [],
)
line_item.quantity += quantity.to_i
line_item.options = ActionController::Parameters.new(options).permit(PermittedAttributes.line_item_attributes).to_h
line_item.target_shipment = options[:shipment]
line_item.save!
line_item
end
Jacob Penn
02/08/2024, 10:10 PMkennyadsl
Jacob Penn
02/08/2024, 10:10 PM