Zinn Digital®-ის მოდული WHMCS-ის საკუთარ ღილაკებს ჩვენს პლატფორმაზე რეალურ მოქმედებებად გარდაქმნის. შეკვეთა უზრუნველყოფს თქვენი კლიენტის ჰოსტინგის გააქტიურებას (provisioning). WHMCS-ის ვადაგადაცილებული ინვოისების ავტომატიზაცია აჩერებს მას. ინვოისის გადახდილად მონიშვნა ააქტიურებს მას. გაუქმება გეგმავს წაშლას. ხოლო თქვენი კლიენტი თავის კლიენტის არეში იღებს ღილაკს Log in to hosting panel, რომლითაც პირდაპირ შედის სისტემაში.
ის არის უფასო, GPL-2.0-or-later ლიცენზიით და არ გააჩნია რაიმე პრივილეგირებული წვდომა ჩვენს პლატფორმაზე: ყოველი მოთხოვნა, რომელსაც ის ასრულებს, წარმოადგენს დოკუმენტირებულ endpoint-ს, რომლის შესრულებაც თავად შეგიძლიათ საკუთარი API გასაღებით.
სანამ დაიწყებთ
თქვენ გჭირდებათ ორი რამ, და მეორე მათგანი ხშირად შეცდომაში შეჰყავს ხოლმე მომხმარებლები.
- Zinn®-ის რესელერის ანგარიში აქტიური პროგრამით. დარეგისტრირდით საიტზე
zinndigital.com და ჩართეთ რესელინგი.
- რესელერის ტარიფი საიტების ლიმიტით (site allowance). საიტები, რომლებსაც თქვენი კლიენტები უკვეთენ, ითვლება თქვენი
ტარიფის წინააღმდეგ, ამიტომ გჭირდებათ ტარიფი, რომელშიც დარჩენილია ადგილი.
⚠️ Test Connection ვერ გეტყვით, წარმატებით დასრულდება თუ არა შეკვეთა. ის კითხულობს თქვენს პროგრამას და არ ახდენს არაფრის გააქტიურებას, შესაბამისად, აფიქსირებს გამართულ active ანგარიშს, რომელსაც ჯერ არ შეუძლია რაიმეს გაყიდვა. თუ თქვენი პირველი შეკვეთა ვერ შესრულდა შეცდომით "This organization has no hosting plan, so it cannot host a site yet", მიზეზი სწორედ ესაა — შეიძინეთ ან გააფართოვეთ თქვენი რესელერის ტარიფი და ხელახლა გააფორმეთ შეკვეთა. მოდულს არაფერი სჭირს.
1. შექმენით API გასაღები
თქვენს Zinn®-ის მართვის პანელში გახსენით API keys და შექმენით გასაღები ზუსტად ამ თერთმეტი ნებართვით:
| ნებართვა | რატომ არის საჭირო |
|---|
org.create | თქვენი კლიენტის Zinn® ანგარიშის გახსნა პირველი შეკვეთისას. |
org.read | თქვენი კლიენტის ანგარიშების წაკითხვა. |
sites.create | საიტის გააქტიურება (provision). |
sites.view | სერვისისა და მისი რესურსების მოხმარების წაკითხვა. |
sites.delete | შეწყვეტა (terminate). |
reseller.view | გაყიდულების ჩამონათვალი, დისკისა და გამტარუნარიანობის ნახვა. |
reseller.provision | შეჩერება, გააქტიურება, კლიენტის სისტემაში შესვლა, მისი ტარიფის დაყენება და პაკეტის შეცვლა. |
billing.view | გაუმჯობესების (upgrade) ღირებულების ნახვა მის განხორციელებამდე. |
sites.manage | ქეშის გასუფთავება და სარეზერვო ასლის შექმნა ღილაკებიდან. |
sites.panel_access | WordPress-ის ადმინისტრატორის პაროლის შეცვლა. |
hosting.php.manage | PHP-ის ვერსიის შეცვლა გაუმჯობესების ან დაქვეითების დროს. |
⛔ არ მიანიჭოთ reseller.manage. ბილინგის პანელში ჩასმულ გასაღებს უნდა შეეძლოს კლიენტის სერვისის შეჩერება გადაუხდელობის გამო და მისი სისტემაში შეყვანა. მას არ უნდა შეეძლოს თქვენი გადახდის კარიბჭის (payment gateway) მონაცემების წაკითხვა და გადაწერა. reseller.provision სწორედ იმიტომ არსებობს, რომ არ დაგჭირდეთ უფრო ფართო ნებართვის მინიჭება. ⛔ org.create არ არის არასავალდებულო. მის გარეშე მოდულს შეუძლია წაიკითხოს თქვენი ანგარიშები, მაგრამ ვერ შეძლებს ახლის გახსნას, ამიტომ Test Connection წარმატებით გაივლის, ხოლო პირველი შეკვეთა დააბრუნებს შეცდომას 403. ⛔⛔ მიანიჭეთ მთელი ცხრილი და გაითვალისწინეთ, რომ Test Connection ვერ გეტყვით, თუ რომელიმე გამოგრჩათ. ის კითხულობს თქვენს რესელერის პროგრამას და არაფერს ააქტიურებს, ამიტომ მწვანე იქნება იმ გასაღებისთვისაც, რომელსაც რომელიმე მათგანი აკლია. სანაცვლოდ მიიღებთ 403-ს იმ ერთ ოპერაციაზე, რომელსაც გამოტოვებული ნებართვა ფარავს, რამდენიმე თვის შემდეგ, მომხმარებლისგან.
2. დააინსტალირეთ მოდული
- ჩამოტვირთეთ მოდული და ამოაარქივეთ იგი.
- ატვირთეთ
zinn დირექტორია თქვენს WHMCS ინსტალაციაში ისე, რომ მოდულის ფაილი აღმოჩნდეს მისამართზე
modules/servers/zinn/zinn.php.
⛔ დირექტორიას აუცილებლად უნდა ერქვას zinn. WHMCS პროვიჟენინგის მოდულის ფუნქციების სახელებს მისი დირექტორიის სახელიდან აგენერირებს, ამიტომ მისი გადარქმევა zinn-whmcs-ად ან zinndigital-ად წარმოქმნის მოდულს, რომელსაც WHMCS სიაში აჩვენებს, გაძლევთ არჩევის საშუალებას, მაგრამ შემდეგ არასდროს იძახებს — ყოველგვარი შეცდომის შეტყობინების გარეშე. არქივი უკვე სწორი სახელით იხსნება; უბრალოდ არ გადაარქვათ სახელი.
3. დაამატეთ სერვერი
WHMCS-ში: Configuration → System Settings → Servers → Add New Server.
- Name: ნებისმიერი, მაგ.
Zinn Digital®
- Hostname:
api.zinndigital.com
- Type:
Zinn Digital®
- Password: თქვენი API გასაღები 1-ლი ნაბიჯიდან
⛔ გასაღები იწერება Password ველში, რომელსაც WHMCS დაშიფრულად ინახავს. არ ჩასვათ იგი პროდუქტის კონფიგურაციის პარამეტრში — ისინი მონაცემთა ბაზაში ღია ტექსტად (plain text) ინახება და ხილულია ყველა ადმინისტრატორისთვის, ამ მონაცემს კი შეუძლია შექმნას და წაშალოს თქვენი კლიენტების ჰოსტინგი.
დააჭირეთ Test Connection. ის აკეთებს რეალურ გამოძახებას და აჩვენებს პასუხს ჩვენი პლატფორმიდან, ნაცვლად იმისა, რომ უბრალოდ შეამოწმოს, შევსებულია თუ არა ველები.
4. შექმენით პროდუქტი
Configuration → System Settings → Products/Services, შემდეგ მიუთითეთ Module Settings-ში ის სერვერი, რომელიც ახლახან დაამატეთ. ველებია:
| ველი | სავალდებულო | რას წარმოადგენს |
|---|
| Product line | დიახ | Zinn®-ის ხაზი, რომელსაც ყიდით — mainstream (მართული WordPress), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail ან reseller. |
| Stack | დიახ | რა ინსტალირდება: wordpress (ნაგულისხმევი), woocommerce, php, static, node, one_click, headless_cms, nextcloud ან owncloud. |
| Application | არა | მხოლოდ one_click და headless_cms სტეკებისთვის — რომელი აპლიკაცია დაინსტალირდეს. ნებისმიერ სხვა სტეკზე მისი მითითება უარყოფილი იქნება, რადგან ეს სტეკი თავად განსაზღვრავს, რა უნდა დაინსტალირდეს. |
| PHP version | არა | მაგ. 8.3. დატოვეთ ცარიელი ხაზის ნაგულისხმევი მნიშვნელობისთვის. ვერსია, რომელსაც ხაზი არ უზრუნველყოფს, უარყოფილი იქნება იმ ვერსიების სიასთან ერთად, რომლებიც ხელმისაწვდომია. |
| Plan code | დიახ | Zinn®-ის ტარიფი, რომელსაც ეს პროდუქტი ყიდის. GET /v1/reseller/prices აჩვენებს თქვენს სიას. შეკვეთა მის გარეშე უარყოფილია — იხილეთ გაფრთხილება ქვემოთ. |
| Billing interval | არა | monthly (ნაგულისხმევი) ან annual — ინტერვალი, რომლითაც გაიცემა თქვენი საბითუმო ინვოისი ამ კლიენტისთვის. რასაც თქვენ ახდევინებთ საკუთარ კლიენტს, განსაზღვრულია WHMCS-ის პროდუქტზე და უცვლელი რჩება. |
⛔⛔ Plan code სავალდებულოა, და შეკვეთა მის გარეშე მიზანმიმართულად უარყოფილია. 2026-09-01-მდე ეს ველი დეკორატიული იყო და მას არაფერი კითხულობდა, ამიტომ მოდული უკვეთავდა ჰოსტინგს, რომელსაც საერთოდ არ ჰქონდა ტარიფი — და ამის ყოველი შედეგი შეუმჩნეველი იყო. თქვენი საბითუმო ამონაწერი იქმნება თქვენი კლიენტების აქტიური გამოწერებიდან, შესაბამისად, სერვისისთვის არ არსებობდა ჩანაწერი და თქვენთვის ინვოისი არ გამოწერილა მანამ, სანამ ის მუშაობდა; თქვენს კლიენტს არ გადასცემია ლიმიტები, ამიტომ მათ საიტზე არ ვრცელდებოდა დისკის ან ფაილების კვოტა; და Change Package-ს არაფერი ჰქონდა შესაცვლელი, ასე რომ თქვენ მიერ გაყიდული გაუმჯობესება ვერ შესრულდებოდა. საიტი ამ პერიოდში სრულფასოვნად ფუნქციონირებდა და ემსახურებოდა ვიზიტორებს.
ახლა მოდული უარყოფს შეკვეთას, რადგან არ არსებობს უსაფრთხო ტარიფი, რომელიც მან შეიძლება თავად გამოიცნოს: გამოცნობა გაააქტიურებდა ჰოსტინგს იმ ტარიფით, რომელიც თქვენ არ აგირჩევიათ და შესაძლოა ფასიც არ გქონოდათ დაწესებული, და — უარყოფისგან განსხვავებით, რასაც მაშინვე ხედავთ — ეს გამოჩნდებოდა მხოლოდ მაშინ, როდესაც ამონაწერი მოვიდოდა, თუ საერთოდ გამოჩნდებოდა.
დააყენეთ Auto Setup თქვენთვის სასურველ რეჟიმზე — მოდული არის იდემპოტენტური WHMCS სერვისის id-ის მიმართ, ამიტომ განმეორებითი გააქტიურების მცდელობა დააბრუნებს იმავე საიტს, ნაცვლად იმისა, რომ თანხა ჩამოგაჭრათ მეორე საიტისთვის.
რას აკეთებს WHMCS-ის თითოეული მოქმედება
| WHMCS მოქმედება | რა ხდება ჩვენს მხარეს |
|---|
| Create | ქმნის კლიენტის Zinn® ანგარიშს (ან იყენებს უკვე არსებულს) და ააქტიურებს მის საიტს. |
| Suspend | აჩერებს საიტს გადაუხდელობის გამო. კონტენტი შენარჩუნებულია; არაფერი იშლება. |
| Unsuspend | ხსნის თქვენს შეჩერებას. |
| Terminate | გეგმავს საიტის წაშლას, საშეღავათო პერიოდით. თარიღი ნაჩვენებია კლიენტის არეში. |
| Usage update | ანახლებს დისკისა და გამტარუნარიანობის მონაცემებს ყველა სერვისზე, დღეში ერთხელ. |
| Log in to hosting panel | ხსნის ერთჯერად შესვლის ბმულს პირდაპირ თქვენი კლიენტის მართვის პანელში. |
| Change Package | აუმჯობესებს ან აქვეითებს სერვისს. გადაიტანს პაკეტს და PHP-ის ვერსიას, თუ ახალ პროდუქტში მითითებულია. |
| Change Password | აყენებს WordPress-ის ადმინისტრატორის პაროლს. ველი არ ჩანს იმ სტეკებზე, რომლებსაც არ აქვთ ასეთი ანგარიში. |
| Renew | ადასტურებს, რომ სერვისი კვლავ არსებობს. Zinn®-ის ჰოსტინგი უწყვეტია, ამიტომ გასაგრძელებელი გარე ვადა არ არსებობს. |
| Sync Usage / Purge Cache / Take Backup | ღილაკები ადმინისტრატორის სერვისის გვერდზე. თქვენი კლიენტი იღებს Purge Cache-ს და Take Backup-ს თავის კლიენტის არეში. |
| Service tab | სტატუსი, ტარიფი, დისკი, გამტარუნარიანობა, ნებისმიერი დაგეგმილი წაშლა და ვინ დააწესა შეჩერება. |
| Import | ListAccounts კითხულობს ყველა გვერდს, ამიტომ იმპორტი ვერ შეჩერდება ჩუმად პირველსავე გვერდზე. |
გაუმჯობესებები: ვინ ვის ახდევინებს საფასურს
თქვენს კლიენტს Zinn® არასდროს უგზავნის ინვოისს, არც შეკვეთისას და არც გაუმჯობესებისას. თქვენ ახდევინებთ მათ საფასურს WHMCS-ის მეშვეობით; ჩვენ თქვენ გაწერთ ინვოისს, თქვენს საბითუმო ამონაწერში. ამიტომ Change Package ცვლის თქვენი კლიენტის უფლებამოსილებებსა და ჩანაწერს თქვენს შემდეგ ამონაწერში და არ ეხება ბარათს — WHMCS-ს უკვე აღებული აქვს თქვენი კლიენტის თანხა და დათვლილი აქვს პროპორციული გადასახადი (proration).
კლიენტის მეორე სერვისი. იმავე ტარიფზე ეს არის კიდევ ერთი საიტი ამ ტარიფის საკუთარი საიტების ლიმიტის ფარგლებში, და დამატებით არაფერი გაიცემა. განსხვავებულ ტარიფზე ის უარყოფილია: აქტიური ტარიფის ჩანაცვლება ორი სერვისიდან ერთ-ერთს გადაუხდელს დატოვებდა. ან გაყიდეთ ორივე ერთსა და იმავე ტარიფზე, ან დაარეგისტრირეთ კლიენტი ცალკე კლიენტის ჩანაწერად WHMCS-ში.
Change Password არსებობს მხოლოდ WordPress-ისთვის. Zinn®-ის ჰოსტინგს არ გააჩნია ერთიანი „სერვისის პაროლი“ — თქვენი კლიენტი პანელში შედის შესვლის ღილაკით — ხოლო php ან static საიტს არ აქვს შესაცვლელი სააპლიკაციო ანგარიში. WHMCS სრულად მალავს ამ ველს, ნაცვლად იმისა, რომ აჩვენოს ისეთი, რომელიც ვერ იმუშავებს.
სამი პასუხი, რომლებიც ორად არ უნდა გააერთიანოთ
- Unsuspend-მა შეიძლება გიპასუხოთ უარით. ეს ნიშნავს, რომ საიტი შეაჩერა ჩვენმა abuse
ჯგუფმა და არა თქვენ, და ბილინგის ვერცერთი პანელი ვერ მოხსნის ამ შეჩერებას. შეტყობინება ამას პირდაპირ ამბობს; აჩვენეთ ის თქვენს ადმინისტრატორს, ნაცვლად განმეორებითი მცდელობისა.
- Terminate გეგმავს წაშლას, ის არ ახორციელებს მას დაუყოვნებლივ. თარიღი ბრუნდება როგორც
pending_deletion_at და კლიენტის არე აჩვენებს მას. მომხმარებლისთვის იმის თქმა, რომ მისი მონაცემები უკვე წაშლილია, როდესაც ეს ასე არ არის, იმაზე უარესია, ვიდრე საერთოდ არაფრის თქმა.
- დისკი და გამტარუნარიანობა შეიძლება იყოს უცნობი, ხოლო უცნობი არ ნიშნავს ნულს. როდესაც მონაცემების
წაკითხვა ვერ შევძელით, მოდული ხელუხლებლად ტოვებს მაჩვენებელს, ნაცვლად 0-ის ჩაწერისა — წინააღმდეგ შემთხვევაში WHMCS თქვენს მომხმარებელს აჩვენებდა დამამშვიდებელ ცარიელ რესურსების ზოლს იმ საიტისთვის, რომლის მონაცემებიც არ გაგვაჩნია.
პრობლემების აღმოფხვრა
Test Connection წარმატებით გადის, ხოლო პირველი შეკვეთა იშლება ნებართვის შეცდომით. API გასაღებს აკლია org.create. მოდულმა უნდა გახსნას კლიენტის ანგარიში, სანამ შეძლებს მათი საიტის შექმნას.
შეკვეთა იშლება შეტყობინებით, რომ ორგანიზაციას არ აქვს ჰოსტინგის ტარიფი. თქვენს რესელერის ტარიფს აღარ დარჩა საიტების ლიმიტი (site allowance), ან ჯერ საერთოდ არ გაქვთ იგი. იხილეთ სანამ დაიწყებთ ზემოთ.
შეკვეთა იშლება სტეკის მოხსენიებით. პროდუქტის Stack ველი ცარიელია ან შეიცავს იმას, რასაც ჩვენ არ ვქმნით. მიუთითეთ იგი wordpress-ზე, თუ არ ყიდით რაიმე სხვას.
გაუქმებები იშლება. დარწმუნდით, რომ იყენებთ მოდულის 1.0.0 ან უფრო ახალ ვერსიას. ადრინდელი ვერსიები არ აგზავნიდა წაშლის დადასტურებას და ყოველი შეწყვეტა უარყოფილი იყო, რის გამოც სერვისი აგრძელებდა მუშაობას და თანხის დარიცხვას.
უარყოფა, რომელიც ასახელებს ველს. ჩვენი ვალიდაციის შეცდომები ასახელებს ველს და მიზეზს ფრჩხილებში შეტყობინების შემდეგ, მაგ. (php_version: 7.2 is not offered on this product line). ეს არის ის ნაწილი, რომელზეც რეაგირებაა შესაძლებელი — მის წინ მდგომი წინადადება მიზანმიმართულად ზოგადია.
შეამოწმეთ თქვენი ჩამოტვირთვა
ყოველი არქივი მიეწოდება TLS-ით ჩვენი საკუთარი ჰოსტის სახელიდან და არასდროს გადამისამართდება მესამე მხარის ჰოსტზე. მისი SHA-256 საკონტროლო ჯამი (checksum) მითითებულია ჩამოტვირთვის ბმულის გვერდით ჩამოტვირთვების გვერდზე. შეადარეთ იგი ჩამოტვირთვის შემდეგ:
- macOS ან Linux:
shasum -a 256 zinn-whmcs-1.0.0.zip
- Windows:
certutil -hashfile zinn-whmcs-1.0.0.zip SHA256
არ იყენებთ WHMCS-ს?
არსებობს HostBill-ის მოდული და ერთფაილიანი PHP კლიენტი ყველაფერი დანარჩენისთვის, ორივე უფასოა და ორივე იმავე ჩამოტვირთვების გვერდზეა. ყოველი endpoint, რომელსაც მოდულები იყენებენ, მოცემულია API დოკუმენტაციაში.