RetailCRM API
API wrapper для RetailCRM
Установка
Ruby
$ gem install retailcrm-api
Rails
добавьте в Gemfile: gem 'retailcrm-api'
и запустите bundle install.
Затем: rails g retailcrm_api:install
Требования
Необходимо получить api key https://yourdomains.retailcrm.ru/admin/api-keys
Использование Rails
В файл config/retailcrm_api.yml вставьте ваши данные
Использование Ruby
Сначала создайте экземпляр объекта RetailcrmApi::Request:
retailcrm = RetailcrmApi::Request.new(api_key: "your_api_key")
Вы можете изменять api_key, timeout, open_timeout, faraday_adapter, proxy, symbolize_keys, logger, и debug:
RetailcrmApi::Request.api_key = "your_api_key"
RetailcrmApi::Request.timeout = 15
RetailcrmApi::Request.open_timeout = 15
RetailcrmApi::Request.symbolize_keys = true
RetailcrmApi::Request.debug = false
Либо в файле config/initializers/retailcrm_api.rb для Rails.
Debug Logging
Измените debug: true чтобы включить логирование в STDOUT.
retailcrm = RetailcrmApi::Request.new(api_key: "your_api_key", debug: true)
Custom logger
Logger.new используется по умолчанию, но вы можете изменить на свой:
retailcrm = RetailcrmApi::Request.new(api_key: "your_api_key", debug: true, logger: MyLogger.new)
Или:
RetailcrmApi::Request.logger = MyLogger.new
Примеры
Расходы
Получение списка расходов, удовлетворяющих заданному фильтру
RetailcrmApi::Request.costs.retrieve.body
# => {:success=>true, :pagination=>{:limit=>20, :totalCount=>296, :currentPage=>1, :totalPageCount=>15}, :costs=>[{:id=>296, :dateFrom=>"2021-07-29", :dateTo=>"2021-07-29", :summ=>13996, :costItem=>"products-purchase-price", :createdAt=>"2021-07-29 00:34:35", :order=>{:id=>36, :number=>"36C"}, :sites=>["b12-skillum-ru"]}]}
Клиенты
Получение списка клиентов, удовлетворяющих заданному фильтру
RetailcrmApi::Request.customers.retrieve.body
#=> {:success=>true, :pagination=>{:limit=>20, :totalCount=>0, :currentPage=>1, :totalPageCount=>0}, :customers=>[]}
Создание клиента
body = {
site: 'deppa',
customer: {
externalId: 1,
firstName: 'Павел',
lastName: 'Осетров'
}
}
RetailcrmApi::Request.customers.create(body: body).body
#=> {:success=>true, :id=>54}
Пакетная загрузка клиентов
body = {
site: 'deppa',
customers: [
{
externalId: 3,
firstName: 'Имя',
lastName: 'Фамилия'
},
{
externalId: 4,
firstName: 'Имя2',
lastName: 'Фамилия2'
}
]
}
RetailcrmApi::Request.customers.create(body: body, suffix: "upload").body
Корпоративные клиенты
RetailcrmApi::Request.customers_corporate.retrieve.body
# => {:success=>true, :pagination=>{:limit=>20, :totalCount=>0, :currentPage=>1, :totalPageCount=>0}, :customersCorporate=>[]}