Digipacket Agency Partner

Description

Digipacket Agency Partner connects a WooCommerce store to your Digipacket Agency space.

  • Your catalogue, your prices. Import every plan (hosting, servers, e-mail, SSL…) as a WooCommerce product. A default margin sets the selling price; every product can then be priced by hand, per billing term.
  • Domains. A search box with your prices, on any page, with the [digipacket_domain_search] shortcode — and, on a hosting page, the option to register the domain the service is for in the same order.
  • One order, one client. When a customer buys, the plugin creates them as a client of your Agency space and places the order in their name — their details become the domain’s public contact.
  • You pay, we deliver. The order waits in your Agency space until you pay it at your cost price (by card today, from a prepaid balance soon). Digipacket then delivers the service to your client, and the WooCommerce order is completed when every service is active.

Nothing about Digipacket is shown to your customers. Your API key never leaves your site.

This plugin needs the classic WooCommerce cart and checkout (the [woocommerce_cart] and [woocommerce_checkout] shortcodes): the billing-term selector and the domain field are drawn on their hooks.

External services

This plugin connects to the Digipacket Agency Partner API, run by Digipacket (digipacket.net). It is what the plugin is for: nothing works until you connect an Agency account, and no request is made before you do.

The API is called to:

  • verify the API key you paste in the settings and read your account (agency name, plan, currency, balance);
  • import your catalogue — plans and domain extensions, at your cost prices;
  • check the availability and price of a domain name typed by a visitor in a search, transfer or product-page box;
  • create a client and an order in your Agency space when a WooCommerce order is paid. This sends your customer’s billing name, company, e-mail address, phone number and postal address, the items bought, and — for a domain transfer — the authorisation (EPP) code the customer typed;
  • follow the order’s status hourly until every service is active.

Every request carries your API key and your site’s URL, so your Agency space can tell which site a key is used by.

  • Terms of service: https://digipacket.net/terms
  • Privacy policy: https://digipacket.net/privacy

The plugin also adds a suggested paragraph to Settings Privacy, describing the above for your own privacy policy.

Screenshots

Installation

  1. Upload the plugin folder to /wp-content/plugins/ and activate it. WooCommerce must be active.
  2. In your Digipacket account, open Agency Partners Website & API and create a key for this site.
  3. In WordPress, open Digipacket Agency, paste the key and click Save & connect.
  4. Set your margins, then click Import catalogue.
  5. Add [digipacket_domain_search] to a page to sell domains.

FAQ

Do my customers pay Digipacket?

No. They pay you, on your store, at your price. You pay Digipacket from your Agency space at your cost price.

When is the service delivered?

As soon as you have paid the order in your Agency space. The plugin follows the order hourly and completes the WooCommerce order once every service is active.

Can I change a price?

Yes. Open the product, then the Digipacket Agency tab: one selling price per billing term. A product you price by hand keeps its prices on the next import.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Digipacket Agency Partner” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.7.7

  • Accessibility: plan and service names follow the page outline. A plan name is an h3, or an h4 under its service’s heading when several services are listed; a service card’s name is an h3. They were all h4, which skipped a level.

1.7.6

  • Accessibility: the price suffix (“/ year”) is no longer faded, so it keeps the contrast of the price it follows.
  • Fix: on WordPress 6.4, a shortcode written without attributes (for example [digipacket_domain_search] on its own) stopped the page with a fatal error. Every shortcode now accepts what WordPress 6.4 passes.

1.7.5

  • Security: the product page’s add-to-cart form now carries its own nonce, checked before any of its choices are read; prices saved on a product and terms changed in the cart are checked against their nonce and the user’s rights.
  • Cached data now uses the plugin’s full prefix.
  • The plugin’s notices appear on its own screens only.
  • Translations are now delivered by translate.wordpress.org.

1.7.4

  • A second copy of the plugin (such as the one installed before it was renamed) no longer causes a fatal error on activation. The new copy stands down and a notice says which to remove.

1.7.3

  • When the dashboard cannot read your Agency account again, it says why and how old the figures shown are, and tries again on the next visit.

1.7.2

  • Balance shows a paid top-up that is awaiting validation (“+ €50.00 awaiting validation”), until it is credited.

1.7.1

  • The dashboard reads your Agency account again when it opens (at most once a minute), so a balance topped up in your Agency space shows under Balance.
  • Balance always shows an amount: 0 in your account’s currency until the balance is topped up.

