magento 0.18.0 → 0.21.0
Sign up to get free protection for your applications and to get access to all the features.
- 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/import/{Image_finder.rb → image_finder.rb} +0 -0
- data/lib/magento/inventory.rb +40 -0
- data/lib/magento/product.rb +30 -0
- data/lib/magento/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3369907b3576aff1a8d5199396f90b0431b629c9abf2a339917ace10ae3bdefa
|
4
|
+
data.tar.gz: 20149d57d54c0c5be44b1ca1b9006c429db2d254ff41272c201b68e2b6aa5c68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd086b7748e54381a71f96af6d1356e6124ca97b169df488ff330a21de63ec4a702dc53c28ad964e4fbbcdc0ed314e83f4ffc5e400264b04de74fc1aaab964d7
|
7
|
+
data.tar.gz: 580ed9f180845668b33a46b88ab237b56e99b4237fe0d3131452b3abe7bd694d48f342b93108d85069550bc241437a503c888e6994c8aad434794def55cc8765
|
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.0'
|
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
|
+
Inventoty.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
|
+
Inventoty.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 }
|
File without changes
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Magento
|
2
|
+
class Inventoty
|
3
|
+
class << self
|
4
|
+
#
|
5
|
+
# ==== Example
|
6
|
+
#
|
7
|
+
# Inventoty.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.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wallas Faria
|
@@ -98,11 +98,12 @@ files:
|
|
98
98
|
- lib/magento/errors.rb
|
99
99
|
- lib/magento/guest_cart.rb
|
100
100
|
- lib/magento/import.rb
|
101
|
-
- lib/magento/import/Image_finder.rb
|
102
101
|
- lib/magento/import/category.rb
|
103
102
|
- lib/magento/import/csv_reader.rb
|
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
|