This is the PHP REST SDK to easily connect to an ePages shop. You can use it as a developer to develop apps for ePages. Just sign up for the ePages Developer Program and create a free developer test shop.
To use this SDK, you'll need:
- at least PHP 7.0
All dependencies comes automatically with the client and could be updated via composer.
Its easy to get the client via Composer. Just search for epages/rest-sdk and put this to you composer.yml file:
{
"require": {
"epages/rest-sdk": ">=0.2"
}
}
You can configure it with putting a config.json into you main directory. Just copy the config.example.json from GitHub or create a new one:
{
"Client": {
"host": "www.some.host",
"shop": "shopName",
"isSSL": true,
"userAgent": "UserAgent",
"token": "TheTokenIfExists"
},
"Logger": {
"level": "ERROR",
"output": "SCREEN"
}
}
The following information are provided with the ePages REST SDK until now.
Feature | GET | PUT | POST | DELETE | PATCH | information |
---|---|---|---|---|---|---|
carts | ✘ | ✘ | ✘ | ✘ | ? | |
categories | ✘ | ✘ | - | - | ? | |
currencies | ✔ | - | - | - | ? | |
legal | ✘ | - | - | - | ? | won't do, it's not needed |
legal/contact-information | ✔ | ✘ | - | - | ? | |
legal/privacy-policy | ✔ | ✘ | - | - | ? | |
legal/rights-of-withdrawal | ✔ | ✘ | - | - | ? | |
legal/shipping-information | ✔ | ✘ | - | - | ? | |
legal/terms-and-condition | ✔ | ✘ | - | - | ? | |
locales | ✔ | - | - | - | ? | |
products | ✔ | - | - | ✔ | ? | |
products//custom-attributes | ✔ | - | - | . | ? | |
products//stock-level | ✔ | ✔ | - | - | ? | |
products/export | ✘ | - | - | - | ? | |
sales | ✘ | ✘ | ✘ | ✘ | ? | |
search/product-suggest | ✘ | - | - | - | ? | |
shipping-methods | ✘ | - | - | - | ? |
For code examples, see the examples folder.
require_once("libraries/epages-rest-client.phar");
ep6\Logger::setLogLevel(ep6\LogLevel::NOTIFICATION); // activate visible output
// set connection constants
$HOST = "www.meinshop.de";
$SHOP = "DemoShop";
$AUTHTOKEN = "xyzxyzxyzxyzxyzxyzxyzxyz";
$ISSSL = true;
// connect to shop
$shop = new ep6\Shop($HOST, $SHOP, $AUTHTOKEN, $ISSSL);
// use a product filter to search for products
$productFilter = new ep6\ProductFilter();
$productFilter->setLocale("de_DE");
$productFilter->setCurrency("EUR");
$productFilter->setSort("name");
$productFilter->setResultsPerPage(100);
$products = $productFilter->getProducts();
// print the products
foreach ($products as $product) {
echo "<h2>" . htmlentities($product->getName()) . "</h2>";
echo "<p>";
echo "<img style=\"float:left\" src=\"" . $product->getSmallImage()->getOriginURL() . "\"/>";
echo "<strong>ProductID:</strong> " . $product->getID() . "<br/>";
echo "<strong>Description:</strong> " . htmlentities($product->getDescription()) . "<br/><br/>";
echo "<strong>This product is ";
if (!$product->isForSale()) {
echo "NOT ";
}
echo "for sale and is ";
if ($product->isSpecialOffer()) {
echo "<u>a</u> ";
}
else {
echo "not a ";
}
echo "special offer.</strong>";
echo "</p><hr style=\"clear:both\"/>";
}
require_once("libraries/epages-rest-php.phar");
ep6\Logger::setLogLevel(ep6\LogLevel::NOTIFICATION); //activate visible output
// set connection constants
$HOST = "www.meinshop.de";
$SHOP = "DemoShop";
$AUTHTOKEN = "xyzxyzxyzxyzxyzxyzxyzxyz";
$ISSSL = true;
// connect to shop
$shop = new ep6\Shop($HOST, $SHOP, $AUTHTOKEN, $ISSSL);
// prints the default currency and localization
echo $shop->getDefaultLocales();
echo $shop->getDefaultCurrencies();
// prints the name of the contact information in default language and in german
$contactInformation = $shop->getContactInformation();
echo $contactInformation->getDefaultName();
echo $contactInformation->getName();
The library comes with a huge Logger called ep6\Logger
.
To use this (instead of the echo
command) write
ep6\Logger::force("Print this!");
The force printer also can print arrays in a simple structure.
By default all notification messages are printed. To change this use:
ep6\Logger::setLogLevel(ep6\LogLevel::NOTIFICATION); // shows all messages
ep6\Logger::setLogLevel(ep6\LogLevel::WARNING); // shows warning and error messages
ep6\Logger::setLogLevel(ep6\LogLevel::ERROR); // shows only error messages
ep6\Logger::setLogLevel(ep6\LogLevel::NONE); // don't log anything
To validate data and check the value of an object there is a InputValidator class:
ep6\InputValidator::isHost("www.test.de");
ep6\InputValidator::isJSON("{}");
You can find all InputValidator functions in the documentation
The complete reference is located here.
The code is available under the terms of the MIT License.