About bitrix-sale
bitrix-sale is a skill for Bitrix online-store developers, covering the sale module's baskets, orders, payments, delivery, and discounts. It emphasizes changing orders through the object model, checking permissions and operation results, and handling products, prices, and stock through catalog.
Key features
- 01Manage baskets, orders, and order properties
- 02Handle payments, delivery, and shipments
- 03Configure discounts, coupons, and statuses
- 04Update and save orders through the object model
- 05Check permissions and restricted payment or delivery options
Use cases
- 01Create or update orders and order properties
- 02Preview basket discounts before checkout
- 03Implement payment handlers and callbacks
- 04Configure delivery, shipment reservation, and deduction
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ bxmaximum/ bitrix-framework-skills --skill bitrix-saleAfter installing, type/bitrix-salein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
rules/archive-components.mdbasket.mddelivery-reservation.mddiscounts.mdorder.mdpayments.mdstatuses-events.mdDetails
From the project READMEOnline store (sale)
Baseline: main 23.0+ · Verified: sale 26.500.0, main 26.800.0
sale owns basket, orders, payments, shipments, discounts, statuses and history. Products, prices, stock → bitrix-catalog.
| Task | Read |
|---|---|
| API level choice, create/update an order, order properties | rules/order.md |
| Basket, Fuser, discount preview before checkout | rules/basket.md |
| Statuses, rights, history, events | rules/statuses-events.md |
| Payments, own pay system handlers, callbacks | rules/payments.md |
| Delivery services, shipments, reservation, deduction | rules/delivery-reservation.md |
| Cart rules, coupons, applied discounts | rules/discounts.md |
| Lists, archive, components, behaviour changes | rules/archive-components.md |
Invariants
Loader::includeModule('sale')(+catalogfor products, prices, reservation).- Change orders only through the object model (
Order, its collections) and onesave()per operation.Internals\*TableORM is read-only for order data. NeverOrder::load()in a loop. - The object API never checks rights: check
CSaleOrder::CanUserViewOrder()and friends before acting on a user request. - Take pay systems and delivery services from restricted lists, never a raw ID from the request.
- Check
isSuccess()andgetWarningMessages(). Never call$order->save()insideOnSaleOrderSaved.
Comments
Markdown supported