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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41955a56a9aff31abc7c7c74adcc72eb84a11e00ebef0e169b40e89e218d3d0b
4
- data.tar.gz: d4e846e5407872f2c2909585b148c85ede8f9552456dfd18886fa791c8b2f1e5
3
+ metadata.gz: 3369907b3576aff1a8d5199396f90b0431b629c9abf2a339917ace10ae3bdefa
4
+ data.tar.gz: 20149d57d54c0c5be44b1ca1b9006c429db2d254ff41272c201b68e2b6aa5c68
5
5
  SHA512:
6
- metadata.gz: 5178cf1b839df2db8fd2c5c5e9c891ebdff52f2d1ce2f896c6a3a8d0f7b607960a19cfcadfece2c53289b1637c2cc613b3632b0c8bf564513e71033d2cfcfe93
7
- data.tar.gz: 28522d689e5c6a718275174c531e585c26cef4a07347b9ebd70346761a696cc87260aa809acc98fc0f9b883b9ee0c5140b0ecde3e19101ca426dab36227f003c
6
+ metadata.gz: cd086b7748e54381a71f96af6d1356e6124ca97b169df488ff330a21de63ec4a702dc53c28ad964e4fbbcdc0ed314e83f4ffc5e400264b04de74fc1aaab964d7
7
+ data.tar.gz: 580ed9f180845668b33a46b88ab237b56e99b4237fe0d3131452b3abe7bd694d48f342b93108d85069550bc241437a503c888e6994c8aad434794def55cc8765
@@ -3,8 +3,6 @@ name: Ruby Gem
3
3
  on:
4
4
  push:
5
5
  branches: [ release ]
6
- pull_request:
7
- branches: [ release ]
8
6
 
9
7
  jobs:
10
8
  build:
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  Add in your Gemfile
6
6
 
7
7
  ```rb
8
- gem 'magento', '~> 0.15.1'
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.url = 'https://yourstore.com'
21
- Magento.token = 'MAGENTO_API_KEY'
22
- Magento.store = :default # optional, Default is :all
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:
@@ -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 }
@@ -9,7 +9,7 @@ module Magento
9
9
  end
10
10
 
11
11
  def get_products
12
- @csv[1..].map do |row|
12
+ @csv[1..-1].map do |row|
13
13
  OpenStruct.new({
14
14
  name: row[0],
15
15
  sku: row[1],
@@ -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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Magento
2
- VERSION = '0.18.0'
2
+ VERSION = '0.21.0'
3
3
  end
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.18.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