How to Automate Magento (Adobe Commerce) Admin (Catalog Uploads, Pricing Updates, Order Extraction — No API Required)

Mar 7

Introduction

Magento (Adobe Commerce) Admin is the backend for merchants to manage products, pricing, and orders. While Adobe Commerce offers APIs and integrations, browser automation offers a practical way to run catalog uploads, bulk pricing updates, and order extraction when API access is limited or when teams work primarily in the Magento Admin web UI.

Why Use Browser Automation for Magento (Adobe Commerce) Admin?

  • Limited API Access: Adobe Commerce REST and GraphQL may be restricted by license or custom modules
  • Catalog Uploads: Bulk import or update products, attributes, and inventory from the Catalog or import UI
  • Pricing Updates: Update base prices, tier pricing, special prices, and catalog price rules in bulk
  • Order Extraction: Export orders, invoices, and shipment data from Sales when API or report exports are limited
  • UI-Only Flows: Many admin workflows (imports, bulk actions, reports) are easiest to run from the web interface
  • Multi-Store and B2B: Operate across store views or B2B catalogs when API coverage is partial
  • Audit: Extract order and catalog data for compliance and reporting

Setting Up Magento (Adobe Commerce) Admin Automation

Here's how to automate catalog uploads, pricing updates, and order extraction in Magento Admin using browser automation:



import { chromium } from 'playwright';

const response = await fetch("https://api.anchorbrowser.io/api/sessions", {
  method: "POST",
  headers: {
    "anchor-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    'headless': false,
    'proxy': { 'type': 'residential', 'country': 'US' }
  }),
});

const { id } = await response.json();
const connectionString = `wss://connect.anchorbrowser.io?apiKey=YOUR_API_KEY&sessionId=${id}`;

const browser = await chromium.connectOverCDP(connectionString);
const context = browser.contexts()[0];
const ai = context.serviceWorkers()[0];
const page = context.pages()[0];

await page.goto("https://your-store.com/admin");

await ai.evaluate(JSON.stringify({
  prompt: 'Log in to Magento (Adobe Commerce) Admin using the provided credentials. Complete 2FA if required. Wait for the admin dashboard to load.'
}));



Use Case 1: Catalog Uploads

Bulk import or update products and attributes from the admin:



const runCatalogUpload = async (page, ai, criteria) => {
  await ai.evaluate(JSON.stringify({
    prompt: 'Navigate to Catalog > Products or System > Data Transfer > Import.'
  }));
  
  await page.waitForLoadState('networkidle');
  
  await ai.evaluate(JSON.stringify({
    prompt: criteria.mode === 'import'
      ? 'Start import. Upload the specified file (products, attributes, or inventory). Map columns if needed. Run import. Wait for completion. Do not log credentials.'
      : 'Open product grid or bulk edit. Select products by criteria. Apply attribute or inventory updates in bulk. Save.'
  }));
  
  await page.waitForLoadState('networkidle');
  
  const result = await ai.evaluate(JSON.stringify({
    prompt: 'Return summary: import result or number of products updated. As JSON. No credentials or PII.'
  }));
  
  return { result: typeof result === 'string' ? JSON.parse(result) : result, completedAt: new Date().toISOString() };
};



Use Case 2: Pricing Updates

Update base price, tier pricing, special prices, or catalog price rules in bulk:



const runPricingUpdates = async (page, ai, criteria) => {
  await ai.evaluate(JSON.stringify({
    prompt: 'Navigate to Catalog > Products (or bulk edit) or Marketing > Catalog Price Rules.'
  }));
  
  await page.waitForLoadState('networkidle');
  
  await ai.evaluate(JSON.stringify({
    prompt: criteria.action === 'base'
      ? 'Select products or SKUs. Update base price (and scope if multi-store). Save. Do not log sensitive data.'
      : criteria.action === 'special'
      ? 'Update special price or date range for selected products. Save.'
      : criteria.action === 'tier'
      ? 'Update tier pricing for selected products. Save.'
      : criteria.action === 'rules'
      ? 'Create or edit catalog price rule as specified. Save and apply.'
      : 'List products: SKU, price, special price. Return as JSON. No credentials.'
  }));
  
  await page.waitForLoadState('networkidle');
  
  const result = await ai.evaluate(JSON.stringify({
    prompt: 'Return summary: pricing updates applied. As JSON. No credentials or PII.'
  }));
  
  return { result: typeof result === 'string' ? JSON.parse(result) : result, completedAt: new Date().toISOString() };
};



Use Case 3: Order Extraction

Export orders, invoices, and shipment data from Sales:



const runOrderExtraction = async (page, ai, criteria) => {
  await ai.evaluate(JSON.stringify({
    prompt: 'Navigate to Sales > Orders (or Invoices, Shipments). Apply date or status filters if specified.'
  }));
  
  await page.waitForLoadState('networkidle');
  
  await ai.evaluate(JSON.stringify({
    prompt: criteria.exportType === 'orders'
      ? 'Export orders (grid export or report). Set date range. Wait for download. Do not include full PII in logs.'
      : criteria.exportType === 'invoices'
      ? 'Export invoices for the given range. Wait for download.'
      : criteria.exportType === 'shipments'
      ? 'Export shipment data. Wait for download.'
      : 'List order IDs and status for the filtered set. Return as JSON. No customer PII.'
  }));
  
  const download = await page.waitForEvent('download', { timeout: 60000 }).catch(() => null);
  return { path: download ? await download.path() : null, completedAt: new Date().toISOString() };
};



Best Practices for Magento (Adobe Commerce) Admin Automation

  • Security: Use admin accounts with least privilege and 2FA; never log credentials or customer PII; respect Adobe Commerce terms
  • Catalog Uploads: Prefer native import/export where available; use browser for custom flows or when CLI/API is restricted
  • Pricing Updates: Confirm store view and scope before bulk updates; avoid applying pricing to wrong catalog
  • Order Extraction: Export only data you are authorized to access; do not log full customer PII
  • Rate Limits: Add delays between actions to avoid throttling and indexer load
  • Error Handling: Retry on session timeout; handle 2FA and reindex prompts gracefully
  • Compliance: Align with Adobe Commerce usage and data protection requirements

Handling Authentication

Magento Admin supports username/password and often 2FA:



const handleMagentoAdminAuth = async (page, ai, credentials) => {
  await page.goto("https://your-store.com/admin");
  
  await ai.evaluate(JSON.stringify({
    prompt: 'Sign in with the provided admin credentials. If 2FA is required, complete verification. Wait for the admin dashboard to load.'
  }));
  
  await page.waitForLoadState('networkidle');
};



Resources

Conclusion

Browser automation provides a flexible alternative to API and manual workflows for Magento (Adobe Commerce) Admin. By using intelligent browser agents, you can automate catalog uploads, bulk pricing updates, and order extraction directly from the Admin web UI. Whether you need to import products and attributes, update prices and catalog rules, or export orders and invoices, browser automation enables efficient e-commerce admin when API access is limited or when teams work in the portal.

Start automating your Magento (Adobe Commerce) Admin catalog, pricing, and order workflows today.

Other hubs

See all
No hubs found

Stay ahead in browser automation

We respect your inbox. Privacy policy

Welcome aboard! Thanks for signing up
Oops! Something went wrong while submitting the form.