{"id":15145716,"url":"https://github.com/werein/prestashop","last_synced_at":"2025-10-24T01:30:22.929Z","repository":{"id":23744420,"uuid":"27118339","full_name":"werein/prestashop","owner":"werein","description":"Prestashop API for Ruby including low-level API access and Prestashop fields converted into PORO","archived":false,"fork":false,"pushed_at":"2024-04-04T07:08:17.000Z","size":208,"stargazers_count":16,"open_issues_count":2,"forks_count":23,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-30T22:03:19.482Z","etag":null,"topics":["prestashop","prestashop-api","prestashop-webservice","ruby","webservice"],"latest_commit_sha":null,"homepage":"https://wereinhq.com/guides/prestashop","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/werein.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-25T09:30:11.000Z","updated_at":"2024-10-07T19:28:42.000Z","dependencies_parsed_at":"2022-07-23T23:15:04.511Z","dependency_job_id":null,"html_url":"https://github.com/werein/prestashop","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/werein%2Fprestashop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/werein%2Fprestashop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/werein%2Fprestashop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/werein%2Fprestashop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/werein","download_url":"https://codeload.github.com/werein/prestashop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237896646,"owners_count":19383556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["prestashop","prestashop-api","prestashop-webservice","ruby","webservice"],"created_at":"2024-09-26T11:42:02.546Z","updated_at":"2025-10-24T01:30:17.466Z","avatar_url":"https://github.com/werein.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Prestashop\n\n[![Build Status](https://travis-ci.org/werein/prestashop.svg)](https://travis-ci.org/werein/prestashop)  [![Code Climate](https://codeclimate.com/github/werein/prestashop/badges/gpa.svg)](https://codeclimate.com/github/werein/prestashop) [![Test coverage](https://codeclimate.com/github/werein/prestashop/badges/coverage.svg)](https://codeclimate.com/github/werein/prestashop) [![Version](https://badge.fury.io/rb/prestashop.svg)](http://badge.fury.io/rb/prestashop) [![Dependencies](https://gemnasium.com/werein/prestashop.svg)](https://gemnasium.com/werein/prestashop)\n\nPrestashop API for Ruby\n\nIs extrected from service used for synchronization suppliers catalogue with Prestashop Cloud via API on client side available here https://syncmystore.com/en\n\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'prestashop', github: 'werein/prestashop'\n```\n\nUse `branch: 'master'` for local repository in case of bundler global config\n\n## Usage\n\nCreate new client for connect to your Prestashop WebService\n\n```ruby\nPrestashop::Client::Implementation.create 'api_key', 'api_url'\n```\n\nNow you are able to communicate with Prestashop WebService\n\n### Low-level API\n\nTo call API request directly you can use this class.\n\n##### Head / Check\n\nCall HEAD on WebService API, returns +true+ if was request successfull or raise error, when request failed.\n\n``` ruby\nPrestashop::Client.head :customer, 2 # =\u003e true\nPrestashop::Client.check :customer, 3 # =\u003e true\n```\n\n##### Get / Read\n\nCall GET on WebService API, returns parsed Prestashop response or raise error, when request failed.\n\n```ruby\nPrestashop::Client.get :customer, 1       # =\u003e {id: 1 ...}\nPrestashop::Client.read :customer, [1,2]  # =\u003e [{id: 1}, {id: 2}]\n```\n\nWhen you are using get, you can also filter, sort or limit response. In case, when you need to get all users you need to set user id as `nil`\n\n**Available options:**\n\n* filter\n* display\n* sort\n* limit\n* schema\n* date\n\n##### Post / Create\nCall POST on WebService API, returns parsed Prestashop response if was request successfull or raise error, when request failed.\n\n```ruby\nPrestashop::Client.post :customer, { name: 'Steve' } # =\u003e true\n```\n\n##### Put / Update\n\nCall PUT on WebService API, returns parsed Prestashop response if was request successfull or raise error, when request failed.\n\n```ruby\nPrestashop::Client.put :customer, 1, {surname: 'Jobs'} # =\u003e true\nPrestashop::Client.update :customer, 1, {nope: 'Jobs'} # =\u003e false\n```\n\n##### Delete / Destroy\n\nCall DELETE on WebService API, returns +true+ if was request successfull or raise error, when request failed.\n\n```ruby\nPrestashop::Client.delete :customer, 1 # =\u003e true\n```\n\n### Mapper\n\nPlease read inline docs inside `lib/prestashop/mapper/extension.rb`, available models are defined in `lib/prestashop/mapper/models`\n\nAfter reading that you can do something like this\n\n```ruby\nid_lang = Prestashop::Mapper::Language.find_by_iso_code('cs')\nid_supplier = Prestashop::Mapper::Supplier.new(name: 'apple').find_or_create\n\nproduct = Prestashop::Mapper::Product.new(id_lang: id_lang, id_supplier: id_supplier, reference: 'apple-macbook')\n\nif product.find?\n  product.update price: '1299'\nelse\n  product.description = 'My description'\n  product.price = '1299'\n  product.create\nend\n```\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwerein%2Fprestashop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwerein%2Fprestashop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwerein%2Fprestashop/lists"}