A simple and clean Laravel 12 application with Vue.js frontend for syncing products with Shopify using GraphQL API.
- Laravel 12 with PHP 8.4 support
- Vue.js 3 frontend with modern UI
- Shopify GraphQL API integration (no REST API complexity)
- Simple product management - add, view, sync with Shopify
- Clean, modular code following Laravel best practices
- No complex event handling or job queues - just simple sync
- Laravel 12 - Latest Laravel framework
- PHP 8.4 - Latest PHP version
- SQLite - Simple database (can be changed to MySQL/PostgreSQL)
- Guzzle HTTP - For Shopify API calls
- Vue.js 3 - Modern reactive framework
- Axios - HTTP client for API calls
- Vite - Fast build tool
- Modern CSS - Clean, responsive design
- PHP 8.4+
- Composer 2.0+
- Node.js 18+
- npm or yarn
cd backend
composer install
cp .env.example .env
php artisan key:generate
Edit .env
file:
# Shopify Configuration
SHOPIFY_SHOP=your-shop-name
SHOPIFY_TOKEN=your-shopify-access-token
php artisan migrate
php artisan serve
cd frontend
npm install
npm run dev
- Backend API: http://localhost:8000
- Frontend: http://localhost:5173
- Create a Shopify App in your Shopify Partner account
- Generate Access Token with product read/write permissions
- Update .env with your shop name and access token
- Test the integration by adding products
├── backend/ # Laravel 12 Backend
│ ├── app/
│ │ ├── Http/Controllers/
│ │ │ └── ProductController.php # Simple CRUD controller
│ │ ├── Models/
│ │ │ └── Product.php # Clean Product model
│ │ └── Services/
│ │ └── ShopifyService.php # GraphQL Shopify integration
│ ├── database/migrations/
│ │ └── create_products_table.php # Simple product schema
│ └── routes/api.php # Clean API routes
├── frontend/ # Vue.js 3 Frontend
│ ├── src/
│ │ ├── components/
│ │ │ └── ProductList.vue # Main product management
│ │ └── App.vue # Clean app layout
│ └── package.json
└── README.md
GET /api/products
- List all products (with Shopify sync)POST /api/products
- Create new productGET /api/products/{id}
- Get specific productPUT /api/products/{id}
- Update productDELETE /api/products/{id}
- Delete product
- No complex event handling - direct service calls
- No job queues - simple synchronous operations
- Clean GraphQL integration - modern Shopify API usage
- Simple error handling - straightforward responses
- Modern Vue 3 Composition API
- Real-time search and filtering
- Simple product form with Shopify sync option
- Clean, responsive design
- No complex state management - just Vue refs
- Add Product: Fill form and optionally sync with Shopify
- Shopify Sync: Uses GraphQL API to create products in Shopify
- View Products: See local products and sync status
- Shopify Products: Display products from Shopify store
# Backend tests
cd backend
php artisan test
# Frontend tests (if configured)
cd frontend
npm run test
- Set
APP_ENV=production
- Configure production database
- Set
APP_DEBUG=false
- Ensure Shopify credentials are set
npm run build
# Deploy dist/ folder to your web server
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open-sourced software licensed under the MIT license.
For issues and questions:
- Check the documentation
- Review the code structure
- Create an issue with detailed information
Built with ❤️ using Laravel 12, PHP 8.4, and Vue.js 3