magento 0.11.0 → 0.12.0

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: ba575ef3ae90104d8c2fab63e96762478536391becc467892d0feee3ff9a15ad
4
- data.tar.gz: 655504007fb8ff01db537e8d7fa51641fba248ce0fdee9a0b153418b95dce688
3
+ metadata.gz: 2cac0ea3cb60d8b0a55431e9b404ba17108ae038642e57c7908700915a109818
4
+ data.tar.gz: '098eb32b5b64f50fd1228245ec1b2f431f3512c47ec1b23c8583fc1b4cb18022'
5
5
  SHA512:
6
- metadata.gz: 720efc55bf0754e8a13dae1230208536743bc6939f53ba7ccf4d116e325e257486e4522188fee86bc1383a11c92c49692e4f193cd6d402ce23f687086549a5d2
7
- data.tar.gz: 7984a5870e45ebcd220d0426918bd5b616ae545112fd68bc0ca6ac4cb2e60b1e1891ae2e46ed233a06be9f9ae399b5de9a02e8608400ed668336903f34c71472
6
+ metadata.gz: 1125477eea00eafac5824a696777dea28b88dfe3bf9c0ea1161c2c98c286cbfa2198052669d6fbdb1b2041dc3fa987d4120167b1f4708859e1283ed018585d8b
7
+ data.tar.gz: 7db7a194488212a7d5b050d2c0acc5ec5f7f573995d291435a6a5743d39cba78320ea464f1fa2493f7672f59c5775f061f1fb9899be5ddb188b3dc9868a1c80b
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  Add in your Gemfile
6
6
 
7
7
  ```rb
8
- gem 'magento', '~> 0.11.0'
8
+ gem 'magento', '~> 0.12.0'
9
9
  ```
10
10
 
11
11
  or run
@@ -484,14 +484,44 @@ order.cancel # or
484
484
  Magento::Order.cancel(order_id)
485
485
  ```
486
486
 
487
- ___
487
+ ## Generate Sales Rules and Coupons
488
488
 
489
- ##TODO:
489
+ ```rb
490
+ rule = Magento::SalesRule.create(
491
+ name: 'Discount name',
492
+ website_ids: [1],
493
+ customer_group_ids: [0,1,2,3],
494
+ uses_per_customer: 1,
495
+ is_active: true,
496
+ stop_rules_processing: true,
497
+ is_advanced: false,
498
+ sort_order: 0,
499
+ discount_amount: 100,
500
+ discount_step: 1,
501
+ apply_to_shipping: true,
502
+ times_used: 0,
503
+ is_rss: true,
504
+ coupon_type: 'specific',
505
+ use_auto_generation: true,
506
+ uses_per_coupon: 1
507
+ )
490
508
 
491
- ### Search products
509
+ rule.generate_coupon(quantity: 1, length: 10)
510
+ ```
511
+
512
+ Renarate by class method
492
513
  ```rb
493
- Magento::Product.search('tshort')
514
+ Magento::SalesRule.generate_coupon(
515
+ couponSpec: {
516
+ rule_id: 7,
517
+ quantity: 1,
518
+ length: 10
519
+ }
520
+ )
494
521
  ```
522
+ see all params in:
523
+ - [Magento docs Coupon](https://magento.redoc.ly/2.3.5-admin/tag/couponsgenerate#operation/salesRuleCouponManagementV1GeneratePost)
524
+ - [Magento docs SalesRules](https://magento.redoc.ly/2.3.5-admin/tag/salesRules#operation/salesRuleRuleRepositoryV1SavePost)
495
525
 
496
526
  ### First result
497
527
  ```rb
@@ -502,6 +532,23 @@ Magento::Product.where(name_like: 'some name%').first
502
532
  >> <Magento::Product @sku="some-sku" ...>
503
533
  ```
504
534
 
535
+ ### Count result
536
+ ```rb
537
+ Magento::Product.count
538
+ >> 7855
539
+ Magento::Product.where(name_like: 'some name%').count
540
+ >> 15
541
+ ```
542
+
543
+ ___
544
+
545
+ ##TODO:
546
+
547
+ ### Search products
548
+ ```rb
549
+ Magento::Product.search('tshort')
550
+ ```
551
+
505
552
  ### Last result
506
553
  ```rb
507
554
  Magento::Product.last
@@ -511,12 +558,4 @@ Magento::Product.where(name_like: 'some name%').last
511
558
  >> <Magento::Product @sku="some-sku" ...>
512
559
  ```
513
560
 
514
- ### Count result
515
- ```rb
516
- Magento::Product.count
517
- >> 7855
518
- Magento::Product.where(name_like: 'some name%').count
519
- >> 15
520
- ```
521
-
522
561
  ### Tests
@@ -17,6 +17,7 @@ require_relative 'magento/customer'
17
17
  require_relative 'magento/order'
18
18
  require_relative 'magento/invoice'
19
19
  require_relative 'magento/guest_cart'
20
+ require_relative 'magento/sales_rule'
20
21
 
21
22
  Dir[File.expand_path('magento/shared/*.rb', __dir__)].map { |f| require f }
22
23
 
@@ -0,0 +1,32 @@
1
+ module Magento
2
+ class SalesRule < Model
3
+ self.primary_key = :rule_id
4
+ self.entity_key = :rule
5
+ self.endpoint = 'salesRules'
6
+
7
+ # Example
8
+ # rule = Magento::SalesRule.find(5)
9
+ # rule.generate_coupon(quantity: 1, length: 10)
10
+ #
11
+ # @return {String[]}
12
+ def generate_coupon(attributes)
13
+ body = { couponSpec: { rule_id: id }.merge(attributes) }
14
+ self.class.generate_coupon(body)
15
+ end
16
+
17
+ class << self
18
+ # Example
19
+ # Magento::SalesRule.generate_coupon(
20
+ # couponSpec: {
21
+ # rule_id: 5,
22
+ # quantity: 1,
23
+ # length: 10
24
+ # }
25
+ # )
26
+ # @return {String[]}
27
+ def generate_coupon(attributes)
28
+ request.post('coupons/generate', attributes).parse
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,4 @@
1
+ module Magento
2
+ class ActionCondition
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Magento
2
+ class Condition
3
+ end
4
+ end
@@ -1,3 +1,3 @@
1
1
  module Magento
2
- VERSION = '0.11.0'
2
+ VERSION = '0.12.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.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wallas Faria
@@ -63,12 +63,15 @@ files:
63
63
  - lib/magento/query.rb
64
64
  - lib/magento/record_collection.rb
65
65
  - lib/magento/request.rb
66
+ - lib/magento/sales_rule.rb
67
+ - lib/magento/shared/action_condition.rb
66
68
  - lib/magento/shared/address.rb
67
69
  - lib/magento/shared/available_regions.rb
68
70
  - lib/magento/shared/billing_address.rb
69
71
  - lib/magento/shared/bundle_product_option.rb
70
72
  - lib/magento/shared/category_link.rb
71
73
  - lib/magento/shared/comment.rb
74
+ - lib/magento/shared/condition.rb
72
75
  - lib/magento/shared/configurable_product_option.rb
73
76
  - lib/magento/shared/currency.rb
74
77
  - lib/magento/shared/custom_attribute.rb