# Solidus Melhor Envio [![CircleCI](https://circleci.com/gh/solidusio-contrib/solidus_melhor_envio.svg?style=shield)](https://circleci.com/gh/solidusio-contrib/solidus_melhor_envio) [![codecov](https://codecov.io/gh/solidusio-contrib/solidus_melhor_envio/branch/master/graph/badge.svg)](https://codecov.io/gh/solidusio-contrib/solidus_melhor_envio) Gem utilizada para integrar o MelhorEnvio (cotação de frete) no Solidus. ## Installation Add solidus_melhor_envio to your Gemfile: ```ruby gem "solidus_melhor_envio" ``` Bundle your dependencies and run the installation generator: ```shell bin/rails generate solidus_melhor_envio:install ``` ## Usage Adicionar no aquivo `/config/initializers/spree.rb` a linha abaixo, para configurar como padrão o MelhorEnvio: ```ruby Spree.config do |config| # +++ config.stock.estimator_class = "SolidusMelhorEnvio::ShippingEstimator" end ``` No arquivo `/config/initializers/solidus_melhor_envio.rb` definir as variáveis `app_name` (nome do aplicativo cadastrado no MelhorEnvio), `postal_code_from` (Código Postal de origem) e `services` (id dos serviços de frete desejados que retorne na requisição) ```ruby SolidusMelhorEnvio.configure do |config| config.app_name = "" # ex. 'app_name' config.postal_code_from = "" # ex.: '01555-000' config.services = "" # ex.: '1,2,3,4' - valores separados por vírgula end ``` Após, criar a `SolidusMelhorEnvio::Account`, onde ficarão registrados os dados necessários para as requisições à API do MelhorEnvio. Exemplo: ```ruby SolidusMelhorEnvio::Account.create!({ app_name: "app_name", api_base_url: "https://www.melhorenvio.com.br", client_id: "12345", client_secret: "123456", refresh_token: "1234", user_agent: "usuario@example.com" }) ``` ## Development ### Testing the extension First bundle your dependencies, then run `bin/rake`. `bin/rake` will default to building the dummy app if it does not exist, then it will run specs. The dummy app can be regenerated by using `bin/rake extension:test_app`. ```shell bin/rake ``` To run [Rubocop](https://github.com/bbatsov/rubocop) static code analysis run ```shell bundle exec rubocop ``` When testing your application's integration with this extension you may use its factories. You can load Solidus core factories along with this extension's factories using this statement: ```ruby SolidusDevSupport::TestingSupport::Factories.load_for(SolidusMelhorEnvio::Engine) ``` ### Running the sandbox To run this extension in a sandboxed Solidus application, you can run `bin/sandbox`. The path for the sandbox app is `./sandbox` and `bin/rails` will forward any Rails commands to `sandbox/bin/rails`. Here's an example: ``` $ bin/rails server => Booting Puma => Rails 6.0.2.1 application starting in development * Listening on tcp://127.0.0.1:3000 Use Ctrl-C to stop ``` ### Releasing new versions Please refer to the [dedicated page](https://github.com/solidusio/solidus/wiki/How-to-release-extensions) in the Solidus wiki. ## License Copyright (c) 2023 Hamilton Tumenas Borges, released under the New BSD License.