32 Commits

Author SHA1 Message Date
Ahmed Ejaz
b6eca58798 13024: fix dfc catalog sync for blank cart 2024-12-12 04:28:15 +05:00
Maikel Linke
61aa02b3c3 Sync stock with DFC catalog after cart update 2024-10-04 16:25:17 +10:00
Matt-Yorkley
9f49a84e7f Clarify use of access tokens used for viewing order details as a guest user
There are 4 or 5 different places in the app where we reference a :token and params[:token] for completely different purposes (they're not even vaguely the *same* token).

This is an attempt to clarify the places in the app where we use params[:token] in relation to *orders*, for allowing guest users (who are not logged in) to view details of an order they have placed (like after checkout completion), and differentiate it from the various other places where params[:token] can actually be used for something entirely different!
2021-12-16 13:35:55 +00:00
Luis Ramos
e52937c113 Use rubocop auto correct to add frozen string literal to all files
This is an unsafe auto corection, we will need to trust our build here
2021-06-17 23:07:26 +01:00
Matt-Yorkley
2e96982e60 Refactor conditional
CartService#populate already returns the value of the #valid? method by default.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
6abe0b375c Refactor stock levels check in CartController 2021-06-04 17:10:50 +01:00
Matt-Yorkley
398d4b2612 Tidy up public interface of CartService
We don't need this extra hash to be passed around
2021-06-04 17:10:50 +01:00
Matt-Yorkley
6e8fd3c3f8 Simplify CartService interface
There's only one place this method is called, and the "overwrite" argument is always explicitly true. It doesn't need to be there if it's mandatory.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
d99e598e7a Delete dead code in CartController
The two conditionals in #populate_variant_attributes here are never actually true, so the subsequent code paths are never reached.
2021-06-04 17:10:50 +01:00
Matt-Yorkley
d5d76d9b9a Move private controller methods to private 2021-06-04 17:10:50 +01:00
Matt-Yorkley
0393ea4219 Update variant params in CartController 2021-03-11 12:19:55 +00:00
Matt-Yorkley
4c64aaed77 Remove callbacks in Adjustment that call order.update! 2021-03-11 11:20:01 +00:00
Matt-Yorkley
0e3429dc35 Merge pull request #6758 from Matt-Yorkley/enterprise-fees-refactor
Enterprise fees refactor
2021-02-22 17:59:18 +01:00
Matt-Yorkley
d39468013e Clarify CartService#populate arguments
This method doesn't use :products anywhere, it doesn't need to be passed in as part of the argument.
2021-01-30 16:52:59 +00:00
Matt-Yorkley
9abf6cdcdf Rename expensive method Order#update_distribution_charge!
This method is named "update distribution charge". What this method actually does is delete all of the fee adjustments on an order and all it's line items, then recreate them all from scratch. We call this from lots of different places all the time, and it's incredibly expensive. It even gets called from inside of transactions being run inside callbacks. Renaming it hopefully will add a bit of clarity.

This needs to be a lot more granular!
2021-01-29 21:52:28 +00:00
Andy Brett
22ef9a0fef fix long line 2020-12-08 14:37:16 -08:00
Andy Brett
7a03882314 re-refactor cart_service 2020-12-08 14:37:16 -08:00
Andy Brett
b713bd7aa7 spec updates 2020-12-08 14:37:16 -08:00
Andy Brett
c70ea44091 show specific error message when add-to-cart fails 2020-12-08 14:37:16 -08:00
Luis Ramos
6814eb663f Fix respond_with error 2020-11-27 13:59:46 +00:00
Luis Ramos
144811268e Adapt require statements to new undecorated classes 2020-07-15 14:53:35 +01:00
Luis Ramos
8a61257547 Rename all before_filter to before_action, it's the same function with a new name 2020-06-22 13:11:57 +01:00
Luis Ramos
be4104d6f3 Merge branch 'master' into 3-0-stable-may-5 2020-05-05 19:11:20 +01:00
Matt-Yorkley
43869fc140 Replace fired events with clearer method call
The 'spree.cart.add' event has no listeners in spree_core on in ofn. The 'spree.order.contents_changed' just has a single listener that calls `order.update_distribution_charge`.
2020-04-28 00:56:18 +02:00
Matt-Yorkley
a5c4364f92 Fetch (or create) current_order only once 2020-04-28 00:52:09 +02:00
Matt-Yorkley
53645517af Update deprecated #find_by_* methods 2020-02-22 11:06:51 +00:00
luisramos0
aa603c9a84 Make rubocop happy on cart controller, cart service and stock levels service 2019-01-15 13:42:51 +00:00
luisramos0
c0473a4505 Extract variants_stock_levels from cart_controller and refactor some names 2019-01-15 13:38:58 +00:00
luisramos0
910297572e Removed unnecessary currency from CartService constructor, using order.currency instead 2018-08-23 12:40:18 +01:00
luisramos0
c7b202f932 Fixed CodeClimate warnings on services/cart_services.rb 2018-08-23 12:39:58 +01:00
luisramos0
05bfc098ff /controllers/spree/order_populator_decorator (with a class_eval) is now /services/CartService with no dependency to Spree::OrderPopulator. 2018-08-23 12:39:55 +01:00
luisramos0
6caa361354 Moved Spree::OrderController.populate to new CartController.
This was done to make order populate independent of Spree::OrdersController
2018-08-23 12:37:52 +01:00