get_reference tool (topic app_blocks) and the papelship://reference/app-blocks resource. The code editor, validate and save_draft warn about unknown blocks, unknown or wrongly typed arguments and blocks a theme kind does not support.
Platform blocks ({% app_block %} / data-app-block): arguments, behaviour, support per kind; locked page blocks.
yes*: works, with a note below. In code sections and ejected twins, cart blocks use the platform cart drawer, not the React theme’s own drawer; the theme’s cart badge stays in sync.
add_to_cart
Add-to-cart button for one product. Adds to the shared storefront cart and opens the cart drawer. A product with several variants and no choice: the variant_picker beside it asks, else the product page opens.buy_now
Buy-now button for one product.mode: 'page' (default) goes to the platform checkout with only this product (the cart is kept). mode: 'embed' opens the checkout popup over the page (platform iframe; card data never touches the theme) and falls back to the page when the widget cannot load.
cart_count
Cart button with the item count (“Cart<n>”); your own markup keeps its look and a [data-ps-count] child receives the number. Click opens the cart drawer. No arguments.
cart_drawer
Configures the slide-in cart drawer (lines, quantities, campaign discounts, free-shipping bar, upsell, checkout). Renders nothing in place; the firstcart_drawer of the page sets the options.
checkout_button
Checkout button for the whole cart (disabled while the cart is empty).mode: 'page' (default) goes to <store>/checkout; mode: 'embed' opens the checkout popup; the cart is emptied after payment.
currency_selector
Display currency picker (hidden when fewer than two currencies). Stores the display currency (checkout always charges in the store currency) and emitspapelship:currency-change. In code sections and twins pass currencies: those pages only know the store currency.
language_selector
Store language picker (hidden when the store has one language). Sets the language cookie and reloads the page. Argument:label.
newsletter_form
Newsletter sign-up with an explicit consent checkbox. Posts to the platform leads endpoint; previews never subscribe. Arguments:label, placeholder, button, consent_text.
powered_by
The “Powered by PapelShip” credit (hidden on plans that allow hiding it). Liquid themes only: design pages and React theme footers get the credit from the platform automatically.quick_view
Quick-view button for one product: opens a dialog with images, price, variants and add-to-cart. Arguments:product_id (required, alias product), label.
recently_viewed
The visitor’s recently viewed products (from this browser); renders nothing when the list is empty. Products are recorded on Liquid product pages (React theme product pages do not record views). Arguments:limit (default 4, 1-20), heading.
reviews_widget
Published reviews: the page product on product pages, else the store. Not supported in code sections or twins (those pages carry no review data; use the React theme’s reviews section). Arguments:heading, limit (default 5, 1-50), write (default true; false hides the write-a-review link).
variant_picker
Variant picker (radio groups) for one product.add_to_cart / buy_now of the same product in the nearest common container (or a data-ps-scope element) use the chosen variant; data-ps price / compare-price / stock texts follow it. Argument: product_id (required, alias product).
wishlist_button
Favourite toggle for one product (a heart button witharia-pressed). Saved in the browser and synced to the customer account when signed in. Argument: product_id (numeric id; hash ids are not saved to the account).
Locked page blocks
Each works only once, in its own override file. React theme code packages have no page overrides.