Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

A lightweight and non-intrusive(no DB bloat unless you extend it to save) developer-friendly Magento 2 module to generate fake customers, products, and orders via GraphQL & REST APIs

Notifications You must be signed in to change notification settings

supravatm/magento2-fake-data-api

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧪 Magento 2 Mock Data Generator (GraphQL + REST API)

A lightweight and non-intrusive(no DB bloat unless you extend it to save) developer-friendly Magento 2 module to generate fake customers, products, and orders via GraphQL & REST APIs. Powered by FakerPHP.

Useful when:
✅ You need quick test data for local/staging development
✅ Testing GraphQL storefronts (Vue, React, PWA Studio, etc.)
✅ Avoiding manual CSV uploads or repetitive admin work


🚀 Features

  • Generate Customers, Products, and Orders with one API call
  • Supports REST (/V1/mockdata/generate) and GraphQL
  • Customizable entity and numberOfItems parameters
  • Lightweight and non-intrusive (no DB bloat unless you extend it to save)

📦 Installation

Install via Composer (recommended)

If your module is published on Packagist, you can install it directly:

  composer require --dev supravatm/magento2-module-fake-data-api
  bin/magento module:enable SMG_MockDataGenerator
  bin/magento setup:upgrade

Preferred way : easier upgrades, dependency management, Packagist support.

Manual Installation (alternative)

Download the module .zip or clone the repo. Extract it into Magento’s app/code directory:

mkdir -p app/code/SMG
cd app/code/SMG
git clone git@github.com:supravatm/magento2-fake-data-api.git MockDataGenerator
bin/magento module:enable SMG_MockDataGenerator
bin/magento setup:upgrade
bin/magento cache:flush

🔧 Usage

✅ REST API

Endpoint:

POST /rest/V1/mockdata/generate

Body Example:

{
    "entity": "product",
    "numberOfItems": 1,
    "searchCriteria": {
        "pageSize": 10,
        "currentPage": 1
    }
}

Response:

{
    "items": [
        {
            "entity_id": 1,
            "sku": "FAKE-8051WX",
            "name": "Portable Smartphone",
            "attribute_set_id": 4,
            "price": 893.19,
            "status": 1,
            "visibility": 4,
            "type_id": "simple",
            "created_at": "2025-03-02 06:40:17",
            "updated_at": "2025-09-14 22:45:57",
            "weight": 1.92,
            "extension_attributes": {
                "website_ids": [
                    1
                ],
                "category_links": [
                    {
                        "position": 0,
                        "category_id": "3",
                        "extension_attributes": {}
                    }
                ],
                "stock_item": {
                    "item_id": 0,
                    "product_id": 0,
                    "stock_id": 1,
                    "qty": 32,
                    "is_in_stock": false,
                    "use_config_manage_stock": true,
                    "manage_stock": true,
                    "extension_attributes": {}
                }
            },
            "product_links": [],
            "options": [],
            "media_gallery_entries": [],
            "tier_prices": [],
            "custom_attributes": [
                {
                    "attribute_code": "description",
                    "value": "High-quality Portable Smartphone with long battery life."
                },
                {
                    "attribute_code": "short_description",
                    "value": "Stylish portable smartphone available in navy."
                },
                {
                    "attribute_code": "color",
                    "value": "navy"
                }
            ]
        }
    ],
    "search_criteria": {
        "filter_groups": [],
        "page_size": 1,
        "current_page": 1
    },
    "total_count": 1
}

✅ GraphQL

Query:

{
  MockDataProduct(numberOfItems: 1) {
    items {
      entity_id
      name
      price
      sku
      status
      type_id
      visibility
      weight
    }
    total_count
  }
}

Response:

{
  "data": {
    "MockDataProduct": {
      "items": [
        {
          "entity_id": 1,
          "name": "Smart Backpack",
          "price": 531.97,
          "sku": "FAKE-0348VS",
          "status": 1,
          "type_id": "simple",
          "visibility": 4,
          "weight": 4.41
        }
      ],
      "total_count": 1
    }
  }
}
{
  MockDataCustomer(numberOfItems: 1) {
    items {
      addresses
      {
        street
        country_id
      }
      id
      email
    }
    total_count
  }
}

Response:

{
  "data": {
    "MockDataCustomer": {
      "items": [
        {
          "addresses": [
            {
              "street": [
                "23973 Maxime Grove"
              ],
              "country_id": "US"
            },
            {
              "street": [
                "9718 Jonathan Rapid Apt. 836"
              ],
              "country_id": "US"
            }
          ],
          "id": 540,
          "email": "hartmann.dexter@example.net"
        }
      ],
      "total_count": 1
    }
  }
}
{
  MockDataOrder(numberOfItems: 1) {
    items {
      
      billing_address {
        street
        city
        country_id
      }
      customer_email
      increment_id
      grand_total
      items {
        sku
        name
        qty_ordered
      }
      payment {
        method
        amount_paid
      }
      shipping_amount
      state
      status
      status_histories {
        comment
        status
      }
    }
    total_count
  }
}

Response:

{
  "data": {
    "MockDataOrder": {
      "items": [
        {
          "billing_address": {
            "street": [
              "4994 Jakubowski Bypass"
            ],
            "city": "Port Keatonville",
            "country_id": "SA"
          },
          "customer_email": "queen.osinski@example.net",
          "increment_id": "427471870",
          "grand_total": 1533.49,
          "items": [
            {
              "sku": "SKU-668UB",
              "name": "Ergonomic Laptop",
              "qty_ordered": 3
            }
          ],
          "payment": {
            "method": "paypal",
            "amount_paid": 1533.49
          },
          "shipping_amount": 13.93,
          "state": "closed",
          "status": "pending",
          "status_histories": [
            {
              "comment": "Package delayed due to carrier issues. Informed customer.",
              "status": "complete"
            }
          ]
        }
      ],
      "total_count": 1
    }
  }
}

⚙️ Supported Entities

  • customer
  • product
  • order

(You can extend this to support categories, reviews, invoices, etc.)


🧑‍💻 Development Notes

  • Uses FakerPHP for data generation
  • Data is returned via API response only (does not save to DB by default)
  • You can extend MockDataRepository.php to insert generated entities into Magento DB

📝 License

This repository is licensed under the MIT License. Feel free to fork, modify, and share.


© 2025 Supravat Mondal. All rights reserved.

About

A lightweight and non-intrusive(no DB bloat unless you extend it to save) developer-friendly Magento 2 module to generate fake customers, products, and orders via GraphQL & REST APIs

Topics

Resources

Stars

Watchers

Forks

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.