spree_pluggto 1.0.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7fe48703fbef832cd6c4fcf7336be85d018b872b44e6f299575ae2a24d04ee92
4
- data.tar.gz: bc238a43d02ead868d093f66acec13b970f246cf04a24c66d4566382cd6abf6c
3
+ metadata.gz: 68650ab9d11fa8f732796ee5b185bf1ee04793da13b28ac9ee6295a7f4d42fc5
4
+ data.tar.gz: 87c0c7112f861125cd9c93f37f2006f9994f964ccb14982526019aebea06b385
5
5
  SHA512:
6
- metadata.gz: 3c1838f27d41d18720aec4a75c0de557f864f354bc87e16ee484d2e6627b34d61114ebafb11407b9f8ac42741499d3de33c5aa558a6e4220ae5639d753e50ecb
7
- data.tar.gz: d831df2e340db48a77c3b3660bdc92449c87ee88ebadc2df4fdbb311943fb0d26fd0b80344280c76d63f1f43d60d112f1bf512de2f1545b6e368a830a8db0940
6
+ metadata.gz: 31571cdb3788e4c2b739cc2b08eb13e5869881d615f5ed71b8e3b6cbee894c3695c829d045d5c5cab87e9c99ff03762802d69f8ccf8427b43c8840c16c1b1d46
7
+ data.tar.gz: 13da93f36ee7ded2a3bb08ba60b88d1bb3846e76b77fd1c615bccd50d8c38d56d190028b4865e845fa6d9c8bcf291ff72cf28b200e4c0dfab2088baf91ad6179
@@ -0,0 +1,8 @@
1
+ module SpreePluggto
2
+ class UpdateStockJob < ActiveJob::Base
3
+ def perform(variant_id)
4
+ variant = ::Spree::Variant.find(variant_id)
5
+ ::SpreePluggto::Api::Stock.update(variant)
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,19 @@
1
+ module SpreePluggto
2
+ module Spree
3
+ module StockItemDecorator
4
+
5
+ def self.prepended(base)
6
+ base.after_save :update_pluggto_stock
7
+ end
8
+
9
+ private
10
+
11
+ def update_pluggto_stock
12
+ return unless product.sync_with_pluggto?
13
+ ::SpreePluggto::UpdateStockJob.perform_later(variant_id)
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ Spree::StockItem.prepend(SpreePluggto::Spree::StockItemDecorator)
@@ -1,7 +1,6 @@
1
1
  module SpreePluggto::Api
2
2
  class Product
3
3
  class << self
4
-
5
4
  def find(pluggto_id)
6
5
  response = ::SpreePluggto::Api::Request.new.get("/products/#{pluggto_id}")
7
6
  response["Product"]
@@ -16,7 +15,7 @@ module SpreePluggto::Api
16
15
  private
17
16
 
18
17
  def params(product)
