e_plat 0.3.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +631 -131
  3. data/lib/active_resource/connection_error.rb +29 -0
  4. data/lib/active_resource/formats.rb +27 -0
  5. data/lib/current.rb +1 -1
  6. data/lib/e_plat/client/default_request_args.rb +27 -3
  7. data/lib/e_plat/client.rb +114 -87
  8. data/lib/e_plat/connection.rb +4 -0
  9. data/lib/e_plat/mapping/base.rb +119 -12
  10. data/lib/e_plat/mapping/bigcommerce/v_3/metafield.rb +62 -0
  11. data/lib/e_plat/mapping/bigcommerce/v_3/order/billing_address.rb +14 -0
  12. data/lib/e_plat/mapping/bigcommerce/v_3/order/line_item.rb +85 -0
  13. data/lib/e_plat/mapping/bigcommerce/v_3/order/shipping_address.rb +73 -0
  14. data/lib/e_plat/mapping/bigcommerce/v_3/order.rb +160 -0
  15. data/lib/e_plat/mapping/bigcommerce/v_3/product/image.rb +12 -12
  16. data/lib/e_plat/mapping/bigcommerce/v_3/product/variant.rb +1 -1
  17. data/lib/e_plat/mapping/bigcommerce/v_3/script_tag.rb +78 -0
  18. data/lib/e_plat/mapping/bigcommerce/v_3/shop.rb +11 -6
  19. data/lib/e_plat/mapping/bigcommerce/v_3/webhook.rb +54 -0
  20. data/lib/e_plat/mapping/request_body_root.rb +38 -0
  21. data/lib/e_plat/mapping/shopify/v_2024_01/metafield.rb +26 -0
  22. data/lib/e_plat/mapping/shopify/v_2024_01/order/billing_address.rb +14 -0
  23. data/lib/e_plat/mapping/shopify/v_2024_01/order/shipping_address.rb +30 -0
  24. data/lib/e_plat/mapping/shopify/{v_2022_07/product.rb → v_2024_01/order.rb} +3 -3
  25. data/lib/e_plat/mapping/shopify/{v_2022_07 → v_2024_01}/product/image.rb +1 -1
  26. data/lib/e_plat/mapping/shopify/{v_2022_07 → v_2024_01}/product/variant.rb +2 -1
  27. data/lib/e_plat/mapping/shopify/v_2024_01/product.rb +26 -0
  28. data/lib/e_plat/mapping/shopify/v_2024_01/script_tag.rb +26 -0
  29. data/lib/e_plat/mapping/shopify/{v_2022_07 → v_2024_01}/shop.rb +1 -1
  30. data/lib/e_plat/mapping/shopify/v_2024_01/webhook.rb +29 -0
  31. data/lib/e_plat/mapping/virtual_collection/base.rb +14 -0
  32. data/lib/e_plat/mapping/virtual_collection/bigcommerce/order_line_items.rb +297 -0
  33. data/lib/e_plat/mapping.rb +3 -3
  34. data/lib/e_plat/resource/attribute_interface.rb +28 -28
  35. data/lib/e_plat/resource/base.rb +107 -66
  36. data/lib/e_plat/resource/collection.rb +92 -0
  37. data/lib/e_plat/resource/concerns/aliases.rb +102 -18
  38. data/lib/e_plat/resource/concerns/dirty.rb +54 -0
  39. data/lib/e_plat/resource/concerns/metafieldable.rb +43 -0
  40. data/lib/e_plat/resource/concerns/overwrite_instance_methods.rb +108 -6
  41. data/lib/e_plat/resource/concerns/overwrite_request_methods.rb +73 -37
  42. data/lib/e_plat/resource/countable.rb +43 -0
  43. data/lib/e_plat/resource/metafield.rb +70 -0
  44. data/lib/e_plat/resource/order/Consignment.rb +8 -0
  45. data/lib/e_plat/resource/order/billing_address.rb +6 -0
  46. data/lib/e_plat/resource/order/fulfillment.rb +1 -0
  47. data/lib/e_plat/resource/order/line_item.rb +1 -0
  48. data/lib/e_plat/resource/order/shipping_address.rb +44 -0
  49. data/lib/e_plat/resource/order/shipping_line.rb +15 -14
  50. data/lib/e_plat/resource/order.rb +32 -0
  51. data/lib/e_plat/resource/paginated/link_headers.rb +42 -0
  52. data/lib/e_plat/resource/paginated/link_params.rb +26 -0
  53. data/lib/e_plat/resource/product/image.rb +6 -0
  54. data/lib/e_plat/resource/product/option.rb +1 -0
  55. data/lib/e_plat/resource/product/variant.rb +8 -12
  56. data/lib/e_plat/resource/product.rb +8 -2
  57. data/lib/e_plat/resource/script_tag.rb +56 -0
  58. data/lib/e_plat/resource/shop.rb +17 -13
  59. data/lib/e_plat/resource/shopify_only/recurring_application_charge/usage_charge.rb +32 -0
  60. data/lib/e_plat/resource/shopify_only/recurring_application_charge.rb +47 -0
  61. data/lib/e_plat/resource/webhook.rb +50 -0
  62. data/lib/e_plat/session.rb +10 -7
  63. data/lib/e_plat/type_coercer.rb +15 -17
  64. data/lib/e_plat/version.rb +1 -1
  65. data/lib/e_plat.rb +14 -4
  66. metadata +67 -7
  67. data/lib/e_plat/resource/order/customer.rb +0 -37
