Panduan Lengkap Membangun Platform eCommerce dengan Django dan React

Bangun platform eCommerce impianmu dengan panduan lengkap menggunakan Django dan React. Temukan tips praktis dan strategi efektif di sini!

By WGS INDONESIA
4.9/4.9
Indonesia
Rp 43,750.00 GRATIS
E-COURSE banner with text and icons representing Artificial Intelligence and video learning

Detail Pembelajaran

Panduan Lengkap Membangun Platform eCommerce dengan Django dan React
  • eCommerce, Django, React, Pengembangan Web, Panduan, Teknologi

Baca Online

Panduan Lengkap Membangun Platform eCommerce dengan Django dan React

Daftar Isi

  1. Pendahuluan
  2. Persiapan Lingkungan Pengembangan
  3. Membangun Backend dengan Django
  4. Membangun Frontend dengan React
  5. Integrasi Backend dan Frontend
  6. Fitur Utama Platform eCommerce
  7. Deployment dan Hosting
  8. Sumber Belajar dan Source Code
  9. Penutup

1. Pendahuluan

Dalam panduan ini, Anda akan belajar bagaimana membangun sebuah platform eCommerce modern menggunakan Django sebagai backend dan React sebagai frontend. Platform ini akan mencakup fitur-fitur penting seperti manajemen produk, keranjang belanja, autentikasi pengguna, dan proses checkout.

Kami akan membahas langkah demi langkah mulai dari persiapan lingkungan pengembangan, pembuatan API dengan Django REST Framework, hingga membangun antarmuka pengguna interaktif dengan React.

Ilustrasi platform eCommerce modern dengan ikon keranjang belanja, produk, dan pengguna

2. Persiapan Lingkungan Pengembangan

Sebelum memulai pengembangan, pastikan Anda sudah menyiapkan lingkungan berikut:

  • Python 3.8+ dan pip
  • Node.js dan npm/yarn
  • Virtual environment untuk Python
  • Editor kode seperti VSCode

Langkah-langkah:

  1. Buat virtual environment dan aktifkan:
    python -m venv env
    source env/bin/activate  
    env\Scripts\activate  
  2. Install Django dan Django REST Framework:
    pip install django djangorestframework
  3. Install React menggunakan create-react-app:
    npx create-react-app frontend
Tampilan terminal dengan perintah setup lingkungan pengembangan Python dan Node.js

3. Membangun Backend dengan Django

Backend akan bertanggung jawab untuk mengelola data produk, pengguna, dan transaksi. Kita akan menggunakan Django REST Framework untuk membuat API yang dapat diakses oleh frontend React.

3.1 Membuat Project dan Aplikasi Django

django-admin startproject ecommerce
cd ecommerce
python manage.py startapp store

3.2 Definisikan Model Produk

# ecommerce/store/models.py
from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=255)
    description = models.TextField()
    price = models.DecimalField(max_digits=10, decimal_places=2)
    stock = models.PositiveIntegerField()
    image_url = models.URLField(blank=True)

    def __str__(self):
        return self.name

3.3 Membuat Serializer

# ecommerce/store/serializers.py
from rest_framework import serializers
from .models import Product

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = '__all__'

3.4 Membuat ViewSet dan Router

# ecommerce/store/views.py
from rest_framework import viewsets
from .models import Product
from .serializers import ProductSerializer

class ProductViewSet(viewsets.ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

# ecommerce/ecommerce/urls.py
from django.contrib import admin
from django.urls import path, include
from rest_framework import routers
from store.views import ProductViewSet

router = routers.DefaultRouter()
router.register(r'products', ProductViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include(router.urls)),
]

3.5 Migrasi dan Jalankan Server

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

Sekarang API backend sudah berjalan di http://localhost:8000/api/products/

Tampilan terminal menjalankan server Django REST Framework dengan endpoint API produk

4. Membangun Frontend dengan React

Frontend akan menampilkan produk dan memungkinkan pengguna berinteraksi dengan platform. Kita akan menggunakan React untuk membangun UI yang responsif dan dinamis.

4.1 Struktur Folder dan Instalasi Axios

cd frontend
npm install axios react-router-dom

4.2 Membuat Komponen Produk

// frontend/src/components/ProductList.js
import React, { useEffect, useState } from 'react';
import axios from 'axios';

export default function ProductList() {
  const [products, setProducts] = useState([]);

  useEffect(() => {
    axios.get('http://localhost:8000/api/products/')
      .then(response => setProducts(response.data))
      .catch(error => console.error(error));
  }, []);

  return (
    <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
      {products.map(product => (
        <div key={product.id} className="border rounded-lg p-4 shadow hover:shadow-lg transition">
          <img src={product.image_url || 'https://placehold.co/400x300/png?text=No+Image'} alt={`Gambar produk ${product.name}`} className="w-full h-48 object-cover rounded mb-3" />
          <h3 className="text-xl font-semibold mb-1">{product.name}</h3>
          <p className="text-gray-700 mb-2">{product.description}</p>
          <p className="font-bold text-indigo-600">Rp {product.price.toLocaleString('id-ID')}</p>
        </div>
      ))}
    </div>
  );
}

4.3 Menampilkan Komponen di App.js

// frontend/src/App.js
import React from 'react';
import ProductList from './components/ProductList';

