Conector entre Business Central y Shopify : Como crear y actualizar productos de ERP Business Central a Shopify

Conector entre Business Central y Shopify : Como  crear y actualizar productos de ERP Business Central a Shopify

3dids .com |

Ejemplo para Crear y Actualizar información de producto en Business Central

 

Desde 3dids te podemos ayudar a hacer el conector. Ejemplo claro de como debería ser el proceso de creación y actualización de productos desde Business Central a Shopify.

Esto no es más que un ejemplo que trata de que tu que eres desarrollador veas la estructura y la adaptes a tu ERP

Crear Producto en Shopify:

python
import requests
import json

# Configuración de la API de Shopify
shopify_url = "https://your-store.myshopify.com/admin/api/2023-01/products.json"
shopify_headers = {
    "X-Shopify-Access-Token": "your_access_token",
    "Content-Type": "application/json"
}

# Leer datos del producto desde Business Central
bc_product_data = {
    "name": "Producto de Ejemplo",
    "identifier": "PROD001",
    "short_description": "Descripción breve",
    "long_description": "Descripción larga",
    "seo_title": "Título SEO",
    "seo_description": "Descripción SEO",
    "tags": ["tag1", "tag2"],
    "variants": [
        {
            "title": "Variante 1",
            "price": "10.00",
            "inventory_quantity": 100,
            "images": ["url1", "url2", "url3", "url4", "url5"]
        },
        {
            "title": "Variante 2",
            "price": "15.00",
            "inventory_quantity": 50,
            "images": ["url6", "url7", "url8", "url9", "url10"]
        }
    ],
    "images": ["url11", "url12", "url13", "url14", "url15"]
}

# Crear producto en Shopify
product_data = {
    "product": {
        "title": bc_product_data["name"],
        "body_html": bc_product_data["long_description"],
        "vendor": "Your Vendor",
        "product_type": "Your Product Type",
        "tags": bc_product_data["tags"],
        "seo_title": bc_product_data["seo_title"],
        "seo_description": bc_product_data["seo_description"],
        "variants": [
            {
                "title": variant["title"],
                "price": variant["price"],
                "sku": bc_product_data["identifier"],
                "inventory_quantity": variant["inventory_quantity"]
            } for variant in bc_product_data["variants"]
        ],
        "images": [
            {
                "src": image
            } for image in bc_product_data["images"]
        ]
    }
}

response = requests.post(shopify_url, headers=shopify_headers, data=json.dumps(product_data))

if response.status_code == 201:
    print("Producto creado exitosamente en Shopify")
else:
    print("Error al crear el producto en Shopify:", response.text)

Actualizar Producto en Shopify:

python
import requests
import json

# Configuración de la API de Shopify
shopify_url = "https://your-store.myshopify.com/admin/api/2023-01/products/123456789.json"
shopify_headers = {
    "X-Shopify-Access-Token": "your_access_token",
    "Content-Type": "application/json"
}

# Leer datos del producto actualizado desde Business Central
bc_product_data = {
    "name": "Producto de Ejemplo Actualizado",
    "identifier": "PROD001",
    "short_description": "Descripción breve actualizada",
    "long_description": "Descripción larga actualizada",
    "seo_title": "Título SEO actualizado",
    "seo_description": "Descripción SEO actualizada",
    "tags": ["tag1", "tag2", "tag3"],
    "variants": [
        {
            "title": "Variante 1 Actualizada",
            "price": "12.00",
            "inventory_quantity": 120,
            "images": ["url1", "url2", "url3", "url4", "url5"]
        },
        {
            "title": "Variante 2 Actualizada",
            "price": "18.00",
            "inventory_quantity": 60,
            "images": ["url6", "url7", "url8", "url9", "url10"]
        }
    ],
    "images": ["url11", "url12", "url13", "url14", "url15"]
}

# Actualizar producto en Shopify
product_data = {
    "product": {
        "id": 123456789,
        "title": bc_product_data["name"],
        "body_html": bc_product_data["long_description"],
        "vendor": "Your Vendor",
        "product_type": "Your Product Type",
        "tags": bc_product_data["tags"],
        "seo_title": bc_product_data["seo_title"],
        "seo_description": bc_product_data["seo_description"],
        "variants": [
            {
                "id": 987654321,  # ID de la variante en Shopify
                "title": variant["title"],
                "price": variant["price"],
                "sku": bc_product_data["identifier"],
                "inventory_quantity": variant["inventory_quantity"]
            } for variant in bc_product_data["variants"]
        ],
        "images": [
            {
                "src": image
            } for image in bc_product_data["images"]
        ]
    }
}

response = requests.put(shopify_url, headers=shopify_headers, data=json.dumps(product_data))

if response.status_code == 200:
    print("Producto actualizado exitosamente en Shopify")
else:
    print("Error al actualizar el producto en Shopify:", response.text)

O

Dónde alojar los scripts:

Para alojar estos scripts, te recomendaría las siguientes opciones:

  1. Dentro de Business Central: Si tienes acceso al código fuente de Business Central, puedes agregar estos scripts como métodos de un modelo personalizado. Esto te permitirá ejecutar las funciones directamente desde Business Central.
  2. Servidor externo: Puedes alojar estos scripts en un servidor externo que tenga acceso a tu instancia de Business Central y a la API de Shopify. Esto te permitirá ejecutar los scripts de manera programada o a demanda.
  3. Plataforma de integración: Considera usar una plataforma de integración como Render  Zapier, Integromat o incluso un servicio de integración personalizado que pueda ejecutar estos scripts y manejar la comunicación entre Odoo y Shopify.

Recuerda que necesitarás ajustar los scripts según tu configuración específica de Business Central y Shopify, y asegurarte de manejar adecuadamente las credenciales de API y la autenticación.