@@ -0,0 +1,73 @@
1
+
2
+ module EPlat
3
+ class Mapping
4
+ module Bigcommerce
5
+ module V3
6
+ class Order::ShippingAddress < EPlat::Mapping::Base
7
+
8
+ def native_top_key
9
+ "data"
10
+ end
11
+
12
+ def native_attributes
13
+ super.concat([
14
+ "first_name",
15
+ "last_name",
16
+ "company",
17
+ "street_1",
18
+ "street_2",
19
+ "city",
20
+ "state",
21
+ "zip",
22
+ "country",
23
+ "country_iso2",
24
+ "phone",
25
+ "email",
26
+ "form_fields"
27
+ ])
28
+ end
29
+
30
+ def native_attribute_aliases
31
+ super.concat([
32
+ {
33
+ alias_attribute: {native_key: "street_1", e_plat_key: "address1"}
34
+ },
35
+ {
36
+ alias_attribute: {native_key: "street_2", e_plat_key: "address2"}
37
+ },
38
+ {
39
+ existing_entry: {native_key: "city", e_plat_key: "city"}
40
+ },
41
+ {
42
+ existing_entry: {native_key: "company", e_plat_key: "company"}
43
+ },
44
+ {
45
+ existing_entry: {native_key: "country", e_plat_key: "country"}
46
+ },
47
+ {
48
+ existing_entry: {native_key: "first_name", e_plat_key: "first_name"}
49
+ },
50
+ {
51
+ existing_entry: {native_key: "last_name", e_plat_key: "last_name"}
52
+ },
53
+ {
54
+ existing_entry: {native_key: "phone", e_plat_key: "phone"}
55
+ },
56
+ {
57
+ alias_attribute: {native_key: "state", e_plat_key: "province"}
58
+ },
59
+ {
60
+ existing_entry: {native_key: "zip", e_plat_key: "zip"}
61
+ },
62
+ {
63
+ alias_attribute: {native_key: "country_iso2", e_plat_key: "country_code"}
64
+ }
65
+ # NOTE: BigCommerce doesn't provide fields for province_code, latitude, longitude, or a direct mapping for name
66
+ ])
67
+ end
68
+
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,160 @@
1
+ module EPlat
2
+ class Mapping
3
+ module Bigcommerce
4
+ module V3 #v2 used, as v3 order not yet available
5
+ class Order < EPlat::Mapping::Base
6
+ virtual_collection :line_items, class: EPlat::Mapping::VirtualCollection::Bigcommerce::OrderLineItems, map_from: "consignments"
7
+
8
+ def native_top_key
9
+ "data"
10
+ end
11
+
12
+ def native_attributes
13
+ super.concat([
14
+ "id",
15
+ "customer_id",
16
+ "date_created",
17
+ "date_modified",
18
+ "date_shipped",
19
+ "status_id",
20
+ "status",
21
+ "subtotal_ex_tax",
22
+ "subtotal_inc_tax",
23
+ "subtotal_tax",
24
+ "base_shipping_cost",
25
+ "shipping_cost_ex_tax",
26
+ "shipping_cost_inc_tax",
27
+ "shipping_cost_tax",
28
+ "shipping_cost_tax_class_id",
29
+ "base_handling_cost",
30
+ "handling_cost_ex_tax",
31
+ "handling_cost_inc_tax",
32
+ "handling_cost_tax",
33
+ "handling_cost_tax_class_id",
34
+ "base_wrapping_cost",
35
+ "wrapping_cost_ex_tax",
36
+ "wrapping_cost_inc_tax",
37
+ "wrapping_cost_tax",
38
+ "wrapping_cost_tax_class_id",
39
+ "total_ex_tax",
40
+ "total_inc_tax",
41
+ "total_tax",
42
+ "items_total",
43
+ "items_shipped",
44
+ "payment_method",
45
+ "payment_provider_id",
46
+ "payment_status",
47
+ "refunded_amount",
48
+ "order_is_digital",
49
+ "store_credit_amount",
50
+ "gift_certificate_amount",
51
+ "ip_address",
52
+ "ip_address_v6",
53
+ "geoip_country",
54
+ "geoip_country_iso2",
55
+ "currency_id",
56
+ "currency_code",
57
+ "currency_exchange_rate",
58
+ "default_currency_id",
59
+ "default_currency_code",
60
+ "staff_notes",
61
+ "customer_message",
62
+ "discount_amount",
63
+ "coupon_discount",
64
+ "shipping_address_count",
65
+ "is_deleted",
66
+ "ebay_order_id",
67
+ "cart_id",
68
+ "billing_address",
69
+ "is_email_opt_in",
70
+ "credit_card_type",
71
+ "order_source",
72
+ "channel_id",
73
+ "external_source",
74
+ "products",
75
+ "shipping_addresses",
76
+ "coupons",
77
+ "external_id",
78
+ "external_merchant_id",
79
+ "tax_provider_id",
80
+ "store_default_currency_code",
81
+ "store_default_to_transactional_exchange_rate",
82
+ "custom_status",
83
+ "customer_locale",
84
+ "external_order_id"
85
+ ])
86
+ end
87
+
88
+ def native_attribute_aliases
89
+ super.concat([
90
+ {
91
+ alias_attribute: {native_key: "date_created", e_plat_key: "created_at"}
92
+ },
93
+ {
94
+ alias_attribute: {native_key: "date_modified", e_plat_key: "updated_at"}
95
+ },
96
+ {
97
+ alias_attribute: {native_key: "status_id", e_plat_key: "financial_status",
98
+ custom_e_plat_getter: "-> (status_id) {
99
+ case status_id.to_i
100
+ when 1 then 'pending'
101
+ when 4 then 'refunded'
102
+ when 5 then 'cancelled' # not a valid status for Shopify. just used in this BG specific mapping
103
+ when 7 then 'unpaid'
104
+ when 11 then 'paid'
105
+ else nil
106
+ end
107
+ }",
108
+ custom_native_setter: "-> (financial_status) {
109
+ case financial_status
110
+ when 'pending' then 1
111
+ when 'refunded' then 4
112
+ when 'cancelled' then 5
113
+ when 'unpaid' then 7
114
+ when 'paid' then 11
115
+ else nil
116
+ end
117
+ }"
118
+ }
119
+ },
120
+ {
121
+ existing_entry: {native_key: "billing_address", e_plat_key: "billing_address"}
122
+ },
123
+ {
124
+ alias_attribute: {native_key: "currency_code", e_plat_key: "currency"}
125
+ },
126
+ {
127
+ alias_attribute: {native_key: 'subtotal_ex_tax', e_plat_key: 'subtotal_price'} #poundage string. eg "5.31"
128
+ },
129
+ {
130
+ existing_entry: {native_key: 'total_tax', e_plat_key: 'total_tax'} #poundage string. eg "5.31"
131
+ },
132
+ {
133
+ alias_attribute: {native_key: 'total_inc_tax', e_plat_key: 'total_price'} #poundage string. eg "5.31"
134
+ },
135
+ {
136
+ existing_entry: {native_key: 'id', e_plat_key: 'id'}
137
+ },
138
+ {
139
+ existing_entry: {native_key: 'customer_locale', e_plat_key: 'customer_locale'} #e.g. "en-{optional_country_code}"
140
+ },
141
+ {
142
+ alias_attribute: {native_key: "total_inc_tax", e_plat_key: "current_total_price"}
143
+ },
144
+ {
145
+ alias_attribute: {native_key: "discount_amount", e_plat_key: "current_total_discounts"} #poundage string. eg "9.99"
146
+ },
147
+ {
148
+ alias_attribute: {native_key: "staff_notes", e_plat_key: "note"}
149
+ },
150
+ {
151
+ alias_attribute: {native_key: "billing_address[email]", e_plat_key: "email"}
152
+ }
153
+ ])
154
+ end
155
+
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
@@ -15,28 +15,28 @@ module EPlat
15
15
  super.concat([
16
16
  "id",
17
17
  "product_id",
18
- "is_thumbnail",
19
- "sort_order",
20
- "description",
21
- "image_file",
22
- "url_zoom",
23
- "url_standard",
24
- "url_thumbnail",
25
- "url_tiny",
26
- "date_modified"
18
+ "is_thumbnail",
19
+ "sort_order",
20
+ "description",
21
+ "image_file",
22
+ "url_zoom",
23
+ "url_standard",
24
+ "url_thumbnail",
25
+ "url_tiny",
26
+ "date_modified"
27
27
  ])
