# Shopify CSV Catalog Change Audit (`motivational_knockout_17n/shopify-csv-catalog-change-audit`) Actor

Review Shopify bulk product updates before import. Compare your current export with a proposed CSV to flag blank overwrites, price/SKU changes and variant mismatches. HTML + JSON, $5 per completed audit. No store login or changes. Selected-field checks.

- **URL**: https://apify.com/motivational\_knockout\_17n/shopify-csv-catalog-change-audit.md
- **Developed by:** [Catalog Audit Tools](https://apify.com/motivational_knockout_17n) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5,000.00 / 1,000 completed audits

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Shopify CSV Catalog Change Audit

Compare your current product export with a proposed import before changing your store. Get a readable HTML report and structured JSON showing selected changed cells, blank overwrite risks, and unmatched variant options.

### Input

Paste the complete current export into **Current product export**, and the proposed import into **Proposed import**. Use UTF-8, comma-separated CSV. Each file can contain up to 5 MB and 20,000 records. This comparison tool requires Title and Handle / URL handle columns. Selected legacy and current headers are supported.

### Results

The run dataset contains a summary. Open run storage for **report.html** and **REPORT** (JSON). Repeated handles and blank titles on subsequent image or variant rows are expected. A missing baseline variant is not automatically classified as deleted.

### Scope

Checks cover CSV structure, selected price formats, populated-to-blank changes, option dependencies and ambiguous variants. This is a partial field audit, not a complete Shopify import simulator. It does not check live-store settings, image availability, taxonomy, metafield definitions, inventory locations or market configuration. No findings does not guarantee import success. Use a current, complete baseline and review Shopify's import preview.

### Data handling

No Shopify credentials required. The tool does not contact Shopify, an LLM, image URLs or other customer-supplied URLs. Inputs and reports are stored in your Apify run storage; manage their sharing and retention there. Source CSVs and store records are never modified.

Independent tool, not affiliated with Shopify. Developed with AI assistance; local regression tests cover 27 scenarios. Rules reviewed 5 September 2026 against [Shopify CSV guidance](https://help.shopify.com/en/manual/products/import-export/using-csv).

### Cloud verification

A private Apify run on 5 September 2026 completed in four seconds and reproduced the fictional sample: 3 changed cells, 1 error and 2 warnings. Both report formats were saved successfully. Open HTML report, JSON report or Summary in the Output tab. Exactly one summary item is generated per completed audit, regardless of product or finding count.

### Pricing

**$5 per completed audit**, including both report formats. There is no startup fee or additional platform usage charge. The Store may display this as $5,000 per 1,000 completed audits; each run produces exactly one audit. The charge applies when a report is generated, including a report that identifies CSV errors. Empty, non-text or oversized inputs fail before generating a report. Set the maximum cost per run to $5 for one audit.

# Actor input Schema

## `baselineCsv` (type: `string`):

Replace the fictional example with your complete current UTF-8 export (maximum 5 MB). Inputs and reports remain in your Apify run storage. Each completed audit costs $5, including runs using the example.

## `candidateCsv` (type: `string`):

Replace the fictional example with your proposed UTF-8 CSV (maximum 5 MB). The Actor audits it without accessing Shopify or changing the source. Reports identifying CSV errors still count as completed audits.

## Actor input object example

```json
{
  "baselineCsv": "Handle,Title,Vendor,Option1 Name,Option1 Value,Variant SKU,Variant Price\ndaily-mug,Daily Mug,Sample Works,Color,Blue,MUG-B,19.00\ndaily-mug,,,,Red,MUG-R,19.00\ncanvas-tote,Canvas Tote,Sample Works,Title,Default Title,TOTE-001,24.00\n",
  "candidateCsv": "URL handle,Title,Vendor,Option1 name,Option1 value,SKU,Price\ndaily-mug,Daily Mug,,Color,Blue,MUG-B,21.00\ndaily-mug,,,,Crimson,MUG-R,21.00\ncanvas-tote,Canvas Tote,Sample Works,Title,Default Title,TOTE-001,$26.00\n"
}
```

# Actor output Schema

## `report` (type: `string`):

No description

## `jsonReport` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "baselineCsv": `Handle,Title,Vendor,Option1 Name,Option1 Value,Variant SKU,Variant Price
daily-mug,Daily Mug,Sample Works,Color,Blue,MUG-B,19.00
daily-mug,,,,Red,MUG-R,19.00
canvas-tote,Canvas Tote,Sample Works,Title,Default Title,TOTE-001,24.00`,
    "candidateCsv": `URL handle,Title,Vendor,Option1 name,Option1 value,SKU,Price
daily-mug,Daily Mug,,Color,Blue,MUG-B,21.00
daily-mug,,,,Crimson,MUG-R,21.00
canvas-tote,Canvas Tote,Sample Works,Title,Default Title,TOTE-001,$26.00`
};

// Run the Actor and wait for it to finish
const run = await client.actor("motivational_knockout_17n/shopify-csv-catalog-change-audit").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "baselineCsv": """Handle,Title,Vendor,Option1 Name,Option1 Value,Variant SKU,Variant Price
daily-mug,Daily Mug,Sample Works,Color,Blue,MUG-B,19.00
daily-mug,,,,Red,MUG-R,19.00
canvas-tote,Canvas Tote,Sample Works,Title,Default Title,TOTE-001,24.00
""",
    "candidateCsv": """URL handle,Title,Vendor,Option1 name,Option1 value,SKU,Price
daily-mug,Daily Mug,,Color,Blue,MUG-B,21.00
daily-mug,,,,Crimson,MUG-R,21.00
canvas-tote,Canvas Tote,Sample Works,Title,Default Title,TOTE-001,$26.00
""",
}

# Run the Actor and wait for it to finish
run = client.actor("motivational_knockout_17n/shopify-csv-catalog-change-audit").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "baselineCsv": "Handle,Title,Vendor,Option1 Name,Option1 Value,Variant SKU,Variant Price\\ndaily-mug,Daily Mug,Sample Works,Color,Blue,MUG-B,19.00\\ndaily-mug,,,,Red,MUG-R,19.00\\ncanvas-tote,Canvas Tote,Sample Works,Title,Default Title,TOTE-001,24.00\\n",
  "candidateCsv": "URL handle,Title,Vendor,Option1 name,Option1 value,SKU,Price\\ndaily-mug,Daily Mug,,Color,Blue,MUG-B,21.00\\ndaily-mug,,,,Crimson,MUG-R,21.00\\ncanvas-tote,Canvas Tote,Sample Works,Title,Default Title,TOTE-001,$26.00\\n"
}' |
apify call motivational_knockout_17n/shopify-csv-catalog-change-audit --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,motivational_knockout_17n/shopify-csv-catalog-change-audit"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/v4uRPP6Qa5ZgpRoGW/builds/Ur9UlD9mWDf6Tfedg/openapi.json
