@atomic-solutions/woocommerce-react
v0.2.5
Published
React Query hooks and provider for WooCommerce Store API
Maintainers
Readme
@atomic-solutions/react-woocommerce
React Query hooks and provider for WooCommerce Store API
React integration layer for @atomic-solutions/woocommerce-utils. Provides React Query hooks and context provider for building WooCommerce storefronts in React and React Native.
Installation
pnpm add @atomic-solutions/react-woocommercePeer Dependencies
pnpm add @atomic-solutions/woocommerce-utils @tanstack/react-query reactQuick Start
1. Create Client
import { createClient } from '@atomic-solutions/woocommerce-utils';
const client = createClient({
baseURL: 'https://your-store.com/wp-json',
cartHeaders: {
get: async () => ({
nonce: await AsyncStorage.getItem('woo_nonce'),
cartToken: await AsyncStorage.getItem('woo_cart_token'),
}),
save: async ({ nonce, cartToken }) => {
if (nonce) await AsyncStorage.setItem('woo_nonce', nonce);
if (cartToken) await AsyncStorage.setItem('woo_cart_token', cartToken);
},
clear: async () => {
await AsyncStorage.removeItem('woo_nonce');
await AsyncStorage.removeItem('woo_cart_token');
},
},
});2. Setup Provider
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { WooCommerceProvider } from '@atomic-solutions/react-woocommerce';
const queryClient = new QueryClient();
function App() {
return (
<QueryClientProvider client={queryClient}>
<WooCommerceProvider client={client}>
<YourApp />
</WooCommerceProvider>
</QueryClientProvider>
);
}3. Use Hooks
import { useProducts, useAddToCart } from '@atomic-solutions/react-woocommerce';
function ProductList() {
const { data: products, isLoading } = useProducts({
per_page: 20,
});
const addToCart = useAddToCart();
if (isLoading) return <Loading />;
return (
<FlatList
data={products}
renderItem={({ item }) => (
<ProductCard
product={item}
onAddToCart={() =>
addToCart.mutate({
id: item.id,
quantity: 1,
})
}
/>
)}
/>
);
}Available Hooks
Products
useProducts(params)- List productsuseInfiniteProducts(params)- Infinite scroll productsuseProduct(id)- Single productuseProductCategories()- List categoriesuseProductCategoryTree()- Hierarchical category tree
Cart
useCart()- Get cartuseAddToCart()- Add item to cartuseUpdateCartItem()- Update cart item quantityuseRemoveFromCart()- Remove item from cartuseApplyCoupon()- Apply coupon codeuseRemoveCoupon()- Remove couponuseUpdateCustomer()- Update customer infouseSelectShippingRate()- Select shipping method
Checkout
useCheckout()- Get checkout datauseProcessCheckout()- Process order
Orders
useOrder(id)- Get order by ID
License
MIT © Atomic Solutions
