spree_pluggto 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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