Crea diferentes tarifas de envío para tus clientes.
Las tarifas de envío te permiten mostrar distintas opciones de envío, como estándar, urgente y al día siguiente, con estimaciones de entrega más precisas. Cobra a tu cliente por el envío utilizando diferentes productos de Stripe. Antes de crear una tasa de envío, descubre cómo recopilar las direcciones de facturación y envío.
Nota
Las tasas de envío solo admiten valores de importe fijos para todo el pedido. No puedes ajustar la tasa de envío en función del número de artículos del pedido.
Las tasas de envío solo admiten valores de importe fijos para todo el pedido. No puedes ajustar la tasa de envío en función del número de artículos del pedido.
Para añadir una tarifa de envío usando el Dashboard, haz lo siguiente:
Haz clic en Crear tarifa de envío.
Introduce un importe, una descripción y una estimación de envío opcional.
Haz clic en Guardar y copia el ID de la tarifa de envío (shr_123456).
Introduce los datos de tu tarifa de envío
Actualiza una tarifa de envío
No puedes actualizar una tarifa de envío en el Dashboard. Para actualizar una tarifa de envío en el Dashboard, debes archivarla y luego crear una nueva.
Archiva una tarifa de envío
Para archivar una tarifa de envío:
En la pestaña Tarifas de envío, selecciona la tarifa de envío aplicable.
Haz clic en el menú de desbordamiento y selecciona Archivar.
Para desarchivar la tarifa de envío, haz clic en el menú de desbordamiento y selecciona Desarchivar tarifa de envío.
Para crear una sesión de Checkout que incluya tu tarifa de envío, pasa el ID de la tarifa de envío generado al parámetro shipping_options. Si quieres crear la tasa de envío al mismo tiempo que una sesión de Checkout, usa el parámetro shipping_rate_data con shipping_options. Solo Checkout Sessions en modo de pago aceptan opciones de envío.
En el siguiente ejemplo de código, se añaden dos opciones de envío a la sesión de Checkout:
Envío gratuito, con una entrega estimada de 5 a 7 días hábiles.
Next Day Air, con un coste de 15,00 USD y una entrega estimada de un día hábil.
En este ejemplo, la primera opción de la matriz shipping_options está elegida previamente para el cliente en la página del proceso de compra. Sin embargo, los clientes pueden elegir cualquiera de las dos opciones.
Una vez que el pago se realiza correctamente, puedes recuperar el importe del envío en el atributo amount_total del shipping_cost. También puedes recuperar la tarifa de envío elegida con el atributo shipping_rate en shipping_cost. Para acceder a la propiedad shipping_cost, debes crear un controlador de eventos para gestionar Checkout Sessions completadas. Puedes probar un controlador instalando la CLI de Stripe y utilizando stripe listen --forward-to localhost:4242/webhook para reenviar eventos a tu servidor local. En el siguiente ejemplo de código, el controlador permite que el usuario acceda al shipping_property:
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production!# See your keys here: https://dashboard.stripe.com/apikeysStripe.api_key =
"sk_test_BQokikJOvBiI2HlWgH4olfQ2"
require'sinatra'# You can find your endpoint's secret in your webhook settings
endpoint_secret ='whsec_...'
post '/webhook'do
event =nil# Verify webhook signature and extract the event# See https://stripe.com/docs/webhooks#verify-events for more information.begin
sig_header = request.env['HTTP_STRIPE_SIGNATURE']
payload = request.body.read
event =Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret)rescueJSON::ParserError=> e
# Invalid payloadreturn status 400rescueStripe::SignatureVerificationError=> e
# Invalid signaturereturn status 400endif event['type']=='checkout.session.completed'
checkout_session = event['data']['object']
fulfill_order(checkout_session)end
status 200enddeffulfill_order(checkout_session)
selected_shipping_rate =Stripe::ShippingRate.retrieve(checkout_session.shipping_cost.shipping_rate)
shipping_total = checkout_session.shipping_cost.amount_total
# TODO: Remove error and implement...raiseNotImplementedError.new(<<~MSG)Given the CheckoutSession"#{checkout_session.id}" load your internal order from the database then implement your own fulfillment logic.MSGend
Puedes configurar tarifas de envío usando una serie de combinaciones de estimación de envío. La siguiente tabla contiene algunos ejemplos de estimaciones de envío y sus correspondientes valores de delivery_estimate.minimum y delivery_estimate.maximum:
Puedes usar Stripe Tax para calcular impuestos automáticamente sobre las comisiones de envío configurando un tax_code y un tax_behavior en la tarifa de envío. Stripe Tax determina automáticamente si el envío está sujeto a impuestos (ya que esta condición varía según el estado y el país) y aplica el tipo impositivo correcto, en su caso.
Al crear una tarifa de envío con shipping_rate_data o a través de Crear una tarifa de envío, puedes añadir los parámetros tax_behavior y tax_code a la tarifa de envío.
Te recomendamos que definas el tax_code en Shipping (txcd_92010001) para asegurarte de que siempre cobres el impuesto que corresponde. También puedes establecer la tasa de envío tax_code como Nontaxable (txcd_00000000) si no quieres cobrar impuestos.
En este ejemplo, establecimos tax_behavior en exclusive, que es lo habitual en los EE. UU. Más información sobre el comportamiento fiscal.
En la página del proceso de compra, tu cliente puede ver el importe del impuesto calculado para la tasa de envío incluido en el total del impuesto sobre las ventas:
Importe del impuesto calculado para la tarifa de envío en la página del proceso de compra