1.7.0

  • The Add-ons page now uses the plugin’s own interface: the brand header, summary cards (add-ons offered, services, margin), one panel per service, switches to offer or withdraw an add-on, and a save bar that stays in view. An add-on that is not offered stays listed, dimmed.
  • The plugin’s styles now load on every one of its screens, Add-ons included.
  • Until the site is connected, the dashboard offers a button to create an Agency Partners account.
  • French translation completed, the Add-ons page included.
  • The admin script is now shipped in the package.

1.6.0

  • A server can be bought with a new domain. Its page offers “I already own the domain” — the hostname is typed as before — or “Register a new domain”: the buyer types and checks a domain, it is registered in the same order, and the server answers to server.yourdomain.com. The hint shows that hostname as it is typed, and the order summary lists both the registration and the hostname. The prefix can be changed with the digipacket_agency_server_prefix filter.
  • On a server’s page, “Assign” looks up the domain the hostname sits under, rather than the hostname itself.

1.5.3

  • The cart shows the renewal price, small and struck through, to the left of a line’s price whenever the line will renew for more than it costs today — a plan at its term’s renewal price (add-ons included, as they renew unchanged), a domain at its extension’s renewal price for the same number of years. Read out as “Renews at …” to a screen reader.

1.5.2

  • “Add to cart” on a service’s page now goes straight to the cart, without the “has been added to your cart” message — whatever the store’s own redirect setting. A domain registered with the service no longer adds a message of its own either; it stands on its own line in the cart. Other products keep WooCommerce’s usual behaviour.

1.5.1

  • Fixed: the order summary was drawn under the options instead of beside them, with an empty column on the left. WooCommerce’s clearfix on the add-to-cart form took a cell of the two-column grid; it is now removed and each column is placed explicitly.
  • Fixed: with a theme that paints its own magnifier on the domain button (Stratum 1.0.0), “Assign” showed a magnifier as well as its “+”.

1.5.0

  • An order summary beside the options on a service’s page: the plan for its term, each add-on, the domain — already yours, or registered with the order at its checked price — and the total due today, updated as the buyer chooses. The add-to-cart button sits at its foot. One column on a phone; unchanged without JavaScript.
  • The domain button carries its own glyph: “+ Assign” for a name already owned, a magnifier beside “Check” for one to register.

1.4.1

  • Fixed: on a service that needs a domain, choosing “I already own it” still showed the “Check” button, and checking a name the buyer owns answered “is already registered” in red. The button now reads “Assign” for a name already owned and confirms it is registered; “Check” is kept for a name to register. A name nobody holds yet is offered for registration in one click.
  • Fixed: an element marked hidden inside the plugin’s blocks could still show, when one of the plugin’s own styles gave it a display.

1.4.0

  • Add-ons come from the catalogue. Each service’s add-ons (control panel, dedicated IP, WHMCS licence…) and each server plan’s operating systems are imported with the plans, priced at your cost plus your services margin per month, and shown on the product page. The price follows the add-ons as they are chosen.
  • What a buyer chooses is sent with the order to your Agency space and charged on its invoice. Re-import the catalogue once after updating.
  • Digipacket Agency Add-ons now lists every add-on with your cost and your price, and lets you stop offering one. The hand-written add-ons of earlier versions are retired: they were never sent with the order.

1.3.0

  • Security: the API key is stored encrypted, sealed with your site’s own salts. A key saved by an earlier release is sealed the first time it is read; nothing to do.
  • Security: a domain transfer’s authorisation code is stored encrypted in the cart and on the order, and wiped from the order as soon as your Agency space has received it.
  • Security: only an administrator can change the API endpoint, and only to a public https:// address. Calls to the API refuse private addresses.
  • Security: the public domain and transfer lookups are limited per visitor and answers are cached for a minute, so a script cannot spend your API quota. A failed lookup no longer tells the visitor why.
  • Fixed: an authorisation code containing %, <, > or & was altered before it reached the registry, and the transfer failed after payment. Codes are now kept exactly as typed.
  • Orders are sent to your Agency space in the background, through WooCommerce’s Action Scheduler, rather than inside the payment request. A network failure is retried every ten minutes, up to five times.
  • Domain search keeps working on pages served from a page cache: an expired security token is renewed on the fly.
  • Faster pages: the plugin’s stylesheet and script load only where they are used, and the catalogue the shortcodes read is cached until a product changes.
  • The plugin declares that it needs the classic cart and checkout, so WooCommerce warns you instead of breaking silently.
  • A privacy-policy paragraph is suggested under Settings Privacy, and the readme lists every call to the Digipacket API and the data it carries.
  • Uninstalling now removes every option, transient and scheduled event the plugin created.
  • Docs and Support buttons on the dashboard.

