Skip to content

findologic/plentymarkets-rest-exporter

Repository files navigation

Plentymarkets REST exporter

GitHub Actions Tests codecov

Table of Contents

  1. Synopsis
  2. Requirements
  3. Installation
  4. Running the export
  5. Development
    1. Running the export
      1. Using a shopkey to run the export
      2. Configuration
      3. Debugging the export

Synopsis

This is a work in progress rewrite of the findologic/plentymarkets-rest-export.

The Plentymarkets REST API is being called to get all necessary product data for FINDOLOGIC. The data is then wrapped to generate a FINDOLOGIC-consumable XML/CSV file. In the case of XML this could be multiple files.

Requirements

  • PHP >= 7.4
  • PHP JSON extension
  • Composer

Installation

  1. Run composer install to install all required dependencies.
  2. Copy .env to .env.local, and set the configuration for the shop, you want to export the data from.

Running the export

  1. Run bin/console export:start.
  2. When the export was successful, you may be able to find the exported CSV/XML file in the /export directory.
  • If you have a shopkey, see Using a shopkey to run the export.
  • If debug mode is true, you may be able to find all requests/responses inside of the /var/debug directory.

If you want to debug, read more about debugging the export.

Development

Directory structure

  • .github Contains everything related to GitHub, including GitHub Actions.
  • bin Contains executables. E.g. Running the export.
  • config Contains configuration files. E.g Export configuration.
  • var/debug Contains Request/Responses after starting an export.
  • var/export Contains the exported XML(s)/CSV file(s).
  • var/log Contains the log of the last export.
  • src Contains all source code.
  • tests Contains all unit-tests.
  • vendor Contains source code of dependencies.

Running tests

Running tests is as simple as it gets. Either run composer test, or use your IDE to run the tests. When running them with the IDE you may want to include phpunit.xml.dist as alternative configuration file.

Using a shopkey to run the export

NOTE: Running an export with a shopkey requires the option IMPORT_DATA_URL to be set in your environment file!

You can also run the export for a specific shopkey by calling the export with an additional shopkey parameter or bin/console export:start [shopkey].

When a shopkey is supplied, the EXPORT_xxx environment variables may be ignored.

Configuration

Here is a short table that explains each configuration option. Configuration changes can be done in your environment files.

Configuration option Description
EXPORT_USERNAME The user which is used to authenticate to the REST API. It needs these permissions to successfully export.
EXPORT_PASSWORD The password of the API user.
EXPORT_DOMAIN The domain of the shop without protocol (http/https). E.g. www.your-shop.com
EXPORT_MULTISHOP_ID The multiShopId of the shop. Each language has their own multiShopId at Plentymarkets. It is also known as "Webstore ID".
EXPORT_AVAILABILITY_ID Products that have this availability id assigned, won't be exported.
EXPORT_PRICE_ID Id of the exported prices that should be shown.
EXPORT_RRP_ID Id of the recommended retail price that should be shown.
EXPORT_LANGUAGE Language of the shop. E.g. DE, EN, FR
EXPORT_UNAVAILABLE_VARIATIONS If active, unavailable variants will be exported.
EXPORT_REFERRER_ID Only options including this ID within "Referrers" will be exported. All properties will be exported, if not set.
EXPORT_ORDERNUMBER_PRODUCT_ID If active, the product ID will be exported as an order number.
EXPORT_ORDERNUMBER_VARIANT_ID If active, the variant ID will be exported as an order number.
EXPORT_ORDERNUMBER_VARIANT_NUMBER If active, the variant number will be exported as an order number.
EXPORT_ORDERNUMBER_VARIANT_MODEL If active, the variant model will be exported as an order number.
EXPORT_ORDERNUMBER_VARIANT_BARCODES If active, the variant barcodes will be exported as an order numbers.
EXPORT_FREE_TEXT_FIELDS If active, the free text fields will be exported as attributes.
EXPORT_DIMENSION_UNIT Unit for the configured length/width/height of the products.
EXPORT_WEIGHT_UNIT Unit for the configured weight of the products.
DEBUG Boolean that if set to true, will log all requests/responses inside of the debug folder.
IMPORT_DATA_URL Adding this to your config allows you to call the export with an additional shopkey parameter.

Debugging the export

If you want to debug the export, you can simply right-click bin/console inside of the IDE and select "Debug 'export (PHP Script)'".

Setting the environment variable "DEBUG" to true, will automatically create request/response files inside of the var/debug folder.
If you no longer need them, they can be cleared anytime running composer clear, or bin/clearExportFiles.