2017 © Pedro Peláez
 

symfony-bundle giftvoucher-bundle

Bundle to manage gift voucher, their payments and transactions

image

c975l/giftvoucher-bundle

Bundle to manage gift voucher, their payments and transactions

  • Friday, July 27, 2018
  • by Laurent3170
  • Repository
  • 1 Watchers
  • 1 Stars
  • 32 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 25 Versions
  • 19 % Grown

The README.md

GiftVoucherBundle

GiftVoucherBundle does the following:, (*1)

  • Allows to create Gift Voucher request form,
  • Interfaces with Stripe via c975LPaymentBundle for its payment,
  • Creates a PDF of the GiftVoucher and sends it by email,
  • Creates a QR Code using QrCodeBundle,
  • Allows to use the GiftVoucher via a QrCode plus validation aftewards,
  • Integrates with c975LToolbarBundle,
  • PDF and Qrcode are NOT stored but created on the fly,
  • Joins your Terms of sales as PDF to the email,

The security is provided by a four-letter secret code, included in the QrCode, but not in the displayed Gift-Voucher identifier., (*2)

This Bundle relies on the use of c975LPaymentBundle, Stripe and its PHP Library. So you MUST have a Stripe account., (*3)

It also recomended to use this with a SSL certificat to reassure the user., (*4)

As the Terms of sales MUST be sent to the user with the Gift-Voucher, you MUST provide a Route or url for this PDF file. If you don't have such, you may consider using c975LSiteBundle for its pre-defined models and c975LPageEditBundle for its ability to create a PDF., (*5)

You can also give a better user's experience by using Select2 for the selection of GiftVoucher. Simply include it to your layout using, (*6)

    {# jQuery has to be linked before #}
    {# In your css block #}
    {{ inc_lib('select2', 'css', '4.*') }}
    {# In your javascript block #}
    {{ inc_lib('select2', 'js', '4.*') }}

GiftVoucherBundle dedicated web page., (*7)

GiftVoucherBundle API documentation., (*8)

Bundle installation

Step 1: Download the Bundle

v3.x works with Symfony 4.x. Use v2.x for Symfony 3.x Use Composer to install the library, (*9)

    composer require c975l/giftvoucher-bundle

Step 2: Configure the Bundle

Check dependencies for their configuration:, (*10)

c975LGiftVoucherBundle uses c975L/ConfigBundle to manage configuration parameters. Use the Route "/gift-voucher/config" with the proper user role to modify them., (*11)

Step 3: Enable the Routes

Then, enable the routes by adding them to the /config/routes.yaml file of your project:, (*12)

c975_l_giftvoucher:
    resource: "@c975LGiftVoucherBundle/Controller/"
    type: annotation
    prefix: /
    #Multilingual website use the following
    #prefix: /{_locale}
    #defaults:   { _locale: '%locale%' }
    #requirements:
    #    _locale: en|fr|es

Step 4: Create MySql tables

You can use php bin/console make:migration to create the migration file as documented in Symfony's Doctrine docs OR use /Resources/sql/gift-voucher.sql to create the tables gift_voucher_available and gift_voucher_purchased. The DROP TABLE are commented to avoid dropping by mistake., (*13)

Step 5: Override templates

It is strongly recommended to use the Override Templates from Third-Party Bundles feature to integrate fully with your site., (*14)

For this, simply, create the following structure /templates/bundles/c975LGiftVoucherBundle/ in your app and then duplicate the file layout.html.twig in it, to override the existing Bundle file., (*15)

In layout.html.twig, it will mainly consist to extend your layout and define specific variables, i.e. :, (*16)

{% extends 'layout.html.twig' %}

{% block content %}
    {% block giftVoucher_content %}
    {% endblock %}
{% endblock %}```

Then in your layout.html.twig and its dependencies, such as header.html.twig, footer.html.twig, navbar.html.twig, etc. you can use the condition if display == 'pdf' or if display == 'html' to choose what to display to which format, and you keep all your data in one place., (*17)

Keep in mind that links have to be absolute, or their content included, to be exported (see below)., (*18)

Routes

The different Routes (naming self-explanatory) available are:, (*19)

  • giftvoucher_display
  • giftvoucher_config
  • giftvoucher_create
  • giftvoucher_modify
  • giftvoucher_duplicate
  • giftvoucher_delete
  • giftvoucher_dashboard
  • giftvoucher_purchased
  • giftvoucher_offer
  • giftvoucher_offer_all
  • giftvoucher_use
  • giftvoucher_slug
  • giftvoucher_help
  • giftvoucher_qrcode

You should use Route giftvoucher_offer_all as an entry point to your Gift-Vouchers., (*20)

Twig extensions

You can use the following Twig extensions to display Gift-Vouchers around your web site., (*21)

gv_offer_button()

There are different ways to use this extension:, (*22)

{{ gv_offer_button(GIFTVOUCHER_AVAILABLE_ID) }} will display a button with defaults styles {{ gv_offer_button(GIFTVOUCHER_AVAILABLE_ID, 'btn-primary') }} will display a button with specified styles {{ gv_offer_button(GIFTVOUCHER_AVAILABLE_ID, 'WHATEVER_STYLE_YOU_HAVE_DEFINED_IN_CSS') }} will display a button using your own styles, (*23)

These codes, and other variants, are recalled on the display of Gift-Voucher for Admin users., (*24)

You will use this Twig extension to display a link to ofeer the Gift-Voucher, (*25)

{{ gv_offer_link(GIFTVOUCHER_AVAILABLE_ID) }} will display a link, (*26)

This code is recalled on the display of Gift-Voucher for Admin users., (*27)

gv_view_all()

This Twig extension will create a view of your Gift-Vouchers. It is used on Resources/views/pages/offerAll.html.twig template, used by Route giftvoucher_offer_all., (*28)

{{ gv_view_all() }} will create the view with all your available Gift-Vouchers {{ gv_view_all(NUMBER_OF_GIFTVOUCHERS_TO_DISPLAY) }} will create the view with the specified number of your available Gift-Vouchers {{ gv_view_all(NUMBER_OF_GIFTVOUCHERS_TO_DISPLAY, ORDERED_FIELD) }} will create the view with the specified number of your available Gift-Vouchers, ordered by the specified field. Values for this field are the ones of the Database Table gift_voucher_available. You will mostly use id, object (default one), slug, amount., (*29)

If this project help you to reduce time to develop, you can sponsor me via the "Sponsor" button at the top :), (*30)

The Versions

08/07 2017
08/07 2017

v1.0

1.0.0.0 https://github.com/975L/GiftVoucherBundle

Bundle to manage gift voucher, their payments and transactions

  Sources   Download

MIT

The Requires

 

bundle symfony voucher gift

07/07 2017

v0.1

0.1.0.0 https://github.com/975L/GiftVoucherBundle

Bundle to manage gift voucher, their payments and transactions

  Sources   Download

MIT

The Requires

 

bundle symfony voucher gift