PHPackages                             gurmehub/helpdesk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. gurmehub/helpdesk

ActiveLibrary

gurmehub/helpdesk
=================

Laravel Helpdesk package — Odoo XML-RPC client and Inertia React pages.

0.1.5(today)05↑2900%proprietaryTypeScriptPHP ^8.2

Since Jul 30Pushed todayCompare

[ Source](https://github.com/gurmesoft/helpdesk)[ Packagist](https://packagist.org/packages/gurmehub/helpdesk)[ RSS](/packages/gurmehub-helpdesk/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (4)Versions (7)Used By (0)

gurmehub/helpdesk
=================

[](#gurmehubhelpdesk)

Laravel Composer paketi. **Odoo Helpdesk** ile **XML-RPC** (`/xmlrpc/2/common`, `/xmlrpc/2/object`) üzerinden konuşur. Inertia + React (Polaris) sayfaları içerir. Ticket için Eloquent model yoktur.

Gereksinimler
-------------

[](#gereksinimler)

- PHP 8.2+
- Laravel 11 veya 12 (Inertia React)
- Host’ta Polaris, App Bridge, Vite ve React hazır olmalı
- Host’ta **Laravel Wayfinder** (`laravel/wayfinder` + `@laravel/vite-plugin-wayfinder`) kurulu olmalı — paket frontend URL’leri için zorunlu
- Giriş yapmış kullanıcı: `users.name` = Shopify mağaza domaini (Odoo `shopify_domain` ile eşleşir)
- Host’ta `verify.shopify` middleware tanımlı olmalı (API route’ları bunu kullanır)
- `App\Models\User` üzerinde Shopify GraphQL için `api()->graph()` olmalı (create/reply iletişim alanları)

Kurulum
-------

[](#kurulum)

```
composer require gurmehub/helpdesk:^0.1
```

Host `.env`:

```
HELPDESK_ODOO_URL=https://odoo.example.com
HELPDESK_ODOO_DB=odoo
HELPDESK_ODOO_USERNAME=api@example.com
HELPDESK_ODOO_PASSWORD=api-key-or-password
HELPDESK_TEAM_ID=1
HELPDESK_ODOO_COMPANY_ID=1,3

# isteğe bağlı:
# HELPDESK_SOLVED_STAGE_ID=
# HELPDESK_TIMEOUT=30
# HELPDESK_LANG=tr_TR
# HELPDESK_PREFIX=helpdesk
# HELPDESK_ROUTE_TICKETS=tickets
```

`HELPDESK_TEAM_ID` ticket oluşturmak için zorunludur. `HELPDESK_ODOO_COMPANY_ID` virgülle ayrılmış company id listesidir (`allowed_company_ids`).

Config publish (opsiyonel):

```
php artisan vendor:publish --tag=helpdesk-config
```

Host `app.blade.php` (zorunlu)
------------------------------

[](#host-appbladephp-zorunlu)

Laravel Inertia scaffold genelde sayfa chunk’ını Vite ile preload eder:

```
@vite(['resources/js/app.tsx', "resources/js/pages/{$page['component']}.tsx"])
```

Helpdesk sayfaları paket içinde (`vendor/gurmehub/helpdesk/...`) olduğu için bu path production manifest’te yoktur ve şu hatayı üretir:

`Unable to locate file in Vite manifest: resources/js/pages/helpdesk/tickets/index.tsx`

Sadece entry bırakın:

```
@vite(['resources/js/app.tsx'])
```

Sayfalar `app.tsx` içindeki `import.meta.glob` + `resolveHelpdeskPage` ile yüklenir. Host sayfaları bozulmaz; yalnızca erken page preload kalkar.

Host Inertia resolve
--------------------

[](#host-inertia-resolve)

Paket `resources/js/inertia.ts` içinde kendi glob’unu taşır. Host `app.tsx`’e fallback ekleyin:

```
import { resolveHelpdeskPage } from "../../vendor/gurmehub/helpdesk/resources/js/inertia";

const hostPages = import.meta.glob("./pages/**/*.tsx");

createInertiaApp({
  resolve: (name) => {
    const hostKey = `./pages/${name}.tsx`;
    if (hostPages[hostKey]) {
      return resolvePageComponent(hostKey, hostPages);
    }
    return resolveHelpdeskPage(name);
  },
  // ...
});
```

`vite.config.ts` değiştirmenize gerek yok (Wayfinder plugin zaten host’ta olmalı). Asıl zorunlu olan üstteki `app.blade.php` `@vite` düzeltmesidir.

Paket içinde ayrı bir `tsconfig.json` yoktur; Vite host projenin `tsconfig.json` dosyasını kullanır.

Kurulumdan sonra frontend’i build edin (`npm run build` veya `npm run dev`) — helpdesk sayfaları host Vite bundle’ına o zaman girer.

Wayfinder (frontend URL’leri)
-----------------------------

[](#wayfinder-frontend-urlleri)

Paket React sayfaları route URL’lerini controller’dan Inertia prop olarak **almaz**. URL’ler host Wayfinder ile üretilir:

```
import {
  index,
  create,
  show,
  store,
  storeMessage,
  markSolved,
} from "@/actions/Gurmehub/Helpdesk/Http/Controllers/TicketController";

create.url();
show.url(ticketId);
store.url();
storeMessage.url(ticketId);
markSolved.url(ticketId);
```

### Önemli: route env değişince yeniden build

[](#önemli-route-env-değişince-yeniden-build)

`HELPDESK_PREFIX`, `HELPDESK_ROUTE_TICKETS` (veya `config/helpdesk.php` route ayarları) değişirse Wayfinder URL’leri **build anındaki** değerlere gömülür. Sadece `.env` değiştirmek frontend’deki linkleri güncellemez.

Değişiklikten sonra mutlaka:

```
npm run build
```

(`@laravel/vite-plugin-wayfinder` build/dev sırasında `wayfinder:generate` çalıştırır.)

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance100

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

6

Last Release

0d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7eb16e9262f2d240142e1e0208acbff469599d178f6dd138f1a7f2f6b6042b51?d=identicon)[gurmehub](/maintainers/gurmehub)

---

Top Contributors

[![FikretCin](https://avatars.githubusercontent.com/u/98125934?v=4)](https://github.com/FikretCin "FikretCin (7 commits)")

### Embed Badge

![Health badge](/badges/gurmehub-helpdesk/health.svg)

```
[![Health](https://phpackages.com/badges/gurmehub-helpdesk/health.svg)](https://phpackages.com/packages/gurmehub-helpdesk)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M348](/packages/psalm-plugin-laravel)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77922.3M192](/packages/laravel-mcp)[api-platform/laravel

API Platform support for Laravel

58174.6k17](/packages/api-platform-laravel)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1235.9k21](/packages/fleetbase-core-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
