magento 0.18.1 → 0.21.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 +4 -4
- data/.github/workflows/gem-push.yml +0 -2
- data/README.md +52 -4
- data/lib/magento.rb +1 -0
- data/lib/magento/import/csv_reader.rb +1 -1
- data/lib/magento/inventory.rb +40 -0
- data/lib/magento/product.rb +30 -0
- data/lib/magento/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15c67c62a1922aae194eab45cae0684451a565ff8d7897fd914e8f4c7f2b9934
|
4
|
+
data.tar.gz: 0a75750bf4e0976d81b72d69398d05ca5e7d63ea3588fe161ff6dd46d4223f7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02e95ff4336f3312a98acd8158decb1f66241f1183bb75de941f75c2cedaa7705ffcc732a9d8cb73d925cbd5f22a4404f42462bc8be46bfe86d219e880d45949
|
7
|
+
data.tar.gz: 4f70b1965fcaeaf3f67bafee6a2a3f4d2f38296f11eb591f0e42302d796f0b4c810851facfd3d9c757d9fb97d1c4d4e996d653b6c46e4b8184205522560a655b
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
Add in your Gemfile
|
6
6
|
|
7
7
|
```rb
|
8
|
-
gem 'magento', '~> 0.
|
8
|
+
gem 'magento', '~> 0.21.1'
|
9
9
|
```
|
10
10
|
|
11
11
|
or run
|
@@ -17,9 +17,11 @@ gem install magento
|
|
17
17
|
### Setup
|
18
18
|
|
19
19
|
```rb
|
20
|
-
Magento.
|
21
|
-
|
22
|
-
|
20
|
+
Magento.configure do |config|
|
21
|
+
config.url = 'https://yourstore.com'
|
22
|
+
config.token = 'MAGENTO_API_KEY'
|
23
|
+
config.store = :default # optional, Default is :all
|
24
|
+
end
|
23
25
|
|
24
26
|
Magento.with_config(store: :other_store) do # accepts store, url and token parameters
|
25
27
|
Magento::Product.find('sku')
|
@@ -83,6 +85,23 @@ product.respond_to? :description
|
|
83
85
|
> true
|
84
86
|
```
|
85
87
|
|
88
|
+
## add tier price
|
89
|
+
|
90
|
+
Add `price` on product `sku` for specified `customer_group_id`
|
91
|
+
|
92
|
+
Param `quantity` is the minimun amount to apply the price
|
93
|
+
|
94
|
+
```rb
|
95
|
+
product = Magento::Product.find(1)
|
96
|
+
product.add_tier_price(3.99, quantity: 1, customer_group_id: :all)
|
97
|
+
> true
|
98
|
+
|
99
|
+
# OR
|
100
|
+
|
101
|
+
Magento::Product.add_tier_price(1, 3.99, quantity: 1, customer_group_id: :all)
|
102
|
+
> true
|
103
|
+
```
|
104
|
+
|
86
105
|
## Get List
|
87
106
|
|
88
107
|
```rb
|
@@ -595,6 +614,35 @@ Magento::Product.where(name_like: 'some name%').count
|
|
595
614
|
>> 15
|
596
615
|
```
|
597
616
|
|
617
|
+
## Inventory
|
618
|
+
|
619
|
+
### Check whether a product is salable
|
620
|
+
|
621
|
+
```rb
|
622
|
+
Inventory.get_product_salable_quantity(sku: '4321', stock_id: 1)
|
623
|
+
>> 1
|
624
|
+
```
|
625
|
+
|
626
|
+
### Check whether a product is salable for a specified quantity
|
627
|
+
|
628
|
+
```rb
|
629
|
+
Inventory.is_product_salable_for_requested_qty(
|
630
|
+
sku: '4321',
|
631
|
+
stock_id: 1,
|
632
|
+
requested_qty: 2
|
633
|
+
)
|
634
|
+
>> OpenStruct {
|
635
|
+
:salable => false,
|
636
|
+
:errors => [
|
637
|
+
[0] {
|
638
|
+
"code" => "back_order-disabled",
|
639
|
+
"message" => "Backorders are disabled"
|
640
|
+
},
|
641
|
+
...
|
642
|
+
]
|
643
|
+
}
|
644
|
+
```
|
645
|
+
|
598
646
|
___
|
599
647
|
|
600
648
|
##TODO:
|
data/lib/magento.rb
CHANGED
@@ -22,6 +22,7 @@ require_relative 'magento/order'
|
|
22
22
|
require_relative 'magento/invoice'
|
23
23
|
require_relative 'magento/guest_cart'
|
24
24
|
require_relative 'magento/sales_rule'
|
25
|
+
require_relative 'magento/inventory'
|
25
26
|
require_relative 'magento/import'
|
26
27
|
|
27
28
|
Dir[File.expand_path('magento/shared/*.rb', __dir__)].map { |f| require f }
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Magento
|
2
|
+
class Inventory
|
3
|
+
class << self
|
4
|
+
#
|
5
|
+
# ==== Example
|
6
|
+
#
|
7
|
+
# Inventory.is_product_salable_for_requested_qty(
|
8
|
+
# sku: '4321',
|
9
|
+
# stock_id: 1,
|
10
|
+
# requested_qty: 2
|
11
|
+
# )
|
12
|
+
# # =>
|
13
|
+
# OpenStruct {
|
14
|
+
# :salable => false,
|
15
|
+
# :errors => [
|
16
|
+
# [0] {
|
17
|
+
# "code" => "back_order-disabled",
|
18
|
+
# "message" => "Backorders are disabled"
|
19
|
+
# },
|
20
|
+
# ...
|
21
|
+
# ]
|
22
|
+
# }
|
23
|
+
#
|
24
|
+
# @return OpenStruct
|
25
|
+
def is_product_salable_for_requested_qty(sku:, stock_id:, requested_qty:)
|
26
|
+
result = Request.new.get(
|
27
|
+
"inventory/is-product-salable-for-requested-qty/#{sku}/#{stock_id}/#{requested_qty}"
|
28
|
+
).parse
|
29
|
+
|
30
|
+
OpenStruct.new(result)
|
31
|
+
end
|
32
|
+
|
33
|
+
def get_product_salable_quantity(sku:, stock_id:)
|
34
|
+
Request.new.get(
|
35
|
+
"inventory/get-product-salable-quantity/#{sku}/#{stock_id}"
|
36
|
+
).parse
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/magento/product.rb
CHANGED
@@ -25,6 +25,25 @@ module Magento
|
|
25
25
|
self.class.remove_media(sku, media_id)
|
26
26
|
end
|
27
27
|
|
28
|
+
#
|
29
|
+
# Add {price} on product {sku} for specified {customer_group_id}
|
30
|
+
#
|
31
|
+
# Param {quantity} is the minimun amount to apply the price
|
32
|
+
#
|
33
|
+
# product = Magento::Product.find(1)
|
34
|
+
# product.add_tier_price(3.99, quantity: 1, customer_group_id: :all)
|
35
|
+
#
|
36
|
+
# OR
|
37
|
+
#
|
38
|
+
# Magento::Product.add_tier_price(1, 3.99, quantity: 1, customer_group_id: :all)
|
39
|
+
#
|
40
|
+
# @return {Boolean}
|
41
|
+
def add_tier_price(price, quantity:, customer_group_id: :all)
|
42
|
+
self.class.add_tier_price(
|
43
|
+
sku, price, quantity: quantity, customer_group_id: customer_group_id
|
44
|
+
)
|
45
|
+
end
|
46
|
+
|
28
47
|
class << self
|
29
48
|
alias_method :find_by_sku, :find
|
30
49
|
|
@@ -36,6 +55,17 @@ module Magento
|
|
36
55
|
def remove_media(sku, media_id)
|
37
56
|
request.delete("products/#{sku}/media/#{media_id}").parse
|
38
57
|
end
|
58
|
+
|
59
|
+
# Add {price} on product {sku} for specified {customer_group_id}
|
60
|
+
#
|
61
|
+
# Param {quantity} is the minimun amount to apply the price
|
62
|
+
#
|
63
|
+
# @return {Boolean}
|
64
|
+
def add_tier_price(sku, price, quantity:, customer_group_id: :all)
|
65
|
+
request.post(
|
66
|
+
"products/#{sku}/group-prices/#{customer_group_id}/tiers/#{quantity}/price/#{price}"
|
67
|
+
).parse
|
68
|
+
end
|
39
69
|
end
|
40
70
|
end
|
41
71
|
end
|
data/lib/magento/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magento
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wallas Faria
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- lib/magento/import/image_finder.rb
|
104
104
|
- lib/magento/import/product.rb
|
105
105
|
- lib/magento/import/template/products.csv
|
106
|
+
- lib/magento/inventory.rb
|
106
107
|
- lib/magento/invoice.rb
|
107
108
|
- lib/magento/model.rb
|
108
109
|
- lib/magento/model_mapper.rb
|