28
28
  end
29
29
 
30
30
  def native_attribute_aliases
31
31
  super.concat([
32
32
  {
33
- existing_entry: {native_key: "id", e_plat_key: "id"},
33
+ existing_entry: {native_key: "id", e_plat_key: "id"},
34
34
  },
35
35
  {
36
- existing_entry: {native_key: "product_id", e_plat_key: "product_id"},
36
+ existing_entry: {native_key: "product_id", e_plat_key: "product_id"},
37
37
  },
38
38
  {
39
- existing_entry: {native_key: "url_standard", e_plat_key: "src"},
39
+ alias_attribute: {native_key: "url_standard", e_plat_key: "src"},
40
40
  },
41
41
  {
42
42
  alias_attribute: {native_key: "date_created", e_plat_key: "created_at"},
@@ -82,7 +82,7 @@ module EPlat
82
82
  existing_entry: {native_key: "weight", e_plat_key: "weight"}
83
83
  },
84
84
  {
85
- existing_entry: {native_key: "inventory_level", e_plat_key: "inventory_quantity"}
85
+ alias_attribute: {native_key: "inventory_level", e_plat_key: "inventory_quantity"}
86
86
  }
87
87
  ])
88
88
  end
@@ -0,0 +1,78 @@
1
+ module EPlat
2
+ class Mapping
3
+ module Bigcommerce
4
+ module V3
5
+ class ScriptTag < EPlat::Mapping::Base
6
+ DEFAULT_VALUES = {
7
+ location: "head",
8
+ auto_uninstall: true,
9
+ kind: "src",
10
+ load_method: "async",
11
+ name: "app-script",
12
+ enabled: true
13
+ }
14
+
15
+ def native_top_key
16
+ "data"
17
+ end
18
+
19
+ def native_attributes
20
+ super.concat([
21
+ "name",
22
+ "description",
23
+ "html",
24
+ "src",
25
+ "auto_uninstall",
26
+ "load_method", # default | async | defer
27
+ "location", # head | footer
28
+ "visibility", # storefront | all_pages | checkout | order_confirmation
29
+ "kind", # src | script_tag
30
+ "api_client_id",
31
+ "consent_category",
32
+ "enabled",
33
+ "channel_id",
34
+ "date_created",
35
+ "date_modified",
36
+ "uuid"
37
+ ])
38
+ end
39
+
40
+ def native_attribute_aliases
41
+ super.concat([
42
+ {
43
+ existing_entry: {native_key: "src", e_plat_key: "src"}
44
+ },
45
+ {
46
+ alias_attribute: {native_key: "date_created", e_plat_key: "created_at"}
47
+ },
48
+ {
49
+ alias_attribute: {native_key: "date_modified", e_plat_key: "updated_at"}
50
+ },
51
+ {
52
+ alias_attribute: {native_key: "visibility", e_plat_key: "display_scope",
53
+ custom_e_plat_getter: "-> (value) {
54
+ case value
55
+ when 'storefront'; then 'online_store'
56
+ when 'all_pages'; then 'all'
57
+ when 'order_confirmation'; then 'order_status'
58
+ else value
59
+ end
60
+ }",
61
+ custom_native_setter: "-> (value) {
62
+ case value
63
+ when 'online_store'; then 'storefront'
64
+ when 'all'; then 'all_pages'
65
+ when 'order_status'; then 'order_confirmation'
66
+ else value
67
+ end
68
+ }"
69
+ }
70
+ }
71
+ ])
72
+ end
73
+
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -59,9 +59,12 @@ module EPlat
59
59
  end
