Metadata-Version: 2.4
Name: synrg-ecommerce
Version: 0.1.1
Summary: E-commerce tools for Python: payment gateways and shipping services.
Project-URL: Homepage, https://github.com/synrg-software/synrg-ecommerce-py
Author-email: Synrg <dev@synrg.software>
License: MIT
Keywords: dlocal,ecommerce,mercadopago,moova,payments,plexo,shipping
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Requires-Dist: requests>=2.31.0
Provides-Extra: dev
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: responses>=0.25; extra == 'dev'
Description-Content-Type: text/markdown

# synrg-ecommerce

E-commerce tools for Python: payment gateways and shipping services.

## Installation

```bash
pip install synrg-ecommerce
```

## Payment Gateways

Supports MercadoPago, Plexo, and dLocal Go.

```python
from synrg_ecommerce import PaymentGatewayFactory, PaymentProvider, PaymentRequest, PaymentItem
from synrg_ecommerce.payments.providers.mercado_pago import MercadoPagoConfig

gateway = PaymentGatewayFactory.create(
    PaymentProvider.MERCADO_PAGO,
    config=MercadoPagoConfig(access_token="APP_USR-...", sandbox=True),
)

result = gateway.create_payment(PaymentRequest(
    external_reference="order-123",
    items=[PaymentItem(id="1", title="Producto", quantity=1, unit_price=500.0)],
    success_url="https://mysite.com/success",
    failure_url="https://mysite.com/failure",
    pending_url="https://mysite.com/pending",
))

print(result.checkout_url)  # redirect the user here
```

## Shipping Services

Supports Moova, DAC, PedidosYa, and Depunta.

```python
from synrg_ecommerce import ShippingServiceFactory, ShippingProvider, QuoteRequest, ShippingAddress, Package
from synrg_ecommerce.shipping.providers.moova import MoovaConfig

service = ShippingServiceFactory.create(
    ShippingProvider.MOOVA,
    config=MoovaConfig(app_id="...", app_secret="...", sandbox=True),
)

quotes = service.get_quotes(QuoteRequest(
    origin=ShippingAddress(street="18 de Julio", number="1234", city="Montevideo",
                           state="Montevideo", country="UY", postal_code="11100"),
    destination=ShippingAddress(street="Rambla México", number="5890", city="Montevideo",
                                state="Montevideo", country="UY", postal_code="11400"),
    packages=[Package(weight_kg=1.5, length_cm=30, width_cm=20, height_cm=10)],
))
```
