braghetto/hokoml

Package to simplify the communication between the Mercado livre API and your app.

2.2.2 2022-12-09 14:53 UTC

This package is auto-updated.

Last update: 2024-05-09 17:41:44 UTC


README

Package to simplify the integration between the Mercado livre API and your app.

Table of Contents

Installation

composer require braghetto/hokoml

Configs

<?php
$config = [
    /**
    * Get app_id, secret_key and redirect_uri in te ML application manager (http://applications.mercadolibre.com/)
    */
    'app_id' => 'YOUR_APP_ID',

    'secret_key' => 'YOUR_SECRET_KEY',

    'redirect_uri' => 'YOUR_REDIRECT_URI',

    'production' => false,

    /**
    * The ML code for your country
    *
    * MLA => Argentina
    * MBO => Bolivia
    * MLB => Brazil
    * MLC => Chile
    * MCO => Colombia
    * MCR => Costa Rica
    * MCU => Cuba
    * MRD => Dominican Republic
    * MEC => Ecuador
    * MGT => Guatemala
    * MHN => Honduras
    * MLM => Mexico
    * MNI => Nicaragua
    * MPA => Panama
    * MPY => Paraguay
    * MPE => Peru
    * MPT => Portugal
    * MSV => Salvador
    * MLU => Uruguay
    * MLV => Venezuela
    */
    'country' => 'YOUR_COUNTRY_CODE'
]

Usage

Authentication

Get auth url

Retrive the auth to authorize your app.

<?php
use Braghetto\Hokoml\Hokoml;

$hokoml = new Hokoml($config);
$url = $hokoml->getAuthUrl();

Authorize

Once you have the code retrive the access token, user id, expiration and a refresh token.

<?php
use Braghetto\Hokoml\Hokoml;

$hokoml = new Hokoml($config);
$response = $hokoml->authorize($_GET['code']);
// Persist the data for future usage...

Refresh access token

<?php
use Braghetto\Hokoml\Hokoml;

$hokoml = new Hokoml($config);
// $refresh_token saved from your previous authorization
$response = $hokoml->refreshAccessToken($refresh_token);

Product

Create

<?php
use Braghetto\Hokoml\Hokoml;

$hokoml = new Hokoml($config, $_SESSION['access_token'], $_SESSION['user_id']);
$response = $hokoml->product()->create([
    'title' => 'TESTE RAY BAN',
    'category_id' => 'MLB1227',
    'price' => 900000,
    'currency_id' => 'BRL',
    'available_quantity' => 1,
    'buying_mode' => 'buy_it_now',
    'listing_type_id' => 'free',
    'automatic_relist' => false,
    'condition' => 'new',
    'description' => 'Item:, <strong> Ray-Ban WAYFARER Gloss Black RB2140 901 </strong> Model: RB2140. Size: 50mm. Name: WAYFARER. Color: Gloss Black. Includes Ray-Ban Carrying Case and Cleaning Cloth. New in Box',
    'warranty' => '12 month by Ray Ban',
    'pictures' => [
        ['source' => 'https://upload.wikimedia.org/wikipedia/commons/f/fd/Ray_Ban_Original_Wayfarer.jpg'],
        ['source' => 'https://upload.wikimedia.org/wikipedia/commons/a/ab/Teashades.gif']
    ]
]);

Find product

<?php
use Braghetto\Hokoml\Hokoml;

$hokoml = new Hokoml($config, $_SESSION['access_token'], $_SESSION['user_id']);
$response = $hokoml->product()->find($product_id);

Update

Not all information can be update, so the packge will filter those info. Details here

<?php
// [...]
$response = $hokoml->product()->update($product_id, [
    'title' => 'Milibin',
    'price' => 800000,
    'warranty' => 'New warranty', // Won't be updated
    // [...]
]);

Pause

<?php
// [...]
$response = $hokoml->product()->pause($product_id);

Unpause

<?php
// [...]
$response = $hokoml->product()->unpause($product_id);

Finalize

<?php
// [...]
$response = $hokoml->product()->finalize($product_id);

Relist

<?php
// [...]
$response = $hokoml->product()->relist($product_id, $price);
// $response = $hokoml->product()->relist($product_id, $price, $quantity = 1, $listing_type = 'free');

Delete

<?php
// [...]
$response = $hokoml->product()->delete($product_id);

Category

List

<?php
use Braghetto\Hokoml\Hokoml;

$hokoml = new Hokoml($config, $_SESSION['access_token'], $_SESSION['user_id']);
// List all root categories
$response = $hokoml->category()->list();

// List children categories for a given id.
$response = $hokoml->category()->list($parent_category_id);

Predict

Predict a category for a given title.

<?php
// [...]
$response = $hokoml->category()->predict('Rayban Gloss Black');

Questions

Ask

<?php
use Braghetto\Hokoml\Hokoml;

$hokoml = new Hokoml($config, $_SESSION['access_token'], $_SESSION['user_id']);
$response = $hokoml->question()->ask($question_id, 'The questions.');

Find question

<?php
// [...]
$response = $hokoml->question()->find($question_id);

Answer

<?php
// [...]
$response = $hokoml->question()->answer($question_id, 'The answer.');

Questions from product

List all questions from a product.

<?php
// [...]
$response = $hokoml->question()->fromProduct($product_id);

// with filters
$response = $hokoml->question()->fromProduct($product_id, [
	'status' => 'unanswered',
	[...]
]);

// with filters and sorting
$response = $hokoml->question()->fromProduct($product_id, ['status' => 'unanswered'], 'date_desc');

Unanswered from product

List all unanswered questions from a product.

<?php
// [...]
$response = $hokoml->question()->unansweredFromProduct($product_id);

Block user

<?php
// [...]
$response = $hokoml->question()->blockUser($user_id);

Unblock user

<?php
// [...]
$response = $hokoml->question()->unblockUser($user_id);

Blocked users

List blocked users.

<?php
// [...]
$response = $hokoml->question()->blockedUsers();

Received questions

<?php
// [...]
$response = $hokoml->question()->received();

//With filters
$response = $hokoml->question()->received([
	'status' => 'unanswered'
]);

//With filters and sorting
$response = $hokoml->question()->received(['status' => 'unanswered'], 'date_desc');

User

Me

<?php
use Braghetto\Hokoml\Hokoml;

$hokoml = new Hokoml($config, $_SESSION['access_token'], $_SESSION['user_id']);
$response = $hokoml->user()->me();

Find user

<?php
[...]
$response = $hokoml->user()->find($user_id);

Addresses

Retrive the authenticated user addresses.

<?php
[...]
$response = $hokoml->user()->addresses();

Accepted payment methods

Retrive payment methods accepted by the authenticated user.

<?php
[...]
$response = $hokoml->user()->acceptedPaymentMethods();

License

This project is licensed under the MIT License - see the license.md file for details