shopify_api 13.0.0 → 14.0.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 +4 -4
- data/.github/CODEOWNERS +1 -1
- data/.github/workflows/build.yml +4 -1
- data/.rubocop.yml +2 -0
- data/BREAKING_CHANGES_FOR_V10.md +231 -0
- data/CHANGELOG.md +38 -1
- data/CODE_OF_CONDUCT.md +46 -0
- data/CONTRIBUTING.md +25 -0
- data/Gemfile.lock +56 -54
- data/README.md +10 -41
- data/ROADMAP.md +10 -0
- data/dev.yml +3 -2
- data/docs/README.md +0 -1
- data/docs/getting_started.md +21 -11
- data/docs/usage/custom_apps.md +75 -0
- data/docs/usage/graphql.md +91 -17
- data/docs/usage/oauth.md +160 -27
- data/docs/usage/rest.md +269 -59
- data/docs/usage/webhooks.md +54 -11
- data/lib/shopify_api/admin_versions.rb +4 -1
- data/lib/shopify_api/auth/jwt_payload.rb +2 -2
- data/lib/shopify_api/auth/oauth/access_token_response.rb +37 -0
- data/lib/shopify_api/auth/oauth.rb +17 -38
- data/lib/shopify_api/auth/session.rb +31 -0
- data/lib/shopify_api/auth/token_exchange.rb +80 -0
- data/lib/shopify_api/clients/graphql/client.rb +1 -0
- data/lib/shopify_api/clients/http_client.rb +12 -3
- data/lib/shopify_api/clients/http_response.rb +29 -2
- data/lib/shopify_api/context.rb +19 -5
- data/lib/shopify_api/logger.rb +1 -1
- data/lib/shopify_api/rest/base.rb +112 -29
- data/lib/shopify_api/rest/resources/2022_04/abandoned_checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/access_scope.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/android_pay_key.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/apple_pay_certificate.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/application_credit.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/article.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/asset.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/assigned_fulfillment_order.rb +12 -6
- data/lib/shopify_api/rest/resources/2022_04/balance.rb +6 -3
- data/lib/shopify_api/rest/resources/2022_04/blog.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/cancellation_request.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/carrier_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/collect.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/collection_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/comment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/country.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/currency.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/custom_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/customer.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/customer_address.rb +17 -3
- data/lib/shopify_api/rest/resources/2022_04/customer_saved_search.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/deprecated_api_call.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/discount_code.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/dispute.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/draft_order.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/event.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/fulfillment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/fulfillment_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/fulfillment_order.rb +10 -10
- data/lib/shopify_api/rest/resources/2022_04/fulfillment_request.rb +17 -3
- data/lib/shopify_api/rest/resources/2022_04/fulfillment_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/gift_card.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/gift_card_adjustment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/image.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/inventory_item.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/inventory_level.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/location.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/locations_for_move.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/marketing_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/metafield.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/mobile_platform_application.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/order.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/order_risk.rb +12 -6
- data/lib/shopify_api/rest/resources/2022_04/page.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/payment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/payment_gateway.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/payment_transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/payout.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/policy.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/price_rule.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/product.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/product_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/product_resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/province.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/recurring_application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/redirect.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/refund.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/report.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/script_tag.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/shipping_zone.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/shop.rb +9 -5
- data/lib/shopify_api/rest/resources/2022_04/smart_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/storefront_access_token.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/tender_transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/theme.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/usage_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/user.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/variant.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_04/webhook.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/abandoned_checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/access_scope.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/android_pay_key.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/apple_pay_certificate.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/application_credit.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/article.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/asset.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/assigned_fulfillment_order.rb +12 -6
- data/lib/shopify_api/rest/resources/2022_07/balance.rb +11 -3
- data/lib/shopify_api/rest/resources/2022_07/blog.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/cancellation_request.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/carrier_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/collect.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/collection_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/comment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/country.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/currency.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/custom_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/customer.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/customer_address.rb +17 -3
- data/lib/shopify_api/rest/resources/2022_07/deprecated_api_call.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/discount_code.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/dispute.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/dispute_evidence.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/dispute_file_upload.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/draft_order.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/event.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/fulfillment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/fulfillment_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/fulfillment_order.rb +10 -10
- data/lib/shopify_api/rest/resources/2022_07/fulfillment_request.rb +17 -3
- data/lib/shopify_api/rest/resources/2022_07/fulfillment_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/gift_card.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/gift_card_adjustment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/image.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/inventory_item.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/inventory_level.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/location.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/locations_for_move.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/marketing_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/metafield.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/mobile_platform_application.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/order.rb +10 -3
- data/lib/shopify_api/rest/resources/2022_07/order_risk.rb +12 -6
- data/lib/shopify_api/rest/resources/2022_07/page.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/payment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/payment_gateway.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/payment_transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/payout.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/policy.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/price_rule.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/product.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/product_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/product_resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/province.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/recurring_application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/redirect.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/refund.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/report.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/script_tag.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/shipping_zone.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/shop.rb +9 -5
- data/lib/shopify_api/rest/resources/2022_07/smart_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/storefront_access_token.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/tender_transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/theme.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/usage_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/user.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/variant.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_07/webhook.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/abandoned_checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/access_scope.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/android_pay_key.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/apple_pay_certificate.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/application_credit.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/article.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/asset.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/assigned_fulfillment_order.rb +12 -6
- data/lib/shopify_api/rest/resources/2022_10/balance.rb +11 -3
- data/lib/shopify_api/rest/resources/2022_10/blog.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/cancellation_request.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/carrier_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/collect.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/collection_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/comment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/country.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/currency.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/custom_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/customer.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/customer_address.rb +17 -3
- data/lib/shopify_api/rest/resources/2022_10/deprecated_api_call.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/discount_code.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/dispute.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/dispute_evidence.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/dispute_file_upload.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/draft_order.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/event.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/fulfillment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/fulfillment_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/fulfillment_order.rb +10 -10
- data/lib/shopify_api/rest/resources/2022_10/fulfillment_request.rb +17 -3
- data/lib/shopify_api/rest/resources/2022_10/fulfillment_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/gift_card.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/gift_card_adjustment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/image.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/inventory_item.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/inventory_level.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/location.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/locations_for_move.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/marketing_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/metafield.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/mobile_platform_application.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/order.rb +10 -3
- data/lib/shopify_api/rest/resources/2022_10/order_risk.rb +12 -6
- data/lib/shopify_api/rest/resources/2022_10/page.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/payment.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/payment_gateway.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/payment_transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/payout.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/policy.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/price_rule.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/product.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/product_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/product_resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/province.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/recurring_application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/redirect.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/refund.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/report.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/script_tag.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/shipping_zone.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/shop.rb +9 -8
- data/lib/shopify_api/rest/resources/2022_10/smart_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/storefront_access_token.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/tender_transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/theme.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/usage_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/user.rb +7 -3
- data/lib/shopify_api/rest/resources/2022_10/variant.rb +8 -8
- data/lib/shopify_api/rest/resources/2022_10/webhook.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/abandoned_checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/access_scope.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/apple_pay_certificate.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/application_credit.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/article.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/asset.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/assigned_fulfillment_order.rb +12 -6
- data/lib/shopify_api/rest/resources/2023_01/balance.rb +11 -3
- data/lib/shopify_api/rest/resources/2023_01/blog.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/cancellation_request.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/carrier_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/collect.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/collection_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/comment.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/country.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/currency.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/custom_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/customer.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/customer_address.rb +17 -3
- data/lib/shopify_api/rest/resources/2023_01/customer_saved_search.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/deprecated_api_call.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/discount_code.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/dispute.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/dispute_evidence.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/dispute_file_upload.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/draft_order.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/event.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/fulfillment.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/fulfillment_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/fulfillment_order.rb +15 -13
- data/lib/shopify_api/rest/resources/2023_01/fulfillment_request.rb +17 -3
- data/lib/shopify_api/rest/resources/2023_01/fulfillment_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/gift_card.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/gift_card_adjustment.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/image.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/inventory_item.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/inventory_level.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/location.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/locations_for_move.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/marketing_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/metafield.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/mobile_platform_application.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/order.rb +10 -3
- data/lib/shopify_api/rest/resources/2023_01/order_risk.rb +12 -6
- data/lib/shopify_api/rest/resources/2023_01/page.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/payment.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/payment_gateway.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/payment_transaction.rb +12 -5
- data/lib/shopify_api/rest/resources/2023_01/payout.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/policy.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/price_rule.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/product.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/product_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/product_resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/province.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/recurring_application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/redirect.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/refund.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/report.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/script_tag.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/shipping_zone.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/shop.rb +9 -8
- data/lib/shopify_api/rest/resources/2023_01/smart_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/storefront_access_token.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/tender_transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/theme.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/usage_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/user.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_01/variant.rb +8 -8
- data/lib/shopify_api/rest/resources/2023_01/webhook.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/abandoned_checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/access_scope.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/apple_pay_certificate.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/application_credit.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/article.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/asset.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/assigned_fulfillment_order.rb +12 -6
- data/lib/shopify_api/rest/resources/2023_04/balance.rb +11 -3
- data/lib/shopify_api/rest/resources/2023_04/blog.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/cancellation_request.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/carrier_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/checkout.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/collect.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/collection_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/comment.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/country.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/currency.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/custom_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/customer.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/customer_address.rb +17 -3
- data/lib/shopify_api/rest/resources/2023_04/customer_saved_search.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/deprecated_api_call.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/discount_code.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/dispute.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/dispute_evidence.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/dispute_file_upload.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/draft_order.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/event.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/fulfillment.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/fulfillment_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/fulfillment_order.rb +12 -6
- data/lib/shopify_api/rest/resources/2023_04/fulfillment_request.rb +17 -3
- data/lib/shopify_api/rest/resources/2023_04/fulfillment_service.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/gift_card.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/gift_card_adjustment.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/image.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/inventory_item.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/inventory_level.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/location.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/locations_for_move.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/marketing_event.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/metafield.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/mobile_platform_application.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/order.rb +10 -9
- data/lib/shopify_api/rest/resources/2023_04/order_risk.rb +12 -6
- data/lib/shopify_api/rest/resources/2023_04/page.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/payment.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/payment_gateway.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/payment_transaction.rb +12 -5
- data/lib/shopify_api/rest/resources/2023_04/payout.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/policy.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/price_rule.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/product.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/product_listing.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/product_resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/province.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/recurring_application_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/redirect.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/refund.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/report.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/resource_feedback.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/script_tag.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/shipping_zone.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/shop.rb +9 -8
- data/lib/shopify_api/rest/resources/2023_04/smart_collection.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/storefront_access_token.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/tender_transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/theme.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/transaction.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/usage_charge.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/user.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_04/variant.rb +8 -8
- data/lib/shopify_api/rest/resources/2023_04/webhook.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_07/abandoned_checkout.rb +194 -0
- data/lib/shopify_api/rest/resources/2023_07/access_scope.rb +62 -0
- data/lib/shopify_api/rest/resources/2023_07/apple_pay_certificate.rb +109 -0
- data/lib/shopify_api/rest/resources/2023_07/application_charge.rb +113 -0
- data/lib/shopify_api/rest/resources/2023_07/application_credit.rb +95 -0
- data/lib/shopify_api/rest/resources/2023_07/article.rb +269 -0
- data/lib/shopify_api/rest/resources/2023_07/asset.rb +122 -0
- data/lib/shopify_api/rest/resources/2023_07/assigned_fulfillment_order.rb +92 -0
- data/lib/shopify_api/rest/resources/2023_07/balance.rb +58 -0
- data/lib/shopify_api/rest/resources/2023_07/blog.rb +166 -0
- data/lib/shopify_api/rest/resources/2023_07/cancellation_request.rb +87 -0
- data/lib/shopify_api/rest/resources/2023_07/carrier_service.rb +120 -0
- data/lib/shopify_api/rest/resources/2023_07/checkout.rb +213 -0
- data/lib/shopify_api/rest/resources/{2022_07/customer_saved_search.rb → 2023_07/collect.rb} +29 -52
- data/lib/shopify_api/rest/resources/2023_07/collection.rb +114 -0
- data/lib/shopify_api/rest/resources/2023_07/collection_listing.rb +159 -0
- data/lib/shopify_api/rest/resources/2023_07/comment.rb +287 -0
- data/lib/shopify_api/rest/resources/2023_07/country.rb +141 -0
- data/lib/shopify_api/rest/resources/2023_07/currency.rb +61 -0
- data/lib/shopify_api/rest/resources/2023_07/custom_collection.rb +191 -0
- data/lib/shopify_api/rest/resources/2023_07/customer.rb +333 -0
- data/lib/shopify_api/rest/resources/2023_07/customer_address.rb +215 -0
- data/lib/shopify_api/rest/resources/{2022_10 → 2023_07}/customer_saved_search.rb +7 -3
- data/lib/shopify_api/rest/resources/2023_07/deprecated_api_call.rb +61 -0
- data/lib/shopify_api/rest/resources/2023_07/discount_code.rb +226 -0
- data/lib/shopify_api/rest/resources/2023_07/dispute.rb +115 -0
- data/lib/shopify_api/rest/resources/2023_07/dispute_evidence.rb +121 -0
- data/lib/shopify_api/rest/resources/2023_07/dispute_file_upload.rb +85 -0
- data/lib/shopify_api/rest/resources/2023_07/draft_order.rb +279 -0
- data/lib/shopify_api/rest/resources/2023_07/event.rb +152 -0
- data/lib/shopify_api/rest/resources/2023_07/fulfillment.rb +235 -0
- data/lib/shopify_api/rest/resources/2023_07/fulfillment_event.rb +170 -0
- data/lib/shopify_api/rest/resources/2023_07/fulfillment_order.rb +318 -0
- data/lib/shopify_api/rest/resources/2023_07/fulfillment_request.rb +101 -0
- data/lib/shopify_api/rest/resources/2023_07/fulfillment_service.rb +134 -0
- data/lib/shopify_api/rest/resources/2023_07/gift_card.rb +222 -0
- data/lib/shopify_api/rest/resources/2023_07/gift_card_adjustment.rb +122 -0
- data/lib/shopify_api/rest/resources/2023_07/image.rb +161 -0
- data/lib/shopify_api/rest/resources/2023_07/inventory_item.rb +112 -0
- data/lib/shopify_api/rest/resources/2023_07/inventory_level.rb +183 -0
- data/lib/shopify_api/rest/resources/2023_07/location.rb +171 -0
- data/lib/shopify_api/rest/resources/2023_07/locations_for_move.rb +60 -0
- data/lib/shopify_api/rest/resources/2023_07/marketing_event.rb +213 -0
- data/lib/shopify_api/rest/resources/2023_07/metafield.rb +348 -0
- data/lib/shopify_api/rest/resources/2023_07/mobile_platform_application.rb +114 -0
- data/lib/shopify_api/rest/resources/2023_07/order.rb +489 -0
- data/lib/shopify_api/rest/resources/2023_07/order_risk.rb +148 -0
- data/lib/shopify_api/rest/resources/2023_07/page.rb +198 -0
- data/lib/shopify_api/rest/resources/2023_07/payment.rb +144 -0
- data/lib/shopify_api/rest/resources/2023_07/payment_gateway.rb +147 -0
- data/lib/shopify_api/rest/resources/2023_07/payment_transaction.rb +114 -0
- data/lib/shopify_api/rest/resources/2023_07/payout.rb +101 -0
- data/lib/shopify_api/rest/resources/2023_07/policy.rb +73 -0
- data/lib/shopify_api/rest/resources/2023_07/price_rule.rb +227 -0
- data/lib/shopify_api/rest/resources/2023_07/product.rb +227 -0
- data/lib/shopify_api/rest/resources/2023_07/product_listing.rb +200 -0
- data/lib/shopify_api/rest/resources/2023_07/product_resource_feedback.rb +92 -0
- data/lib/shopify_api/rest/resources/2023_07/province.rb +136 -0
- data/lib/shopify_api/rest/resources/2023_07/recurring_application_charge.rb +176 -0
- data/lib/shopify_api/rest/resources/2023_07/redirect.rb +143 -0
- data/lib/shopify_api/rest/resources/2023_07/refund.rb +155 -0
- data/lib/shopify_api/rest/resources/2023_07/report.rb +125 -0
- data/lib/shopify_api/rest/resources/2023_07/resource_feedback.rb +77 -0
- data/lib/shopify_api/rest/resources/2023_07/script_tag.rb +159 -0
- data/lib/shopify_api/rest/resources/2023_07/shipping_zone.rb +87 -0
- data/lib/shopify_api/rest/resources/2023_07/shop.rb +222 -0
- data/lib/shopify_api/rest/resources/2023_07/smart_collection.rb +220 -0
- data/lib/shopify_api/rest/resources/2023_07/storefront_access_token.rb +91 -0
- data/lib/shopify_api/rest/resources/2023_07/tender_transaction.rb +97 -0
- data/lib/shopify_api/rest/resources/2023_07/theme.rb +127 -0
- data/lib/shopify_api/rest/resources/2023_07/transaction.rb +188 -0
- data/lib/shopify_api/rest/resources/2023_07/usage_charge.rb +106 -0
- data/lib/shopify_api/rest/resources/2023_07/user.rb +142 -0
- data/lib/shopify_api/rest/resources/2023_07/variant.rb +212 -0
- data/lib/shopify_api/rest/resources/2023_07/webhook.rb +172 -0
- data/lib/shopify_api/rest/resources/2023_10/abandoned_checkout.rb +194 -0
- data/lib/shopify_api/rest/resources/2023_10/access_scope.rb +62 -0
- data/lib/shopify_api/rest/resources/2023_10/apple_pay_certificate.rb +109 -0
- data/lib/shopify_api/rest/resources/2023_10/application_charge.rb +113 -0
- data/lib/shopify_api/rest/resources/2023_10/application_credit.rb +95 -0
- data/lib/shopify_api/rest/resources/2023_10/article.rb +269 -0
- data/lib/shopify_api/rest/resources/2023_10/asset.rb +122 -0
- data/lib/shopify_api/rest/resources/2023_10/assigned_fulfillment_order.rb +92 -0
- data/lib/shopify_api/rest/resources/2023_10/balance.rb +58 -0
- data/lib/shopify_api/rest/resources/2023_10/blog.rb +166 -0
- data/lib/shopify_api/rest/resources/2023_10/cancellation_request.rb +87 -0
- data/lib/shopify_api/rest/resources/2023_10/carrier_service.rb +120 -0
- data/lib/shopify_api/rest/resources/2023_10/checkout.rb +213 -0
- data/lib/shopify_api/rest/resources/2023_10/collect.rb +146 -0
- data/lib/shopify_api/rest/resources/2023_10/collection.rb +114 -0
- data/lib/shopify_api/rest/resources/2023_10/collection_listing.rb +159 -0
- data/lib/shopify_api/rest/resources/2023_10/comment.rb +287 -0
- data/lib/shopify_api/rest/resources/2023_10/country.rb +141 -0
- data/lib/shopify_api/rest/resources/2023_10/currency.rb +61 -0
- data/lib/shopify_api/rest/resources/2023_10/custom_collection.rb +191 -0
- data/lib/shopify_api/rest/resources/2023_10/customer.rb +333 -0
- data/lib/shopify_api/rest/resources/2023_10/customer_address.rb +215 -0
- data/lib/shopify_api/rest/resources/2023_10/deprecated_api_call.rb +61 -0
- data/lib/shopify_api/rest/resources/2023_10/discount_code.rb +226 -0
- data/lib/shopify_api/rest/resources/2023_10/dispute.rb +115 -0
- data/lib/shopify_api/rest/resources/2023_10/dispute_evidence.rb +121 -0
- data/lib/shopify_api/rest/resources/2023_10/dispute_file_upload.rb +85 -0
- data/lib/shopify_api/rest/resources/2023_10/draft_order.rb +279 -0
- data/lib/shopify_api/rest/resources/2023_10/event.rb +152 -0
- data/lib/shopify_api/rest/resources/2023_10/fulfillment.rb +235 -0
- data/lib/shopify_api/rest/resources/2023_10/fulfillment_event.rb +170 -0
- data/lib/shopify_api/rest/resources/2023_10/fulfillment_order.rb +318 -0
- data/lib/shopify_api/rest/resources/2023_10/fulfillment_request.rb +101 -0
- data/lib/shopify_api/rest/resources/2023_10/fulfillment_service.rb +134 -0
- data/lib/shopify_api/rest/resources/2023_10/gift_card.rb +222 -0
- data/lib/shopify_api/rest/resources/2023_10/gift_card_adjustment.rb +122 -0
- data/lib/shopify_api/rest/resources/2023_10/image.rb +161 -0
- data/lib/shopify_api/rest/resources/2023_10/inventory_item.rb +112 -0
- data/lib/shopify_api/rest/resources/2023_10/inventory_level.rb +183 -0
- data/lib/shopify_api/rest/resources/2023_10/location.rb +171 -0
- data/lib/shopify_api/rest/resources/2023_10/locations_for_move.rb +60 -0
- data/lib/shopify_api/rest/resources/2023_10/marketing_event.rb +213 -0
- data/lib/shopify_api/rest/resources/2023_10/metafield.rb +348 -0
- data/lib/shopify_api/rest/resources/2023_10/mobile_platform_application.rb +114 -0
- data/lib/shopify_api/rest/resources/2023_10/order.rb +489 -0
- data/lib/shopify_api/rest/resources/2023_10/order_risk.rb +148 -0
- data/lib/shopify_api/rest/resources/2023_10/page.rb +198 -0
- data/lib/shopify_api/rest/resources/2023_10/payment.rb +144 -0
- data/lib/shopify_api/rest/resources/2023_10/payment_gateway.rb +147 -0
- data/lib/shopify_api/rest/resources/2023_10/payment_transaction.rb +114 -0
- data/lib/shopify_api/rest/resources/2023_10/payout.rb +101 -0
- data/lib/shopify_api/rest/resources/2023_10/policy.rb +73 -0
- data/lib/shopify_api/rest/resources/2023_10/price_rule.rb +227 -0
- data/lib/shopify_api/rest/resources/2023_10/product.rb +227 -0
- data/lib/shopify_api/rest/resources/2023_10/product_listing.rb +200 -0
- data/lib/shopify_api/rest/resources/2023_10/product_resource_feedback.rb +92 -0
- data/lib/shopify_api/rest/resources/2023_10/province.rb +136 -0
- data/lib/shopify_api/rest/resources/2023_10/recurring_application_charge.rb +176 -0
- data/lib/shopify_api/rest/resources/2023_10/redirect.rb +143 -0
- data/lib/shopify_api/rest/resources/2023_10/refund.rb +155 -0
- data/lib/shopify_api/rest/resources/2023_10/report.rb +125 -0
- data/lib/shopify_api/rest/resources/2023_10/resource_feedback.rb +77 -0
- data/lib/shopify_api/rest/resources/2023_10/script_tag.rb +159 -0
- data/lib/shopify_api/rest/resources/2023_10/shipping_zone.rb +87 -0
- data/lib/shopify_api/rest/resources/2023_10/shop.rb +222 -0
- data/lib/shopify_api/rest/resources/2023_10/smart_collection.rb +220 -0
- data/lib/shopify_api/rest/resources/2023_10/storefront_access_token.rb +91 -0
- data/lib/shopify_api/rest/resources/2023_10/tender_transaction.rb +97 -0
- data/lib/shopify_api/rest/resources/2023_10/theme.rb +127 -0
- data/lib/shopify_api/rest/resources/2023_10/transaction.rb +188 -0
- data/lib/shopify_api/rest/resources/2023_10/usage_charge.rb +106 -0
- data/lib/shopify_api/rest/resources/2023_10/user.rb +142 -0
- data/lib/shopify_api/rest/resources/2023_10/variant.rb +212 -0
- data/lib/shopify_api/rest/resources/2023_10/webhook.rb +172 -0
- data/lib/shopify_api/rest/resources/2024_01/abandoned_checkout.rb +194 -0
- data/lib/shopify_api/rest/resources/2024_01/access_scope.rb +62 -0
- data/lib/shopify_api/rest/resources/2024_01/apple_pay_certificate.rb +109 -0
- data/lib/shopify_api/rest/resources/2024_01/application_charge.rb +113 -0
- data/lib/shopify_api/rest/resources/2024_01/application_credit.rb +95 -0
- data/lib/shopify_api/rest/resources/2024_01/article.rb +269 -0
- data/lib/shopify_api/rest/resources/2024_01/asset.rb +122 -0
- data/lib/shopify_api/rest/resources/2024_01/assigned_fulfillment_order.rb +92 -0
- data/lib/shopify_api/rest/resources/2024_01/balance.rb +58 -0
- data/lib/shopify_api/rest/resources/2024_01/blog.rb +166 -0
- data/lib/shopify_api/rest/resources/2024_01/cancellation_request.rb +87 -0
- data/lib/shopify_api/rest/resources/2024_01/carrier_service.rb +120 -0
- data/lib/shopify_api/rest/resources/2024_01/checkout.rb +213 -0
- data/lib/shopify_api/rest/resources/2024_01/collect.rb +146 -0
- data/lib/shopify_api/rest/resources/2024_01/collection.rb +114 -0
- data/lib/shopify_api/rest/resources/2024_01/collection_listing.rb +159 -0
- data/lib/shopify_api/rest/resources/2024_01/comment.rb +287 -0
- data/lib/shopify_api/rest/resources/2024_01/country.rb +141 -0
- data/lib/shopify_api/rest/resources/2024_01/currency.rb +61 -0
- data/lib/shopify_api/rest/resources/2024_01/custom_collection.rb +191 -0
- data/lib/shopify_api/rest/resources/2024_01/customer.rb +333 -0
- data/lib/shopify_api/rest/resources/2024_01/customer_address.rb +215 -0
- data/lib/shopify_api/rest/resources/2024_01/deprecated_api_call.rb +61 -0
- data/lib/shopify_api/rest/resources/2024_01/discount_code.rb +226 -0
- data/lib/shopify_api/rest/resources/2024_01/dispute.rb +115 -0
- data/lib/shopify_api/rest/resources/2024_01/dispute_evidence.rb +121 -0
- data/lib/shopify_api/rest/resources/2024_01/dispute_file_upload.rb +85 -0
- data/lib/shopify_api/rest/resources/2024_01/draft_order.rb +279 -0
- data/lib/shopify_api/rest/resources/2024_01/event.rb +152 -0
- data/lib/shopify_api/rest/resources/2024_01/fulfillment.rb +235 -0
- data/lib/shopify_api/rest/resources/2024_01/fulfillment_event.rb +170 -0
- data/lib/shopify_api/rest/resources/2024_01/fulfillment_order.rb +326 -0
- data/lib/shopify_api/rest/resources/2024_01/fulfillment_request.rb +101 -0
- data/lib/shopify_api/rest/resources/2024_01/fulfillment_service.rb +134 -0
- data/lib/shopify_api/rest/resources/2024_01/gift_card.rb +222 -0
- data/lib/shopify_api/rest/resources/2024_01/gift_card_adjustment.rb +122 -0
- data/lib/shopify_api/rest/resources/2024_01/image.rb +161 -0
- data/lib/shopify_api/rest/resources/2024_01/inventory_item.rb +112 -0
- data/lib/shopify_api/rest/resources/2024_01/inventory_level.rb +183 -0
- data/lib/shopify_api/rest/resources/2024_01/location.rb +171 -0
- data/lib/shopify_api/rest/resources/2024_01/locations_for_move.rb +60 -0
- data/lib/shopify_api/rest/resources/2024_01/marketing_event.rb +213 -0
- data/lib/shopify_api/rest/resources/2024_01/metafield.rb +348 -0
- data/lib/shopify_api/rest/resources/2024_01/mobile_platform_application.rb +114 -0
- data/lib/shopify_api/rest/resources/2024_01/order.rb +489 -0
- data/lib/shopify_api/rest/resources/2024_01/order_risk.rb +148 -0
- data/lib/shopify_api/rest/resources/2024_01/page.rb +198 -0
- data/lib/shopify_api/rest/resources/2024_01/payment.rb +144 -0
- data/lib/shopify_api/rest/resources/2024_01/payment_gateway.rb +147 -0
- data/lib/shopify_api/rest/resources/2024_01/payment_transaction.rb +114 -0
- data/lib/shopify_api/rest/resources/2024_01/payout.rb +101 -0
- data/lib/shopify_api/rest/resources/2024_01/policy.rb +73 -0
- data/lib/shopify_api/rest/resources/2024_01/price_rule.rb +227 -0
- data/lib/shopify_api/rest/resources/2024_01/product.rb +227 -0
- data/lib/shopify_api/rest/resources/2024_01/product_listing.rb +200 -0
- data/lib/shopify_api/rest/resources/2024_01/product_resource_feedback.rb +92 -0
- data/lib/shopify_api/rest/resources/2024_01/province.rb +136 -0
- data/lib/shopify_api/rest/resources/2024_01/recurring_application_charge.rb +176 -0
- data/lib/shopify_api/rest/resources/2024_01/redirect.rb +143 -0
- data/lib/shopify_api/rest/resources/2024_01/refund.rb +155 -0
- data/lib/shopify_api/rest/resources/2024_01/report.rb +125 -0
- data/lib/shopify_api/rest/resources/2024_01/resource_feedback.rb +77 -0
- data/lib/shopify_api/rest/resources/2024_01/script_tag.rb +159 -0
- data/lib/shopify_api/rest/resources/2024_01/shipping_zone.rb +87 -0
- data/lib/shopify_api/rest/resources/2024_01/shop.rb +222 -0
- data/lib/shopify_api/rest/resources/2024_01/smart_collection.rb +220 -0
- data/lib/shopify_api/rest/resources/2024_01/storefront_access_token.rb +91 -0
- data/lib/shopify_api/rest/resources/2024_01/tender_transaction.rb +97 -0
- data/lib/shopify_api/rest/resources/2024_01/theme.rb +127 -0
- data/lib/shopify_api/rest/resources/2024_01/transaction.rb +188 -0
- data/lib/shopify_api/rest/resources/2024_01/usage_charge.rb +106 -0
- data/lib/shopify_api/rest/resources/2024_01/user.rb +142 -0
- data/lib/shopify_api/rest/resources/2024_01/variant.rb +212 -0
- data/lib/shopify_api/rest/resources/2024_01/webhook.rb +172 -0
- data/lib/shopify_api/utils/attributes_comparator.rb +85 -0
- data/lib/shopify_api/utils/hmac_validator.rb +2 -2
- data/lib/shopify_api/version.rb +1 -1
- data/lib/shopify_api/webhooks/handler.rb +24 -1
- data/lib/shopify_api/webhooks/registration.rb +21 -6
- data/lib/shopify_api/webhooks/registrations/event_bridge.rb +1 -1
- data/lib/shopify_api/webhooks/registrations/http.rb +1 -1
- data/lib/shopify_api/webhooks/registrations/pub_sub.rb +2 -1
- data/lib/shopify_api/webhooks/registry.rb +49 -7
- data/lib/shopify_api/webhooks/request.rb +10 -0
- data/shopify_api.gemspec +2 -3
- metadata +234 -29
- data/.github/workflows/stale.yml +0 -43
- data/docs/issues.md +0 -39
- data/docs/usage/session_storage.md +0 -46
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d335207bd3fc2cf7798f48f3b7a0ff9ea05c05969e189423a9cd89a06c9d155b
|
|
4
|
+
data.tar.gz: 873f2d725e8e1b84e4d8fc617e1b9aa6d3ddec6a9791646a76fb2f946d39ac9b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 994fa799e6f84043aeec3ffd7c49789588299cf55d40de6bfe091b1b3d935fa99312666d78addb4238532345d6cae97d65f3785ef4fc38a576dfdc9eaa127ca9
|
|
7
|
+
data.tar.gz: 2ff189f2ecb5bb7a9ead4852162857c6e13a29f5fa2229e15378b1ba05ff92cd9c0a3e663161f4f17285a843a88882b53a358c1070ca881e49ba185be98184e7
|
data/.github/CODEOWNERS
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
* @
|
|
1
|
+
* @Shopify/client-libraries-app-templates
|
data/.github/workflows/build.yml
CHANGED
|
@@ -11,7 +11,6 @@ jobs:
|
|
|
11
11
|
strategy:
|
|
12
12
|
matrix:
|
|
13
13
|
version:
|
|
14
|
-
- 2.7
|
|
15
14
|
- 3.0
|
|
16
15
|
- 3.1
|
|
17
16
|
steps:
|
|
@@ -20,6 +19,10 @@ jobs:
|
|
|
20
19
|
uses: ruby/setup-ruby@v1
|
|
21
20
|
with:
|
|
22
21
|
ruby-version: ${{ matrix.version }}
|
|
22
|
+
- name: Install OpenSSL
|
|
23
|
+
run: |
|
|
24
|
+
sudo apt-get update
|
|
25
|
+
sudo apt-get install -y libssl-dev
|
|
23
26
|
- name: Run Bundle Commands
|
|
24
27
|
run: |
|
|
25
28
|
bundle config set --with docs
|
data/.rubocop.yml
CHANGED
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# Breaking change notice for version 10.0.0
|
|
2
|
+
|
|
3
|
+
We've rewritten this library for v10, so that it provides all essential features for a Shopify app without depending on the [Active Resource](https://github.com/rails/activeresource) or [graphql-client](https://github.com/github/graphql-client) libraries.
|
|
4
|
+
|
|
5
|
+
#### Table of Contents
|
|
6
|
+
- [New Features](#new-features)
|
|
7
|
+
- [Upgrade Guide](#upgrade-guide)
|
|
8
|
+
- [1. Configuration Changes](#1-configuration-changes)
|
|
9
|
+
- [2. Session Changes](#2-session-changes)
|
|
10
|
+
- [ShopifyAPI::Auth::Session](#shopifyapiauthsession)
|
|
11
|
+
- [3. API Client Changes](#3-api-client-changes)
|
|
12
|
+
- [GraphQL](#graphql)
|
|
13
|
+
- [Rest](#rest)
|
|
14
|
+
- [Using Rest Resources](#using-rest-resources)
|
|
15
|
+
- [Using Rest Admin Client](#using-rest-admin-client)
|
|
16
|
+
- [Generic HTTP Client](#generic-http-client)
|
|
17
|
+
- [Useful References](#useful-references)
|
|
18
|
+
|
|
19
|
+
## New Features
|
|
20
|
+
Here are the main features version 10 provides:
|
|
21
|
+
|
|
22
|
+
- OAuth support, both with online and offline tokens.
|
|
23
|
+
- Full, transparent support for JWT sessions for embedded apps and cookies for non-embedded ones.
|
|
24
|
+
- Removal of support for 3rd party cookies which are increasingly more difficult to use with modern browsers.
|
|
25
|
+
- Admin API support
|
|
26
|
+
- Auto-generated, version-specific REST resources which are similar to `ActiveResource` (though not identical), that provide methods for all endpoints defined in our [REST API reference](https://shopify.dev/docs/api/admin-rest), as well as direct definition of known attributes.
|
|
27
|
+
- A GraphQL client that doesn't rely on the ActiveResource implementation for REST.
|
|
28
|
+
- Webhook management, with features for adding handlers and registering them with Shopify.
|
|
29
|
+
- Storefront GraphQL API support
|
|
30
|
+
|
|
31
|
+
Please refer to the [Getting Started](docs/getting_started.md) guide in this repository for instructions on how to use each of these components.
|
|
32
|
+
|
|
33
|
+
### Reasoning
|
|
34
|
+
- Browsers stopped allowing 3rd party cookies, even after jumping through several [ITP](https://webkit.org/tracking-prevention-policy/) hoops, which made the code
|
|
35
|
+
even more more complex and error prone.
|
|
36
|
+
- Session tokens and `authenticatedFetch` were introduced to make it possible for apps to authenticate requests without depending on cookies.
|
|
37
|
+
- The gem was too closely tied to rails on how it sets up sessions (which worked for cookies), so we had to detach the library from rails
|
|
38
|
+
in order to be able to work with both cookies and session tokens.
|
|
39
|
+
- We previously relied on an `omniauth-oauth2` strategy that worked fine when cookies were the only option. But it became increasingly
|
|
40
|
+
awkward when we moved towards session tokens, which meant re-writing the OAuth process in the gem as a whole.
|
|
41
|
+
- Introducing a DB stored session persistence rather than cookie stored.
|
|
42
|
+
- Most feedback we got previously was due to the `ActiveResource` classes failing out of sync with the API because:
|
|
43
|
+
1. We have some endpoints that didn't 100% follow REST convention;
|
|
44
|
+
2. We had a single class for each resource and manually maintained custom methods that didn't work across API versions.
|
|
45
|
+
|
|
46
|
+
- To solve the REST problems:
|
|
47
|
+
- We were adding support for auto-generated, version-specific resources for other languages, we decided to add them for Ruby too.
|
|
48
|
+
But those same instances where the API doesn't follow convention would become problematic. Thus we opted for the most explicit option where **every** method was "custom" rather than just some, so that the resources were always consistent.
|
|
49
|
+
|
|
50
|
+
## Upgrade Guide
|
|
51
|
+
With this, a lot changed in how apps access the library. Here are the updates you should make when migrating to v10:
|
|
52
|
+
|
|
53
|
+
### 1. Configuration Changes
|
|
54
|
+
#### Removed ShopifyAPI::Base
|
|
55
|
+
`ShopifyAPI::Base` class has been removed. Previous versions of this gem used this class to configure API request setting like:
|
|
56
|
+
- **API request version**
|
|
57
|
+
- **Previously**: Set by `ShopifyAPI::Base.api_version = "xxxx"`
|
|
58
|
+
- **Change**: Configured `api_version` in [ShopifyAPI::Context.setup](#shopifyapicontextsetup)
|
|
59
|
+
- **Set `User-Agent` on API request header**
|
|
60
|
+
- **Previously**: Set by `ShopifyAPI::Base.header["User-Agent"] = "xxxxx"`
|
|
61
|
+
- **Change**: Configured `user_agent_prefix` in [ShopifyAPI::Context.setup](#shopifyapicontextsetup)
|
|
62
|
+
- **Set custom headers on API requests**
|
|
63
|
+
- **Previously**: Set by `ShopifyAPI::Base.header["User-Agent"] = "xxxxx"`
|
|
64
|
+
- **Change**: Custom headers can be added to requests when you use [`ShopifyAPI::Clients::HttpRequest`](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/clients/http_request.rb#L14)
|
|
65
|
+
|
|
66
|
+
#### ShopifyAPI::Context.setup
|
|
67
|
+
Initializing the `ShopifyAPI::Context` with the parameters of your app by calling `ShopifyAPI::Context.setup` (example below) when your app starts (e.g `application.rb` in a Rails app).
|
|
68
|
+
This class holds global configurations for your app and defines how the library behaves.
|
|
69
|
+
|
|
70
|
+
```ruby
|
|
71
|
+
ShopifyAPI::Context.setup(
|
|
72
|
+
api_key: "<api-key>",
|
|
73
|
+
api_secret_key: "<api-secret-key>",
|
|
74
|
+
host_name: "<application-host-name>",
|
|
75
|
+
scope: "read_orders,read_products,etc",
|
|
76
|
+
is_embedded: true, # Set to true if you are building an embedded app
|
|
77
|
+
is_private: false, # Set to true if you are building a private app
|
|
78
|
+
api_version: "2021-01" # The version of the API you would like to use
|
|
79
|
+
user_agent_prefix: "<user_agent_prefix>" # Set a custom prefix for "User-Agent" header when making API requests
|
|
80
|
+
###
|
|
81
|
+
)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
See other fields accepted during `ShopifyAPI::Context` setup in [context.rb](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/context.rb).
|
|
85
|
+
|
|
86
|
+
### 2. Session Changes
|
|
87
|
+
`ShopifyAPI::Base` class has been removed, you can no longer activate session using `ShopifyAPI::Base.activate_session`. Instead, you can use
|
|
88
|
+
`ShopifyAPI::Context.activate_session` to set the active session ([`ShopifyAPI::Auth::Session`](#shopifyapiauthsesion)).
|
|
89
|
+
If you're using the [ShopifyApp](https://github.com/Shopify/shopify_app) gem in a Rails app, you don't have to manually set the active session if you use the included `ActiveSupport` concerns. See [Session Docs](https://github.com/Shopify/shopify_app/blob/main/docs/shopify_app/sessions.md) from ShopifyApp gem.
|
|
90
|
+
|
|
91
|
+
You can also manually specify the session to use without setting the active session by passing in the session object ([`ShopifyAPI::Auth::Session`](#shopifyapiauthsesion)) when instantiating new `ShopifyAPI::Clients` objects.
|
|
92
|
+
If session is `nil`, it'll default to use active session from `ShopifyAPI::Context.active_session`.
|
|
93
|
+
|
|
94
|
+
```ruby
|
|
95
|
+
# Manually specifying a session (ShopifyAPI::Auth::Session) in API clients.
|
|
96
|
+
|
|
97
|
+
# GraphQL Client
|
|
98
|
+
graphql_client = ShopifyAPI::Clients::Graphql::Admin.new(session: session)
|
|
99
|
+
|
|
100
|
+
# REST Client
|
|
101
|
+
rest_client = ShopifyAPI::Clients::Rest::Admin.new(session: session)
|
|
102
|
+
|
|
103
|
+
# Using REST Resources
|
|
104
|
+
rest_resource = ShopifyAPI::Shop.new(session: session)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
##### ShopifyAPI::Auth::Session
|
|
108
|
+
If you're building a Rails app, it is highly recommended for you to use the [`ShopifyApp` gem to perform OAuth and session storage](https://github.com/Shopify/shopify_app/blob/main/docs/shopify_app/sessions.md).
|
|
109
|
+
|
|
110
|
+
If you're not using Rails, please see the [Performing OAuth](./docs/usage/oauth.md) guide on how to perform OAuth to retrieve and store sessions.
|
|
111
|
+
|
|
112
|
+
### 3. API Client Changes
|
|
113
|
+
|
|
114
|
+
#### GraphQL
|
|
115
|
+
- We deprecated the dependency of [graphql-client](https://rubygems.org/gems/graphql-client) gem. You must refactor your existing query and response parsing to use our new GraphQL HTTP Client classes.
|
|
116
|
+
- [Admin API Client](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/clients/graphql/admin.rb)
|
|
117
|
+
- [Storefront API Client](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/clients/graphql/storefront.rb)
|
|
118
|
+
- There is no need to dump the schema to a local JSON file before using it anymore.
|
|
119
|
+
- The api version used to be set on `ShopifyAPI::Base.api_version`, however that's now deprecated.
|
|
120
|
+
You may specify a specific version when initializing your client, or it'll infer to `ShopifyAPI::Context.api_version` as default.
|
|
121
|
+
|
|
122
|
+
⚠️ See other Admin API usage in ["Make a GraphQL API call" documentation](https://github.com/Shopify/shopify-api-ruby/blob/main/docs/usage/graphql.md).
|
|
123
|
+
|
|
124
|
+
⚠️ See Storefront API client usage in ["Make a Storefront API call" documentation](https://github.com/Shopify/shopify-api-ruby/blob/main/docs/usage/graphql.md).
|
|
125
|
+
|
|
126
|
+
###### Example refactor
|
|
127
|
+
ShopifyAPI Client v9
|
|
128
|
+
```ruby
|
|
129
|
+
ShopifyAPI::Base.api_version = "2023-04"
|
|
130
|
+
client = ShopifyAPI::GraphQL.client
|
|
131
|
+
|
|
132
|
+
SHOP_NAME_QUERY = client.parse <<-'GRAPHQL'
|
|
133
|
+
{
|
|
134
|
+
shop {
|
|
135
|
+
name
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
GRAPHQL
|
|
139
|
+
|
|
140
|
+
result = client.query(SHOP_NAME_QUERY)
|
|
141
|
+
shop_name = result.data.shop.name
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
ShopifyAPI Client v10+
|
|
145
|
+
```ruby
|
|
146
|
+
client = ShopifyAPI::Clients::Graphql::Admin.new(session: session, api_version: "2023-04")
|
|
147
|
+
# session must be an instance of ShopifyAPI::Auth::Session, see Section - [2. Session Changes]
|
|
148
|
+
|
|
149
|
+
SHOP_NAME_QUERY =<<~QUERY
|
|
150
|
+
{
|
|
151
|
+
shop {
|
|
152
|
+
name
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
QUERY
|
|
156
|
+
|
|
157
|
+
response = client.query(query: query)
|
|
158
|
+
shop_name = response.body["data"]["shop"]["name"]
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
#### REST
|
|
162
|
+
##### Using REST Resources
|
|
163
|
+
- The use of `ActiveResource` has been deprecated, REST API requests must now be refactored to use the new format that better represents our REST API schema.
|
|
164
|
+
- Previously the api_version is specified in `ShopifyAPI::Base.api_version`, that has been deprecated. It's now configured in [`ShopifyAPI::Context.setup`](#shopifyapicontextsetup).
|
|
165
|
+
|
|
166
|
+
###### Example refactor
|
|
167
|
+
⚠️ You can find detailed examples on how each of the resource endpoints work in our [REST reference documentation](https://shopify.dev/docs/api/admin-rest).
|
|
168
|
+
|
|
169
|
+
Please see below a (non-exhaustive) list of common replacements to guide you in your updates, using the `Order` resource as an example.
|
|
170
|
+
For more detail, see [`order` reference documentation's](https://shopify.dev/docs/api/admin-rest/2023-07/resources/order#top) ruby example.
|
|
171
|
+
|
|
172
|
+
|Usage | Before| After |
|
|
173
|
+
| -----| --- | --- |
|
|
174
|
+
|Find partially paid orders| `Order.find(:all, params: {financial_status: "partially_paid"})`| `Order.all(financial_status: "partially_paid")` |
|
|
175
|
+
|Find order by ID `<id>` | `Order.find(<id>)` | `Order.find(id: <id>)` |
|
|
176
|
+
|Update an order's fulfillment status|`order = Order.find<id>`<br/>`order.fulfillment_status = "fulfilled"`<br/>`order.note = "Fulfilled on September 6, 2023"`<br/>`order.save`|`order = Order.find(id: <id>)`<br/>`order.fulfillment_status = "fulfilled"`<br/>`order.note = "Fulfilled on September 6, 2023"`<br/>`order.save!`|
|
|
177
|
+
|Close an order| `order = Order.new(<id>)`<br/>`order.post(:close)` | `order = Order.find(id: <id>)`<br/>`order.close` |
|
|
178
|
+
|Delete an order| `order = Order.new(<id>)`<br/>`order.delete` | `Order.delete(id: <id>)` |
|
|
179
|
+
|
|
180
|
+
###### Note on resource connections
|
|
181
|
+
Previously we added helper methods to load related resource connections like [`orders.transactions`](https://github.com/Shopify/shopify-api-ruby/blob/97eec35fb76afbce1d948cee2963791457e934da/lib/shopify_api/resources/order.rb#L20).
|
|
182
|
+
After the upgrade, only connected properties listed in the REST API will be supported.
|
|
183
|
+
|
|
184
|
+
For example:
|
|
185
|
+
- `order.transactions` is not supported because `transactions` is not a property of the `Order` resource.
|
|
186
|
+
- `order.customer` is supported because `customer` is a property of the `Order` resource.
|
|
187
|
+
|
|
188
|
+
[See the full list of `Order` properties here.](https://shopify.dev/docs/api/admin-rest/2023-07/resources/order#resource-object)
|
|
189
|
+
|
|
190
|
+
##### Using REST Admin Client
|
|
191
|
+
If you do not want to use the REST resource classes, you can use our REST Admin client directly to make HTTP requests.
|
|
192
|
+
|
|
193
|
+
⚠️ See other REST client usage in ["Make a REST API call" documentation](https://github.com/Shopify/shopify-api-ruby/blob/main/docs/usage/rest.md).
|
|
194
|
+
|
|
195
|
+
Example:
|
|
196
|
+
```ruby
|
|
197
|
+
# Create a new client.
|
|
198
|
+
client = ShopifyAPI::Clients::Rest::Admin.new(session: session)
|
|
199
|
+
|
|
200
|
+
# Update title for product with ID <id>
|
|
201
|
+
body = {
|
|
202
|
+
product: {
|
|
203
|
+
title: "My cool product"
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
# Use `client.put` to send your request to the specified Shopify Admin REST API endpoint.
|
|
208
|
+
client.put(path: "products/<id>.json", body: body)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
#### Generic HTTP Client
|
|
212
|
+
We added a new generic [HttpClient](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/clients/http_client.rb) wrapper to make requests and handle Shopify specific errors. All of the REST and GraphQL Clients use this HTTP Client in its foundation.
|
|
213
|
+
You can use this to make direct HTTP API calls easily.
|
|
214
|
+
See how the GraphQL Client makes a request with this HttpClient class in its [implementation here](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/clients/graphql/client.rb#L33-L45).
|
|
215
|
+
|
|
216
|
+
## Useful references
|
|
217
|
+
|
|
218
|
+
ShopifyAPI:
|
|
219
|
+
- [Performing OAuth](https://github.com/Shopify/shopify-api-ruby/blob/main/docs/usage/oauth.md)
|
|
220
|
+
- [Make a GraphQL API Call](https://github.com/Shopify/shopify-api-ruby/blob/main/docs/usage/graphql.md)
|
|
221
|
+
- [Make a Storefront API Call (GraphQL)](https://github.com/Shopify/shopify-api-ruby/blob/main/docs/usage/graphql_storefront.md)
|
|
222
|
+
- [Make a REST API Call](https://github.com/Shopify/shopify-api-ruby/blob/main/docs/usage/rest.md)
|
|
223
|
+
- [Webhooks](https://github.com/Shopify/shopify-api-ruby/blob/main/docs/usage/webhooks.md)
|
|
224
|
+
|
|
225
|
+
ShopifyApp Gem (Rails):
|
|
226
|
+
- [Authentication](https://github.com/Shopify/shopify_app/blob/main/docs/shopify_app/authentication.md)
|
|
227
|
+
- [Sessions](https://github.com/Shopify/shopify_app/blob/main/docs/shopify_app/sessions.md)
|
|
228
|
+
|
|
229
|
+
Shopify API:
|
|
230
|
+
- [Admin GraphQL Reference](https://shopify.dev/docs/api/admin-graphql)
|
|
231
|
+
- [Admin REST Reference](https://shopify.dev/docs/api/admin-rest)
|
data/CHANGELOG.md
CHANGED
|
@@ -4,11 +4,48 @@ Note: For changes to the API, see https://shopify.dev/changelog?filter=api
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 14.0.0
|
|
8
|
+
- [#1274](https://github.com/Shopify/shopify-api-ruby/pull/1274) ⚠️ [Breaking] Update sorbet and rbi dependencies. Remove support for ruby 2.7. Minimum required Ruby version is 3.0
|
|
9
|
+
- [#1282](https://github.com/Shopify/shopify-api-ruby/pull/1282) Fixes a bug where diffing attributes to update not take into account of Array changes and required ids.
|
|
10
|
+
- [#1254](https://github.com/Shopify/shopify-api-ruby/pull/1254) Introduce token exchange API for fetching access tokens. This feature is currently unstable and cannot be used yet.
|
|
11
|
+
- [#1268](https://github.com/Shopify/shopify-api-ruby/pull/1268) Add [new webhook handler interface](https://github.com/Shopify/shopify-api-ruby/blob/main/docs/usage/webhooks.md#create-a-webhook-handler) to provide `webhook_id ` and `api_version` information to webhook handlers.
|
|
12
|
+
- [#1275](https://github.com/Shopify/shopify-api-ruby/pull/1275) Allow adding custom headers in REST Resource HTTP calls.
|
|
13
|
+
|
|
14
|
+
## 13.4.0
|
|
15
|
+
- [#1210](https://github.com/Shopify/shopify-api-ruby/pull/1246) Add context option `response_as_struct` to allow GraphQL API responses to be accessed via dot notation.
|
|
16
|
+
- [#1257](https://github.com/Shopify/shopify-api-ruby/pull/1257) Add `api_call_limit` and `retry_request_after` to REST resources to expose rate limit information.
|
|
17
|
+
- [#1257](https://github.com/Shopify/shopify-api-ruby/pull/1257) Added support for the 2024-01 API version. This also includes a fix for the `for_hash` option when creating resources.
|
|
18
|
+
|
|
19
|
+
## 13.3.1
|
|
20
|
+
|
|
21
|
+
- [#1244](https://github.com/Shopify/shopify-api-ruby/pull/1244) Add `expired?` to `ShopifyAPI::Auth::Session` to check if the session is expired (mainly for user sessions)
|
|
22
|
+
- [#1249](https://github.com/Shopify/shopify-api-ruby/pull/1249) Fix bug where mandatory webhooks could not be processed
|
|
23
|
+
- [#1250](https://github.com/Shopify/shopify-api-ruby/pull/1250) Remove rails methods .empty? .present? that were breaking CI
|
|
24
|
+
|
|
25
|
+
## 13.3.0
|
|
26
|
+
|
|
27
|
+
- [#1241](https://github.com/Shopify/shopify-api-ruby/pull/1241) Add `api_host` to `ShopifyAPI::Context.setup`, allowing the API host to be overridden in `ShopifyAPI::Clients::HttpClient`. This context option is intended for internal Shopify use only.
|
|
28
|
+
- [#1237](https://github.com/Shopify/shopify-api-ruby/pull/1237) Skip mandatory webhook topic registration/unregistrations
|
|
29
|
+
- [#1239](https://github.com/Shopify/shopify-api-ruby/pull/1239) Update `OAuth.validate_auth_callback` to use `ShopifyApi::Clients::HttpClient`.
|
|
30
|
+
|
|
31
|
+
## 13.2.0
|
|
32
|
+
|
|
33
|
+
- [#1183](https://github.com/Shopify/shopify-api-ruby/pull/1189) Added string array support for fields parameter in Webhook::Registry
|
|
34
|
+
- [1208](https://github.com/Shopify/shopify-api-ruby/pull/1208) Fix CustomerAddress and FulfillmentRequest methods
|
|
35
|
+
- [1225](https://github.com/Shopify/shopify-api-ruby/pull/1225) Support for 2023_10 API version
|
|
36
|
+
- [#1186](https://github.com/Shopify/shopify-api-ruby/pull/1186) Extend webhook registration to support metafield_namespaces
|
|
37
|
+
|
|
38
|
+
## 13.1.0
|
|
39
|
+
|
|
40
|
+
- [#1183](https://github.com/Shopify/shopify-api-ruby/pull/1183) Added support for API version 2023-07
|
|
41
|
+
- [#1157](https://github.com/Shopify/shopify-api-ruby/pull/1157) Fix an issue where read-only attributes are included when saving REST resources
|
|
42
|
+
- [#1169](https://github.com/Shopify/shopify-api-ruby/pull/1169) Unpin zeitwerk version from 2.6.5
|
|
43
|
+
|
|
7
44
|
## 13.0.0
|
|
8
45
|
|
|
9
46
|
- [#1140](https://github.com/Shopify/shopify-api-ruby/pull/1140) ⚠️ [Breaking] Reformat Http error messages to be JSON parsable.
|
|
10
47
|
- [#1142](https://github.com/Shopify/shopify-api-ruby/issues/1142) Restore API version 2022-04, in alignment with [this](https://shopify.dev/changelog/action-required-support-for-api-version-2022-04-extended-to-june-30-2023) changelog notice.
|
|
11
|
-
- [#1155](https://github.com/Shopify/shopify-api-ruby/pull/1155) ⚠️ [Breaking] Remove session storage that was deprecated with [#1055](https://github.com/Shopify/shopify-api-ruby/pull/1055). ⚠️ [Breaking] GraphQL Proxy now requires `session` to be passed as an argument.
|
|
48
|
+
- [#1155](https://github.com/Shopify/shopify-api-ruby/pull/1155) ⚠️ [Breaking] Remove session storage that was deprecated with [#1055](https://github.com/Shopify/shopify-api-ruby/pull/1055). To upgrade, remove `session_storage` from your API context block. ⚠️ [Breaking] GraphQL Proxy now requires `session` to be passed as an argument.
|
|
12
49
|
- [#1150](https://github.com/Shopify/shopify-api-ruby/pull/1150) [Patch] Add support for Event topic names.
|
|
13
50
|
|
|
14
51
|
## 12.5.0
|
data/CODE_OF_CONDUCT.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Contributor Code of Conduct
|
|
2
|
+
|
|
3
|
+
As contributors and maintainers of this project, and in the interest of
|
|
4
|
+
fostering an open and welcoming community, we pledge to respect all
|
|
5
|
+
people who contribute through reporting issues, posting feature
|
|
6
|
+
requests, updating documentation, submitting pull requests or patches,
|
|
7
|
+
and other activities.
|
|
8
|
+
|
|
9
|
+
We are committed to making participation in this project a
|
|
10
|
+
harassment-free experience for everyone, regardless of level of
|
|
11
|
+
experience, gender, gender identity and expression, sexual orientation,
|
|
12
|
+
disability, personal appearance, body size, race, ethnicity, age,
|
|
13
|
+
religion, or nationality.
|
|
14
|
+
|
|
15
|
+
Examples of unacceptable behavior by participants include:
|
|
16
|
+
|
|
17
|
+
- The use of sexualized language or imagery
|
|
18
|
+
- Personal attacks
|
|
19
|
+
- Trolling or insulting/derogatory comments
|
|
20
|
+
- Public or private harassment
|
|
21
|
+
- Publishing other's private information, such as physical or electronic
|
|
22
|
+
addresses, without explicit permission
|
|
23
|
+
- Other unethical or unprofessional conduct
|
|
24
|
+
|
|
25
|
+
Project maintainers have the right and responsibility to remove, edit,
|
|
26
|
+
or reject comments, commits, code, wiki edits, issues, and other
|
|
27
|
+
contributions that are not aligned to this Code of Conduct, or to ban
|
|
28
|
+
temporarily or permanently any contributor for other behaviors that they
|
|
29
|
+
deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
+
|
|
31
|
+
By adopting this Code of Conduct, project maintainers commit themselves
|
|
32
|
+
to fairly and consistently applying these principles to every aspect of
|
|
33
|
+
managing this project. Project maintainers who do not follow or enforce
|
|
34
|
+
the Code of Conduct may be permanently removed from the project team.
|
|
35
|
+
|
|
36
|
+
This Code of Conduct applies both within project spaces and in public
|
|
37
|
+
spaces when an individual is representing the project or its community.
|
|
38
|
+
|
|
39
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may
|
|
40
|
+
be reported by contacting a project maintainer at <opensource@shopify.com>.
|
|
41
|
+
All complaints will be reviewed and investigated and will result in a response
|
|
42
|
+
that is deemed necessary and appropriate to the circumstances. Maintainers are
|
|
43
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
|
44
|
+
|
|
45
|
+
This Code of Conduct is adapted from the Contributor Covenant, version
|
|
46
|
+
1.3.0, available from http://contributor-covenant.org/version/1/3/0/
|
data/CONTRIBUTING.md
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
|
|
2
2
|
Submitting Issues
|
|
3
3
|
-----------------
|
|
4
|
+
Submitting Issues
|
|
4
5
|
|
|
5
6
|
Please open an issue here if you encounter a specific bug with this API client library or if something is documented here https://shopify.dev/docs/apps but is missing from this package.
|
|
6
7
|
|
|
7
8
|
General questions about the Shopify API and usage of this package (not necessarily a bug) should be posted on the [Shopify forums](https://community.shopify.com/c/partners-and-developers/ct-p/appdev).
|
|
8
9
|
|
|
9
10
|
When in doubt, post on the forum first. You'll likely have your questions answered more quickly if you post there; more people monitor the forum than Github.
|
|
11
|
+
|
|
12
|
+
In order for us to best triage the issue, please include steps to reproduce the issue as well as the impacted feature.
|
|
13
|
+
|
|
14
|
+
## Roadmap
|
|
15
|
+
|
|
16
|
+
The focus of development efforts by maintainers of this project a roadmap will be proposed via PR and accessible at any point in the ROADMAP.md file.
|
|
17
|
+
|
|
18
|
+
Working with a pull request modify the [ROADMAP.md](https://github.com/Shopify/shopify-api-ruby/blob/aa0b7f9a5a9095ca11f3f93f9aecc72e8daa6bce/ROADMAP.md) allows us to invite community feedback on the direction while not adding another communication avenue. While there are certainly better tools for the job than a markdown file for this, we are aiming to keep a minimal toolset to help us better manage the communication channels that we have open.
|
|
19
|
+
|
|
20
|
+
If there are concerns with the direction and priorities of the maintainers, this roadmap PR is the appropriate place to share your concerns.
|
|
21
|
+
|
|
22
|
+
## Submitting Pull Requests
|
|
23
|
+
|
|
24
|
+
We welcome pull requests and help from the community! PRs fixing bugs will take priority to triaging proposed net new functionality. If you do want to add a feature, we recommend opening an issue first exploring the appetite of the community / maintainers to ensure there is alignment on direction before you spend time on the PR.
|
|
25
|
+
|
|
26
|
+
## Gem Architecture
|
|
27
|
+
Understanding how all the components of the Shopify App development stack work together will help best understand what level of abstraction a feature is meant to be applied. Please consider this architecture before introducing new functionally to ensure it is in the right place:
|
|
28
|
+
|
|
29
|
+
| Gem Name | Job |
|
|
30
|
+
|---|---|
|
|
31
|
+
| Shopify API (this gem) | Obtain a session, clients for APIs (REST, GraphQL), error handling, webhook management |
|
|
32
|
+
| REST Resources | Interfaces to the APIs. Response casting into defined objects with attributes/methods |
|
|
33
|
+
| Shopify App | Build Shopify app using Rails conventions. Oauth, webhook processing, persistence, etc |
|
|
34
|
+
| App Template | Template demonstrating how to use all these components in one starting boilerplate application |
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
shopify_api (
|
|
4
|
+
shopify_api (14.0.0)
|
|
5
5
|
activesupport
|
|
6
6
|
concurrent-ruby
|
|
7
7
|
hash_diff
|
|
@@ -11,62 +11,74 @@ PATH
|
|
|
11
11
|
openssl
|
|
12
12
|
securerandom
|
|
13
13
|
sorbet-runtime
|
|
14
|
-
zeitwerk (~> 2.5
|
|
14
|
+
zeitwerk (~> 2.5)
|
|
15
15
|
|
|
16
16
|
GEM
|
|
17
17
|
remote: https://rubygems.org/
|
|
18
18
|
specs:
|
|
19
|
-
activesupport (7.
|
|
19
|
+
activesupport (7.1.3)
|
|
20
|
+
base64
|
|
21
|
+
bigdecimal
|
|
20
22
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
23
|
+
connection_pool (>= 2.2.5)
|
|
24
|
+
drb
|
|
21
25
|
i18n (>= 1.6, < 2)
|
|
22
26
|
minitest (>= 5.1)
|
|
27
|
+
mutex_m
|
|
23
28
|
tzinfo (~> 2.0)
|
|
24
29
|
addressable (2.8.0)
|
|
25
30
|
public_suffix (>= 2.0.2, < 5.0)
|
|
26
31
|
ast (2.4.2)
|
|
32
|
+
base64 (0.2.0)
|
|
33
|
+
bigdecimal (3.1.6)
|
|
27
34
|
byebug (11.1.3)
|
|
28
35
|
coderay (1.1.3)
|
|
29
|
-
concurrent-ruby (1.2.
|
|
36
|
+
concurrent-ruby (1.2.3)
|
|
37
|
+
connection_pool (2.4.1)
|
|
30
38
|
crack (0.4.5)
|
|
31
39
|
rexml
|
|
32
|
-
|
|
40
|
+
drb (2.2.0)
|
|
41
|
+
ruby2_keywords
|
|
42
|
+
erubi (1.12.0)
|
|
33
43
|
fakefs (1.4.1)
|
|
34
44
|
hash_diff (1.1.1)
|
|
35
45
|
hashdiff (1.0.1)
|
|
36
46
|
httparty (0.21.0)
|
|
37
47
|
mini_mime (>= 1.0.0)
|
|
38
48
|
multi_xml (>= 0.5.2)
|
|
39
|
-
i18n (1.
|
|
49
|
+
i18n (1.14.1)
|
|
40
50
|
concurrent-ruby (~> 1.0)
|
|
41
51
|
json (2.6.2)
|
|
42
|
-
jwt (2.7.
|
|
43
|
-
language_server-protocol (3.17.0.1)
|
|
52
|
+
jwt (2.7.1)
|
|
44
53
|
method_source (1.0.0)
|
|
45
|
-
mini_mime (1.1.
|
|
54
|
+
mini_mime (1.1.5)
|
|
46
55
|
minitest (5.15.0)
|
|
47
56
|
mocha (1.13.0)
|
|
48
57
|
multi_xml (0.6.0)
|
|
58
|
+
mutex_m (0.2.0)
|
|
49
59
|
netrc (0.11.0)
|
|
50
|
-
oj (3.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
60
|
+
oj (3.16.3)
|
|
61
|
+
bigdecimal (>= 3.0)
|
|
62
|
+
openssl (3.2.0)
|
|
63
|
+
parallel (1.24.0)
|
|
64
|
+
parser (3.3.0.5)
|
|
54
65
|
ast (~> 2.4.1)
|
|
55
|
-
|
|
56
|
-
|
|
66
|
+
racc
|
|
67
|
+
prettier_print (1.2.1)
|
|
68
|
+
prism (0.21.0)
|
|
69
|
+
pry (0.14.2)
|
|
57
70
|
coderay (~> 1.1)
|
|
58
71
|
method_source (~> 1.0)
|
|
59
72
|
pry-byebug (3.10.1)
|
|
60
73
|
byebug (~> 11.0)
|
|
61
74
|
pry (>= 0.13, < 0.15)
|
|
62
75
|
public_suffix (4.0.6)
|
|
76
|
+
racc (1.7.3)
|
|
63
77
|
rainbow (3.1.1)
|
|
64
78
|
rake (13.0.6)
|
|
65
|
-
rbi (0.
|
|
66
|
-
|
|
67
|
-
parser (>= 2.6.4.0)
|
|
79
|
+
rbi (0.1.8)
|
|
80
|
+
prism (>= 0.18.0, < 0.22)
|
|
68
81
|
sorbet-runtime (>= 0.5.9204)
|
|
69
|
-
unparser
|
|
70
82
|
regexp_parser (2.5.0)
|
|
71
83
|
rexml (3.2.5)
|
|
72
84
|
rubocop (1.36.0)
|
|
@@ -85,55 +97,46 @@ GEM
|
|
|
85
97
|
rubocop (~> 1.35)
|
|
86
98
|
rubocop-sorbet (0.6.11)
|
|
87
99
|
rubocop (>= 0.90.0)
|
|
88
|
-
ruby-lsp (0.3.2)
|
|
89
|
-
language_server-protocol (~> 3.17.0)
|
|
90
|
-
sorbet-runtime
|
|
91
|
-
syntax_tree (>= 3.4)
|
|
92
100
|
ruby-progressbar (1.11.0)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
sorbet-
|
|
98
|
-
sorbet-static (0.5.
|
|
99
|
-
sorbet-static (0.5.
|
|
100
|
-
sorbet-static-and-runtime (0.5.
|
|
101
|
-
sorbet (= 0.5.
|
|
102
|
-
sorbet-runtime (= 0.5.
|
|
103
|
-
spoom (1.
|
|
104
|
-
|
|
105
|
-
sorbet-runtime (>= 0.5.
|
|
101
|
+
ruby2_keywords (0.0.5)
|
|
102
|
+
securerandom (0.3.1)
|
|
103
|
+
sorbet (0.5.11230)
|
|
104
|
+
sorbet-static (= 0.5.11230)
|
|
105
|
+
sorbet-runtime (0.5.11230)
|
|
106
|
+
sorbet-static (0.5.11230-universal-darwin)
|
|
107
|
+
sorbet-static (0.5.11230-x86_64-linux)
|
|
108
|
+
sorbet-static-and-runtime (0.5.11230)
|
|
109
|
+
sorbet (= 0.5.11230)
|
|
110
|
+
sorbet-runtime (= 0.5.11230)
|
|
111
|
+
spoom (1.2.4)
|
|
112
|
+
erubi (>= 1.10.0)
|
|
113
|
+
sorbet-static-and-runtime (>= 0.5.10187)
|
|
114
|
+
syntax_tree (>= 6.1.1)
|
|
106
115
|
thor (>= 0.19.2)
|
|
107
|
-
syntax_tree (
|
|
108
|
-
prettier_print
|
|
109
|
-
tapioca (0.
|
|
110
|
-
bundler (>=
|
|
116
|
+
syntax_tree (6.2.0)
|
|
117
|
+
prettier_print (>= 1.2.0)
|
|
118
|
+
tapioca (0.12.0)
|
|
119
|
+
bundler (>= 2.2.25)
|
|
111
120
|
netrc (>= 0.11.0)
|
|
112
121
|
parallel (>= 1.21.0)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
spoom (~> 1.1.0, >= 1.1.11)
|
|
122
|
+
rbi (>= 0.1.4, < 0.2)
|
|
123
|
+
sorbet-static-and-runtime (>= 0.5.10820)
|
|
124
|
+
spoom (~> 1.2.0, >= 1.2.0)
|
|
117
125
|
thor (>= 1.2.0)
|
|
118
126
|
yard-sorbet
|
|
119
|
-
thor (1.
|
|
127
|
+
thor (1.3.0)
|
|
120
128
|
tzinfo (2.0.6)
|
|
121
129
|
concurrent-ruby (~> 1.0)
|
|
122
130
|
unicode-display_width (2.3.0)
|
|
123
|
-
unparser (0.6.5)
|
|
124
|
-
diff-lcs (~> 1.3)
|
|
125
|
-
parser (>= 3.1.0)
|
|
126
131
|
webmock (3.14.0)
|
|
127
132
|
addressable (>= 2.8.0)
|
|
128
133
|
crack (>= 0.3.2)
|
|
129
134
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
130
|
-
|
|
131
|
-
yard (0.
|
|
132
|
-
webrick (~> 1.7.0)
|
|
133
|
-
yard-sorbet (0.7.0)
|
|
135
|
+
yard (0.9.34)
|
|
136
|
+
yard-sorbet (0.8.1)
|
|
134
137
|
sorbet-runtime (>= 0.5)
|
|
135
138
|
yard (>= 0.9)
|
|
136
|
-
zeitwerk (2.6.
|
|
139
|
+
zeitwerk (2.6.13)
|
|
137
140
|
|
|
138
141
|
PLATFORMS
|
|
139
142
|
arm64-darwin-21
|
|
@@ -149,7 +152,6 @@ DEPENDENCIES
|
|
|
149
152
|
rubocop
|
|
150
153
|
rubocop-shopify
|
|
151
154
|
rubocop-sorbet
|
|
152
|
-
ruby-lsp
|
|
153
155
|
shopify_api!
|
|
154
156
|
sorbet
|
|
155
157
|
tapioca
|