Landing pages are single-product conversion pages designed for paid traffic. Strip everything that doesn't sell, focus on one product, drive to a single CTA. DZBuild gives you a fast manual builder and a one-click AI generator on top of the same data model, so you can iterate without rebuilding.
Video
Storefront vs. landing page
Use the storefront when | Use a landing page when |
The customer is browsing | The customer clicked an ad |
You sell 10+ products | You're pushing 1 product hard |
Organic / repeat traffic | Facebook / TikTok / Google Ads |
The customer needs to compare | One offer, one decision |
A landing page lives at https://{your-store}.dzbuild.app/landing/{slug} (or under your custom domain). It does not show your storefront navigation, search bar or footer — just the offer.
How many landing pages can I have?
Per-plan caps:
Plan | Landing pages |
Free | 0 |
Pro | 3 |
Unlimited | Unlimited |
Enterprise | Unlimited |
Landing pages come with your plan. Individual pages are no longer sold separately, so the cap in the table is what you get.
Plan the expiry date around your campaigns: when a plan expires your storefront closes to customers and your custom domain is removed, so ads pointing at those URLs keep spending on a dead page.
To upgrade or renew, open /dashboard/subscribe and click ▶ How to renew for the in-app guided tour, or check the video tutorials on the DZBuild YouTube channel.
Where to find landing pages
Open Dashboard → Landing pages at /dashboard/landing-pages. The page is a card grid with a search box above it, which filters the loaded cards by title or URL, client-side. Each card shows:
The page title
The creation date
The number of sections
The view count
An Active badge
The page's public URL in a read-only box with a copy button — the slug is visible inside that URL, there's no separate slug field on the card
Three actions per card: Edit, Preview (opens the live page in a new tab), Delete.
Every landing page you create in the dashboard is created and saved as active. There is no Draft state in the merchant UI. A page that Copilot or the API builds section by section starts as a draft by default and stays offline until it is published, even though its card in this list shows Active. Saving such a page from the dashboard editor with Save all changes publishes it.
Two ways to create
Option 1 — AI-generate a draft
Click Generate with AI at the top of the list (or go to /dashboard/landing-pages/ai-generate). Pick the product, give the page a title, optionally add a one-line angle ("Mother's day gift", "for hot summer"), and the generator designs a complete page in a couple of minutes. The page is drawn as one tall image (three stacked images for the tall size) with the text written into the artwork, followed by an order form in matching colours. The artwork covers:
Headline + sub-headline
Pain → solution sections
Benefits list
Generated scene images for the product in context
Trust signals
Call-to-action with the order form
What the wizard asks for:
A product that already has at least one image. Products with no image are greyed out and cannot be selected.
A page title: required, at least 3 characters.
The angle / description — a free-text box that accepts up to 2,000 characters.
The page language — Arabic, French or English.
The page size — the standard page costs 20 AI credits, the tall (3-panel) page costs 45. The tall option is greyed out when your balance can't cover it.
See your balance at /dashboard/ai-credits.
The language you pick here is stored on the landing page itself: it does not follow your store language, and it drives the page's text direction. In the dashboard it is only settable in the AI wizard: manually created pages are always Arabic/RTL, and the editor has no language setting. Pages created through Copilot or the API can use any of the three languages, and the API can change it later.
The generated images are ordinary Image sections: the words are part of the picture, so you change them by swapping the image, not by typing, and you can add your own sections around them. There is no per-block regenerate: to get a different draft you run the generator again, which charges credits again. A run that fails gives the credits back automatically.
Option 2 — Build manually
Click Create a page (/dashboard/landing-pages/create). A 3-step wizard asks you to (1) pick the product, (2) enter the page title, URL slug and SEO description, (3) create. There are no templates — the page starts empty and you add sections in the editor.
Older AI-generated pages may contain PAS blocks (Problem / Agitation / Before-after / Solution / Features / CTA). They stay editable, but they cannot be added by hand, and new AI pages no longer use them.
Section types
Fourteen section types can be added manually, each with its own style controls:
Section | What it does |
Image | A single full-width image block. |
Image carousel | Several images the visitor can swipe through. |
Announcement bar | A thin banner strip for a promo line. |
Special offer | A highlighted offer block. |
Price display | Price + compare-at price as a standalone block. |
Product offers | Quantity-tier offer cards ("1 box", "2 boxes", …). See below. |
Order form | The full inline order form. |
Order button | A CTA button that scrolls to / opens the order form. |
Free text | Rich free text. |
Contact button | A WhatsApp / phone contact button. |
Countdown | A countdown timer for urgency. |
Fake visitors | A "N people are viewing this page" counter. |
Testimonials | Customer review cards. |
Custom form | A lead form with your own fields (this is the only place an email field exists on a landing page). |
Product offers and follow_offers
Each offer row in a Product offers section carries its own quantity, price, compare-at price, badge, image, featured flag and free-shipping flag.
Separately, an Order button section (or an order form rendered as a button) has a Price follows the product's offers (by quantity) toggle, on by default for new sections. When it is on and the quantity field is shown, the quantity the buyer picks is matched against the quantity offers configured on the product itself (Products → the product → offers), not against this section's rows, and an exact match re-prices the order to that offer's price and applies its free-shipping flag. The match and the final price are always recalculated from the offers you saved on the product. The price the browser sends is never trusted. Free shipping chosen inside a Product offers section is likewise re-read from the offer you saved on that section.
Linking a product
Every page you create in the dashboard is bound to a product: the create wizard will not finish without one, and the editor lets you switch to another product but not remove it. A page with no product (for example one created through Copilot or the API) or with an inactive product shows a No product or Product inactive warning on its card; click it to attach a product in the page settings. Why it matters:
When the order form is bound to a product, shipping is calculated from your store's per-wilaya rates plus any per-product overrides. A landing page without a product binding can silently undercharge shipping — especially with the Custom Product Shipping addon, which needs the product to look up the correct rate.
If you sell a bundle that doesn't map to one product, create a placeholder product (with the bundle's actual weight + dimensions + shipping rules) and bind the landing page to it.
Editing sections
In the landing-page editor (/dashboard/landing-pages/:id/edit):
Drag sections by the grip handle to reorder — this is the reorder method on desktop. On a narrow screen (768px or less) each section card also shows ▲ / ▼ arrows that move it one place, disabled on the first and last section.
Click Delete to remove a section.
Click a section's pencil icon, or click the section in the preview, to open its settings.
A copy icon on each section card duplicates that section.
Save propagates instantly — no separate publish step.
The preview pane
The right-hand pane is not a mock-up: it is the actual public page, rendered by the same code that serves it to buyers, inside an iframe. What you see is what buyers get. Style and text edits patch the preview instantly; structural edits reload the iframe once the autosave confirms.
Don't try to share that preview URL: it is login-gated, requires the landing-pages Edit Pages permission in Team & roles and is sent with noindex and a same-origin frame policy, so it is useless to anyone outside your dashboard. Use the card's Preview action (the real public URL) when you want to send the page to someone.
The order form
The most important block. Configure:
Fields and their on/off switches: commune, address and quantity each have a switch. Name, phone and wilaya cannot be switched off: they are locked on and marked required in the editor.
Required fields: the server accepts an order only if name and phone are filled and the phone is an Algerian mobile number (
05,06or07, also accepted with the+213or00213prefix).Optional fields — full address, quantity, and one merchant-defined free-text field (label, placeholder, required toggle) whose value is appended to the order's seller notes. There is no email field on the landing-page order form — landing-page orders are always stored with an empty customer email. If you need an email address, add a Custom form section instead.
Variants — the form renders the product's variant groups with full product-page parity (thumbnails, price pills, sold-out and dead-end states). The three group types are
color(colour swatch cards),text(plain option buttons — this is what a group named "Size" uses) andimage_text(thumbnail cards). Multi-selectselectablegroups reuse the image-text card markup and are optional rather than required.Bundles / quantity offers — "Buy 2 + 1 free" with auto-quantity. Pair with the Offer Variant Popup addon for clean per-piece variant selection.
Pixel events: the landing page fires
ViewContenton load,InitiateCheckoutonce per order form when the visitor first sends it, andPurchaseon a successful order submit (browser pixel plus server-side Conversions API for Facebook, TikTok, Snapchat and Pinterest, deduplicated by event ID). A Custom form section firesLeadinstead (SubmitFormon TikTok,SIGN_UPon Snapchat,generate_leadon GA4) and produces neitherInitiateCheckoutnorPurchase. Landing pages never fireAddToCart.
Submission stays inline — no redirect, the confirmation appears on the same page so you don't lose customers between steps.
Pixels and analytics
A pixel can be targeted to specific landing pages. Useful when:
A specific campaign uses a different Pixel ID for clean attribution.
You're A/B-testing two creatives and want separate audiences.
Targeting is set on the pixel, not on the page: open /dashboard/pixels, click Customize on the pixel card and pick the landing pages. The targeted pixel fires on those pages in addition to your global pixels, not instead of them. The Customize button shows on the Unlimited and Enterprise plans. See Pixels for the full setup.
Duplicating
Duplicating a whole landing page is not available in the dashboard today. To A/B-test a different headline, hero or CTA, create a second page and rebuild the sections, then split one ad link between the two pages with the A/B Testing addon.
You can duplicate an individual section inside the editor with the copy icon on the section card.
Tips
Always bind the page to a product, even for bundles. It's the only way shipping math is right.
Show a "Cash on Delivery" badge prominently. Algerian buyers trust this and convert better.
Keep the form short. Ask for what you need to deliver the order and nothing more.
Real product photos beat stock images on Algerian traffic.
Know what the built-in bot checks cover. Every landing-page form runs a few light checks against automated submissions, and a script written for your page can get past them. Treat them as a speed bump, not as protection.
Add a captcha if fake orders from ads are costing you money. The addon puts a real challenge in front of the form.
Test at phone width first. That is where your ad traffic lands.
What's next