function App() {
  return (
    <div className="min-h-screen bg-gray-50 p-6">
      <h1 className="text-3xl font-bold mb-6 text-center text-indigo-700">Daftar Produk</h1>
      <ProductList />
    </div>
  );
}

export default App;

Jalankan frontend dengan perintah npm start dan buka http://localhost:3000 untuk melihat daftar produk.

Tampilan frontend React menampilkan daftar produk eCommerce dengan gambar, nama, deskripsi, dan harga

5. Integrasi Backend dan Frontend

Untuk menghubungkan backend Django dan frontend React, pastikan API Django dapat diakses dari domain frontend. Anda bisa menggunakan CORS headers.

5.1 Install dan Konfigurasi Django CORS Headers

pip install django-cors-headers
# ecommerce/ecommerce/settings.py
INSTALLED_APPS += [
    'corsheaders',
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    # middleware lain...
]

CORS_ALLOWED_ORIGINS = [
    "http://localhost:3000",
]

Dengan konfigurasi ini, frontend React dapat melakukan request ke backend Django tanpa masalah CORS.

Tampilan kode konfigurasi CORS headers di Django settings.py

6. Fitur Utama Platform eCommerce

Berikut fitur utama yang akan kita bangun secara bertahap:

  • Manajemen Produk: CRUD produk dengan gambar, deskripsi, harga, dan stok.
  • Autentikasi Pengguna: Registrasi, login, dan manajemen profil pengguna.
  • Keranjang Belanja: Menambahkan produk ke keranjang dan mengelola jumlah item.
  • Proses Checkout: Mengisi alamat pengiriman dan metode pembayaran.
  • Riwayat Pesanan: Melihat status pesanan dan detail transaksi.

6.1 Contoh Source Code Autentikasi Django REST Framework

# ecommerce/store/views.py
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.authtoken.models import Token
from rest_framework.response import Response

class CustomAuthToken(ObtainAuthToken):
    def post(self, request, *args, **kwargs):
        serializer = self.serializer_class(data=request.data,
                                           context={'request': request})
        serializer.is_valid(raise_exception=True)
        user = serializer.validated_data['user']
        token, created = Token.objects.get_or_create(user=user)
        return Response({
            'token': token.key,
            'user_id': user.pk,
            'email': user.email
        })

# ecommerce/ecommerce/urls.py (tambahkan)
from store.views import CustomAuthToken
urlpatterns += [
    path('api-token-auth/', CustomAuthToken.as_view()),
]

6.2 Contoh Komponen Login React

// frontend/src/components/Login.js
import React, { useState } from 'react';
import axios from 'axios';

export default function Login() {
  const [email, setEmail] = useState('');
  const [password, setPassword] = useState('');
  const [error, setError] = useState(null);

  const handleSubmit = async e => {
    e.preventDefault();
    try {
      const response = await axios.post('http://localhost:8000/api-token-auth/', { email, password });
      localStorage.setItem('token', response.data.token);
      alert('Login berhasil!');
    } catch (err) {
      setError('Email atau password salah');
    }
  };

  return (
    <form onSubmit={handleSubmit} className="max-w-md mx-auto p-6 border rounded shadow">
      <h2 className="text-2xl font-bold mb-4 text-center">Login</h2>
      {error && <p className="text-red-600 mb-3">{error}</p>}
      <label className="block mb-2">
        Email:
        <input type="email" value={email} onChange={e => setEmail(e.target.value)} required className="w-full border rounded px-3 py-2 mt-1" />
      </label>
      <label className="block mb-4">
        Password:
        <input type="password" value={password} onChange={e => setPassword(e.target.value)} required className="w-full border rounded px-3 py-2 mt-1" />
      </label>
      <button type="submit" className="w-full bg-indigo-600 text-white py-2 rounded hover:bg-indigo-700 transition">Login</button>
    </form>
  );
}

7. Deployment dan Hosting

Setelah aplikasi selesai dikembangkan, langkah selanjutnya adalah deployment agar dapat diakses oleh pengguna secara online.

7.1 Deployment Backend Django

  • Gunakan layanan hosting seperti Heroku, DigitalOcean, atau AWS.
  • Gunakan database production seperti PostgreSQL.
  • Konfigurasi environment variables untuk keamanan.
  • Gunakan Gunicorn sebagai WSGI server dan Nginx sebagai reverse proxy.

7.2 Deployment Frontend React

  • Build aplikasi React dengan npm run build .
  • Hosting di layanan seperti Netlify, Vercel, atau GitHub Pages.
  • Pastikan konfigurasi API endpoint mengarah ke backend yang sudah dideploy.
Ilustrasi deployment aplikasi backend Django dan frontend React ke cloud hosting

8. Sumber Belajar dan Source Code

Berikut beberapa sumber belajar dan repository yang dapat membantu Anda memperdalam dan mengembangkan platform eCommerce ini:

Ilustrasi laptop dengan kode program dan video tutorial di layar

9. Penutup

Dengan mengikuti panduan ini, Anda telah mempelajari dasar-dasar membangun platform eCommerce modern menggunakan Django dan React. Anda dapat mengembangkan fitur lebih lanjut sesuai kebutuhan bisnis Anda.

Teruslah belajar dan eksplorasi teknologi web agar dapat menciptakan aplikasi yang handal dan user-friendly.

Semoga sukses dalam perjalanan pengembangan aplikasi Anda!

Ilustrasi orang sedang belajar dengan laptop dan suasana sukses

Edukasi Terkait