PrestaShop

Teapplix supports PrestaShop order import.

You will need to enable webservice api in your PrestaShop website. Use next instructions or PrestaShop instructions page to do this.

Step 1: Enabling PrestaShop Webservice API

  1. Open Advanced Parameters tab
  2. Click Webservice link
  3. Enable PrestaShop Webservice API
  4. Click Add New API Key
PrestaShop instructions, step 1

PrestaShop instructions, step 1

Step 2: Creating API Key

  1. Click Generate to generate new API Key
  2. Enter key description (optional)
  3. Set Status to yes
  4. Check all checkboxes. (use scroll to find more)
PrestaShop instructions, step 2

PrestaShop instructions, step 2

5. Don't forget to save your changes

PrestaShop instructions, step 2.2

PrestaShop instructions, step 2.2

Step 3: Configuring teapplix account

  1. Fill “Key” field in teapplix shopping cart config, “PrestaShop” tab with API Key value. Use your PrestaShop url as store url (e.g. http://example.com)

  2. Save your PrestaShop configuration. Now teapplix will receive order from your PrestaShop shop. You may want to click “Sync orders now” to load them immediately.

Do you use Prestashop version 1.6.0.11 or higher?

New versions of Prestashop since 1.6.0.11 (and current 1.6.0.14) have bugs in the code. In order to Teapplix was able to get the right data, you must fix them on your own server otherwise Teapplix not be able to download your orders. To do this you should open a couple files in text editor and modify them.

You may  contact Prestashop support team or use manual method below.

Make manual bug fix

1. File "classes/webservice/WebserviceRequest.php" (row: ~1133)
Add symbol "!" to "if" section as on this picture:

pic1

Official page with fix on Github

2. File "classes/order/Order.php" (row: ~2092)
Remove "$state" between parentheses at function getWsCurrentState() as on this picture:

pic2

Official page with fix on Gitlab

In addition, this patch should be applied also -

classes/webservice/WebserviceRequest.php:1098
-                                 if (!isset($this->resourceConfiguration['fields'][$field]['getter'])) {
+                                 if (!isset($this->resourceConfiguration['fields'][$field]['getter']) && !in_array($field, array("date_upd", "current_state"))) {

This should fix some sync issue we have seen.