diff --git a/app/Http/Controllers/Supply.php b/app/Http/Controllers/Supply.php
index 6c1eb60..50b63aa 100644
--- a/app/Http/Controllers/Supply.php
+++ b/app/Http/Controllers/Supply.php
@@ -7,6 +7,7 @@ use Illuminate\Support\Facades\Http;
 use Illuminate\Support\Facades\Log;
 
 use App\Models\Supplier;
+use App\Models\Order;
 
 class Supply extends Controller
 {
@@ -60,4 +61,67 @@ class Supply extends Controller
 		}
 	}
 
+	public static function fulfill($order) {
+		if (gettype($order) == 'integer') {
+			$order = Order::find($order);
+		}
+	
+		return Supply::orderPrimary($order);
+	}
+
+	public static function fulfillAny($order) {
+		if (gettype($order) == 'integer') {
+			$order = Order::find($order);
+		}
+		
+		if (Supply::orderPrimary($order)) {
+
+		};
+	}
+
+	public static function orderPrimary($order) {
+		if (gettype($order) == 'integer') {
+			$order = Order::find($order);
+		}
+
+		$primary = $order->service->primary;
+
+		switch ($primary->supplier) {
+		case 'smmkings':
+			return Supply::orderSmmkings($order, $primary);
+			break;
+		case 'smmworld':
+			return Supply::orderSmmworld($order, $primary);
+			break;
+		}
+	}
+
+
+	public static function orderSmmkings($order, $supplier) {
+		if ($supplier->supplier != 'smmkings') {
+			return false;
+		}
+
+		$response = Http::post(config("services.smmkings.link"), ['key' =>
+			config("services.smmkings.key"), 'action' => 'add', 
+			'service' => $supplier->supplier_id, 'link' =>
+			$order->url, 'quantity' => $order->quantity])->json();
+
+		return $response;
+	}
+
+	public static function orderSmmworld($order, $supplier) {
+		if ($supplier->supplier != 'smmworld') {
+			return false;
+		}
+
+		$response = Http::post(config("services.smmworld.link"), ['key' =>
+			config("services.smmworld.key"), 'action' => 'add', 
+			'service' => $supplier->supplier_id, 'link' => $order->url, 'quantity' =>
+			$order->quantity])->json();
+
+		return $response;
+	}
+
+
 }
diff --git a/app/Models/Service.php b/app/Models/Service.php
index 920ee56..cffe180 100644
--- a/app/Models/Service.php
+++ b/app/Models/Service.php
@@ -23,4 +23,8 @@ class Service extends Model
 		return $this->hasMany(Supplier::class);
 	}
 
+	public function primary() {
+		return $this->belongsTo(Supplier::class, 'primary_supplier', 'id');
+	}
+
 }
diff --git a/database/migrations/2021_05_19_185302_create_orders_table.php b/database/migrations/2021_05_19_185302_create_orders_table.php
index 41f9740..587c99e 100644
--- a/database/migrations/2021_05_19_185302_create_orders_table.php
+++ b/database/migrations/2021_05_19_185302_create_orders_table.php
@@ -21,6 +21,9 @@ class CreateOrdersTable extends Migration
             $table->bigInteger('quantity');
             $table->integer('attempts')->default(0);
             $table->string('note')->default('');
+            $table->string('fulfilled_by')->nullable();
+            $table->string('fulfiller_status')->nullable();
+            $table->integer('fulfiller_id')->nullable();
             $table->string('message')->nullable();
             $table->bigInteger('remaining')->default(0);
 			$table->enum('status', ['processing', 'pending', 'canceled',