Plytix
Integration Guides

Build a marketplace-specific product feed

Filter and shape a product set for a specific channel or marketplace using channels and product lists.

Produce a product set scoped to one channel, for example a UK-only feed or a Shopify-specific export, by combining a filtered product list with a channel. This guide covers creating and configuring a channel through the API and connecting it to the right products.

FLAG

Plytix's own roadmap notes describe channels as UI-only, with no API endpoints, and point to an upcoming "Destinations" feature as the API-facing path instead. This project's own live testing found the opposite: GET, POST, PATCH, and DELETE on /channels all work today, with the behavior documented below. Treat this guide as accurate for the current API, but confirm with your Plytix contact whether it should move to Destinations once that feature ships, since this page may need a rewrite at that point.

Prerequisites

  • A bearer token. See the Quickstart guide for the authentication flow.
  • A product list already built for the audience you're targeting. See "Building a Smart product list" in Core Concepts.

Steps

  1. Build the product list your channel will pull from.

    A channel doesn't filter products itself. It references a product list, so build that list first:

    curl -X POST "https://pim.plytix.com/api/v3/pim-product-lists" \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "UK Feed",
        "type": "Smart",
        "query": [[{"operator": "eq", "field": "attributes.market", "value": "UK"}]]
      }'

    Save the returned id. You'll use it as product_list_id in the next step.

  2. Create the channel.

    curl -X POST "https://pim.plytix.com/api/v3/channels" \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "UK Marketplace Feed",
        "format": "CSV",
        "product_list_id": "<product_list_id>"
      }'

    name and format are the only required fields. product_list_id is what actually connects your filtered products to this channel. The response includes the full created channel, not only its ID, even though some Plytix API documentation describes POST as returning only an ID.

    FLAG

    format isn't a free-text value despite how some API documentation describes it. Only CSV and XML are confirmed to work; other formats weren't independently verified. Test a new format value with a throwaway channel before relying on it.

  3. Set up a recurring rebuild, if the feed needs to stay current automatically.

    curl -X PATCH "https://pim.plytix.com/api/v3/channels/<channel_id>" \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{
        "rebuild_periodically": true,
        "rebuild_feed_frequency": "DAILY",
        "rebuild_feed_hod": 3,
        "rebuild_feed_moh": 0,
        "rebuild_feed_timezone": "UTC"
      }'

    FLAG

    rebuild_periodically only takes effect when rebuild_feed_frequency, rebuild_feed_hod, rebuild_feed_moh, and rebuild_feed_timezone are all sent together, as shown above. Sending rebuild_periodically on its own, or with only some of these fields, returns a validation error that doesn't name the missing field. If you get an unexplained validation error on this endpoint, check that all four fields are present before troubleshooting further.

    FLAG

    Some Plytix API documentation describes PATCH as returning no content (status 204). This project consistently found the opposite in live testing: PATCH returns 200 with the full updated channel in the response body.

  4. Confirm the channel picked up the right product list.

    curl "https://pim.plytix.com/api/v3/channels/<channel_id>" \
      -H "Authorization: Bearer <access_token>"

    Check that product_list_id matches what you sent, and that rebuild_feed_next_build shows the schedule you expect.

What you can't do through the API yet

  • There's no way to assign products to a channel directly. The only mechanism is product_list_id, pointing at a product list you build separately, as in steps 1 to 2. If you've read dashboard documentation describing direct product assignment to a channel, that's a UI-only path today.
  • There's no way to trigger the actual feed build or publish through the API. Creating or updating a channel configures it, but the export file itself is still generated from the dashboard. Flipping active to true doesn't start a build.

On this page