1.2.1

  • Digipacket_Agency_Plans::from_price() is public, and answers with the monthly figure as well as the term it comes from. A theme that wants to say what a family starts at — on a home page, in a menu — now asks the catalogue rather than working a second price out of the same products, which is how two pages end up quoting two prices for one plan.

1.2.0

  • The billing term can be changed from the cart. Each line of a service now carries its own term under the name, with what that term costs, and choosing another one re-prices the line immediately — no button to press. The price is read back from the product’s own catalogue, never from the form that was posted.
  • The cart line reads as a sentence instead of a form: the domain a service is for sits in the line’s name, and the term stands on its own under it. Where there is nothing to choose — a transfer’s added year, an extension sold one year at a time — the same place says so in words. At checkout, where nothing can be changed, both go back to being labelled lines.
  • The cart’s term field is marked dpa-select, like the one on a product page, so a theme that draws the plugin’s selects itself draws this one too.
  • A domain’s registration period can be changed from the cart too, from one year up to whatever its extension sells in one go. The price is recomputed from what the registry quoted for that very name, so a premium name keeps its own price.

1.1.0

  • Domain transfers. [digipacket_domain_transfer] asks the registry whether a name can be brought over, prices the move from the catalogue’s own transfer price — which buys a year of ownership, not a handling fee — and takes the authorisation code no registry will move a name without. The line joins the cart like any other and reaches your Agency space as a domain-transfer item. A name nobody holds is offered for registration instead, and an extension you do not sell says so plainly.
  • The authorisation code is shown once and never again: the cart, the order and every e-mail carry only its last four characters.
  • Translations: sixty-one strings are now listed and translated into French. Thirty-five belong to the transfer; the other twenty-six had been in the plugin for releases without ever being picked up, among them the plan cards’ “Most popular”, “Taken” and “Billed annually at …”.

1.0.7

  • Fixed: importing the catalogue drafted the hidden “Domain registration” product, and a drafted product cannot be bought — so every domain sale failed with “this product cannot be purchased” until the product was published again by hand. It is now left alone by the import, and an existing one is put back on sale automatically.

1.0.6

  • A plan card no longer runs its spec table together into one line of text under the name. Only the plan’s own sentence is shown there, and desc="0" leaves it out entirely.
  • per="month" prices a card by the month whatever term it is sold on, with the real charge printed underneath — “Billed annually at …”. It makes plans sold on different terms comparable at a glance.

1.0.5

  • Two shortcodes for the rest of the catalogue. [digipacket_services] draws one card per service — hosting, servers, e-mail, SSL — priced from its cheapest plan. [digipacket_plans product="…"] draws the plans of one service as a pricing grid, with specs, a term of your choosing and a plan you can mark as most popular. Both link to the product pages the import created, at your own prices.
  • The dashboard now lists your services with the shortcode that shows each one’s plans, so you never have to guess a slug.

1.0.4

  • A service that needs a domain can now sell one on the same page: “I already own it” or “Register it with my order”, a check button that prices the name, and a term to pick. The registration is added to the cart beside the service, and the order sends the domain first so the name exists before anything points at it. Availability and price are decided by the registry at add-to-cart, never by the page.

1.0.3

  • The search box, the result and the price grid were redrawn: a rounded search bar, an availability pill, the price large next to the term, a list of other extensions that fills in as the answers arrive, and loading skeletons instead of a jump. The markup moved to a dpa- namespace, so custom CSS written against the old digipacket-agency-search / -result / -tld classes needs updating; the product page and cart classes are unchanged.
  • The stylesheet and the script are now served under their own file timestamp as well as the plugin version, so an updated file is never served from a browser cache under a ?ver= it has already seen.

1.0.2

  • Prices are printed as text again: the currency symbol and its space no longer show up as &euro;&nbsp; in the domain search, the billing-term selector and the admin tables.
  • The domain search now offers the same name on the other extensions you sell, each checked and priced, with its own add-to-cart. [digipacket_domain_search suggest="com,net,org" limit="6"] chooses them; limit="0" turns the list off.

1.0.1

  • The admin screens now carry the Digipacket mark and the brand palette, on a white canvas.

1.0.0

  • First release.