60
60
 
61
61
  def native_attribute_aliases
62
- super.concat([
62
+ super.concat([
63
63
  {
64
- existing_entry: {native_key: "id", e_plat_key: "id"}
64
+ existing_entry: {native_key: "id", e_plat_key: "id",
65
+ custom_e_plat_getter: "-> (value) { nil }",
66
+ custom_native_setter: "-> (value) { nil }" # not compatible. one is string, one is integer
67
+ }
65
68
  },
66
69
  {
67
70
  existing_entry: {native_key: "name", e_plat_key: "name"}
@@ -70,7 +73,12 @@ module EPlat
70
73
  alias_attribute: {native_key: "admin_email", e_plat_key: "email"}
71
74
  },
72
75
  {
73
- existing_entry: {native_key: "domain", e_plat_key: "domain"}
76
+ alias_attribute: {native_key: "control_panel_base_url", e_plat_key: "myshopify_domain",
77
+ custom_e_plat_getter: "-> (value) { value.split('://').last }",
78
+ }
79
+ },
80
+ {
81
+ existing_entry: {native_key: "domain", e_plat_key: "domain"}
74
82
  },
75
83
  {
76
84
  existing_entry: {native_key: "country", e_plat_key: "country"}
@@ -84,9 +92,6 @@ module EPlat
84
92
  {
85
93
  existing_entry: {native_key: "currency_symbol", e_plat_key: "currency"}
86
94
  },
87
- {
88
- alias_attribute: {native_key: "currency_symbol", e_plat_key: "currency"}
89
- },
90
95
  {
91
96
  existing_entry: {native_key: "plan_name", e_plat_key: "plan_name"}
92
97
  },
@@ -0,0 +1,54 @@
1
+ module EPlat
2
+ class Mapping
3
+ module Bigcommerce
4
+ module V3
5
+ class Webhook < EPlat::Mapping::Base
6
+ DEFAULT_VALUES = {
7
+ is_active: true
8
+ }
9
+
10
+ def native_top_key
11
+ "data"
12
+ end
13
+
14
+ def native_attributes
15
+ super.concat([
16
+ "id",
17
+ "client_id",
18
+ "store_hash",
19
+ "created_at",
20
+ "updated_at",
21
+ "scope",
22
+ "destination",
23
+ "is_active",
24
+ "headers"
25
+ ])
26
+ end
27
+
28
+ def native_attribute_aliases
29
+ super.concat([
30
+ {
31
+ existing_entry: {native_key: "id", e_plat_key: "id"}
32
+ },
33
+ {
34
+ existing_entry: {native_key: "created_at", e_plat_key: "created_at"}
35
+ },
36
+ {
37
+ existing_entry: {native_key: "updated_at", e_plat_key: "updated_at"}
38
+ },
39
+ {
40
+ alias_attribute: {native_key: "destination", e_plat_key: "address"}
41
+ },
42
+ {
43
+ alias_attribute: {native_key: "scope", e_plat_key: "topic"}
44
+ }
45
+ ])
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+
@@ -0,0 +1,38 @@
1
+ module EPlat
2
+ class Mapping
3
+ module RequestBodyRoot
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ class << self
8
+ attr_accessor :root_in_request_body
9
+
10
+ def include_root_in_request_body(include) #<Boolean>
11
+ self.root_in_request_body = include
12
+ end
13
+ end
14
+ end
15
+
16
+ def include_root_in_request_body?(resource) #<EPlat::Resource>
17
+ return default_include_root_in_request_body(resource) if self.class.root_in_request_body.nil?
18
+
19
+ self.class.root_in_request_body
20
+ end
21
+
22
+ private
23
+
24
+ def default_include_root_in_request_body(resource)
25
+ resource.client.shopify?
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+
32
+
33
+ # class LovelyMapping < EPlat::Mapping::Base
34
+ # include_root_in_request_body true
35
+ #
36
+ # then from the resource
37
+ # variant.mapping.include_root_in_request_body?(variant)
38
+ #
@@ -0,0 +1,26 @@
1
+ module EPlat
2
+ class Mapping
3
+ module Shopify
4
+ module V202401 #< :module
5
+ class Metafield < EPlat::Mapping::Base
6
+
7
+ def native_top_key
8
+ "metafield"
9
+ end
10
+
11
+ def native_attributes
12
+ super.concat([
13
+ ])
14
+ end
15
+
16
+ def native_attribute_aliases
17
+ super.concat([
18
+ ])
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+
@@ -0,0 +1,14 @@
1
+
2
+
3
+ module EPlat
4
+ class Mapping
5
+ module Shopify
6
+ module V202401
7
+ class Order
8
+ class BillingAddress < ShippingAddress; end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+
@@ -0,0 +1,30 @@
1
+
2
+
3
+ module EPlat
4
+ class Mapping
5
+ module Shopify
6
+ module V202401
7
+ class Order
8
+ class ShippingAddress < EPlat::Mapping::Base
9
+
10
+ def native_top_key
11
+ :itself
12
+ end
13
+
14
+ def native_attributes
15
+ super.concat([
16
+ ])
17
+ end
18
+
19
+ def native_attribute_aliases
20
+ super.concat([
21
+ ])
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+
@@ -1,11 +1,11 @@
1
1
  module EPlat
2
2
  class Mapping
3
3
  module Shopify
4
- module V202207 #< :module
5
- class Product < EPlat::Mapping::Base
4
+ module V202401 #< :module
5
+ class Order < EPlat::Mapping::Base
6
6
 
7
7
  def native_top_key
8
- "product"
8
+ "order"
9
9
  end
10
10
 
11
11
  def native_attributes
@@ -3,7 +3,7 @@
3
3
  module EPlat
4
4
  class Mapping
5
5
  module Shopify
6
- module V202207
6
+ module V202401
7
7
  class Product
8
8
  class Image < EPlat::Mapping::Base
9
9
 
@@ -3,9 +3,10 @@
3
3
  module EPlat
4
4
  class Mapping
5
5
  module Shopify
6
- module V202207
6
+ module V202401
7
7
  class Product
8
8
  class Variant < EPlat::Mapping::Base
9
+ include_root_in_request_body true
9
10
 
10
11
  def native_top_key
11
12
  :itself
@@ -0,0 +1,26 @@
1
+ module EPlat
2
+ class Mapping
3
+ module Shopify
4
+ module V202401 #< :module
5
+ class Product < EPlat::Mapping::Base
6
+
7
+ def native_top_key
8
+ "product"
9
+ end
10
+
11
+ def native_attributes
12
+ super.concat([
13
+ ])
14
+ end
15
+
16
+ def native_attribute_aliases
17
+ super.concat([
18
+ ])
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+
@@ -0,0 +1,26 @@
1
+ module EPlat
2
+ class Mapping
3
+ module Shopify
4
+ module V202401 #< :module
5
+ class ScriptTag < EPlat::Mapping::Base
6
+
7
+ def native_top_key
8
+ "script_tag"
9
+ end
10
+
11
+ def native_attributes
12
+ super.concat([
13
+ ])
14
+ end
15
+
16
+ def native_attribute_aliases
17
+ super.concat([
18
+ ])
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+
@@ -1,7 +1,7 @@
1
1
  module EPlat
2
2
  class Mapping
3
3
  module Shopify
4
- module V202207 #< :module
4
+ module V202401 #< :module
5
5
  class Shop < EPlat::Mapping::Base
6
6
 
7
7
  def native_top_key