19
- description = ::ActionView::Helpers::TextHelper.simple_format(product.description) + "<br/><u>MAIS INFORMAÇÕES:</u><br/>".html_safe + product.info.html_safe
18
+ description = ::ActionController::Base.helpers.simple_format(product.description) + "<br/><u>MAIS INFORMAÇÕES:</u><br/>".html_safe + product.info.html_safe
20
19
  {
21
20
  "sku": product.sku,
22
21
  "name": product.pluggto_name.present? ? product.pluggto_name : product.name,
@@ -0,0 +1,17 @@
1
+ module SpreePluggto::Api
2
+ class Stock
3
+ class << self
4
+ def update(variant)
5
+ ::SpreePluggto::Api::Request.new.put("/skus/#{variant.sku}/stock", params(variant).to_json)
6
+ end
7
+
8
+ def params(variant)
9
+ {
10
+ "action": "update",
11
+ "quantity": variant.total_on_hand.finite? ? variant.total_on_hand : 99,
12
+ "sku": variant.sku
13
+ }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -17,6 +17,7 @@ module SpreePluggto
17
17
  # Create the order on Spree
18
18
  spree_order = ::Spree::Order.create(
19
19
  channel: "pluggto",
20
+ external_channel: pluggto_order["channel"],
20
21
  pluggto_id: pluggto_order["id"],
21
22
  user: ::Spree::User.find_by(email: pluggto_order["receiver_email"]),
22
23
  email: pluggto_order["receiver_email"],
@@ -114,6 +115,7 @@ module SpreePluggto
114
115
  spree_order.update_columns(
115
116
  state: 'complete',
116
117
  completed_at: DateTime.now,
118
+ payment_confirmed_at: DateTime.now,
117
119
  payment_state: pluggto_order["status"] == 'approved' ? 'paid' : 'balance_due'
118
120
  )
119
121
  spree_order.fulfill! if spree_order.paid?
@@ -21,7 +21,7 @@ module SpreePluggto
21
21
  spree_order.fulfill!
22
22
  end
23
23
  when 'canceled'
24
- spree_order.update_columns(state: 'canceled')
24
+ spree_order.update_columns(state: 'canceled', shipment_state: 'canceled', payment_state: 'void')
25
25
  end
26
26
  end
27
27
 
@@ -43,7 +43,7 @@ module SpreePluggto
43
43
  end
44
44
 
45
45
  def set_as_paid
46
- spree_order.update_columns(payment_state: 'paid')
46
+ spree_order.update_columns(payment_state: 'paid', payment_confirmed_at: DateTime.now)
47
47
  end
48
48
 
49
49
  end
@@ -9,8 +9,8 @@ module SpreePluggto
9
9
 
10
10
  module VERSION
11
11
  MAJOR = 1
12
- MINOR = 0
13
- TINY = 0
12
+ MINOR = 1
13
+ TINY = 1
14
14
  # PRE = 'alpha'.freeze
15
15
 
16
16
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_pluggto
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Kuhn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-23 00:00:00.000000000 Z
11
+ date: 2021-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -288,11 +288,13 @@ files:
288
288
  - app/jobs/spree_pluggto/product_updated_job.rb
289
289
  - app/jobs/spree_pluggto/sku_deleted_job.rb
290
290
  - app/jobs/spree_pluggto/update_pluggto_order_job.rb
291
+ - app/jobs/spree_pluggto/update_stock_job.rb
291
292
  - app/jobs/spree_pluggto/upsert_all_products_job.rb
292
293
  - app/jobs/spree_pluggto/upsert_product_job.rb
293
294
  - app/models/pluggto_settings.rb
294
295
  - app/models/spree_pluggto/spree/product_decorator.rb
295
296
  - app/models/spree_pluggto/spree/shipment_decorator.rb
297
+ - app/models/spree_pluggto/spree/stock_item_decorator.rb
296
298
  - app/overrides/add_pluggto_id_to_order_summary.rb
297
299
  - app/overrides/add_pluggto_tab_to_order_sidebar.rb
298
300
  - app/overrides/add_settings_to_admin_configurations.rb
@@ -300,6 +302,7 @@ files:
300
302
  - app/services/spree_pluggto/api/order.rb
301
303
  - app/services/spree_pluggto/api/product.rb
302
304
  - app/services/spree_pluggto/api/request.rb
305
+ - app/services/spree_pluggto/api/stock.rb
303
306
  - app/services/spree_pluggto/create_spree_order.rb
304
307
  - app/services/spree_pluggto/delete_spree_product_reference.rb
305
308
  - app/services/spree_pluggto/send_integration_errors.rb
@@ -342,8 +345,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
342
345
  version: '0'
343
346
  requirements:
344
347
  - none
345
- rubyforge_project:
346
- rubygems_version: 2.7.6.2
348
+ rubygems_version: 3.2.16
347
349
  signing_key:
348
350
  specification_version: 4
349
351
  summary: Connect Spree to Plugg.to