{% set presta_external_id = prestashop ? prestashop.externalId : null %} {% set presta_is_linked = presta_external_id is not empty %} {% set dictionary_readiness = dictionary_readiness ?? { ready: false, missing: ['brak danych readiness'], warnings: [], counts: {} } %} {% set dictionary_counts = dictionary_readiness.counts|default({}) %}

PrestaShop Draft

Lokalny draft produktu

Dane zapisane tutaj są lokalnym draftem w Symfony i źródłem prawdy przed ręcznym wypchnięciem produktu do PrestaShop.

{{ presta_is_linked ? 'Połączony z Presta ID ' ~ presta_external_id : 'Brak powiązania z PrestaShop' }} {{ dictionary_readiness.ready ? 'Słowniki gotowe' : 'Słowniki wymagają synchronizacji' }} {{ draft.statusLabel }}
Status Presta{{ prestashop ? prestashop.statusLabel : 'Brak rekordu' }}
Intent Presta{{ prestashop ? prestashop.intentLabel : '—' }}
Draft istnieje{{ draft_exists ? 'Tak' : 'Nie, wartości domyślne' }}
Status draftu{{ draft.statusLabel }}
Ostatnia edycja{{ draft.updatedAt ? draft.updatedAt|date('d-m-Y H:i') : '—' }}
Sync słowników{{ integration and integration.lastSyncAt ? integration.lastSyncAt|date('d-m-Y H:i') : '—' }}

Powiązanie PrestaShop

Kontrola relacji lokalnego projektu z produktem w sklepie.

{% if presta_is_linked %}
Projekt jest już powiązany z produktem PrestaShop ID {{ presta_external_id }}. Publikacja jako nowy produkt jest zablokowana, aby nie utworzyć duplikatu. {% if prestashop.externalUrl %}
Otwórz produkt w PrestaShop {% endif %}
{% else %}
link_off
Projekt nie jest jeszcze powiązany z produktem PrestaShop.

Po publikacji aplikacja zapisze zewnętrzne ID produktu i zablokuje ponowną publikację jako nowy produkt.

{% endif %}
{% if default_setting %}

Domyślne mapowanie dla typu produktu

Ustawienia startowe pobierane z mapowania produktu.

Tryb wariantów{{ default_setting.variantGenerationModeLabel }} Cena{{ default_setting.basePrice ?: '—' }} Ilość{{ default_setting.baseQuantity is not null ? default_setting.baseQuantity : '—' }} Profil{{ default_setting.variantProfile ? default_setting.variantProfile.name : '—' }} Mapa JSON{{ default_setting.jsonVariantMapping ? default_setting.jsonVariantMapping.name : '—' }}
{% endif %} {% if dictionary_readiness.ready %}
Słowniki PrestaShop wymagane przed publikacją są gotowe.
{% else %}
Słowniki PrestaShop nie są jeszcze gotowe do publikacji. {% if dictionary_readiness.missing is not empty %} Brakuje: {{ dictionary_readiness.missing|join(', ') }}. {% endif %} Kliknij „Pobierz słowniki” przed uzupełnianiem i publikacją draftu.
{% endif %} {% if dictionary_readiness.warnings is defined and dictionary_readiness.warnings is not empty %}
Ostrzeżenia słowników:
    {% for warning in dictionary_readiness.warnings %}
  • {{ warning }}
  • {% endfor %}
{% endif %} {% if draft.lastValidationErrorsJson is not empty %}
Ostatnia walidacja:
    {% for error in draft.lastValidationErrorsJson %}
  • {{ error }}
  • {% endfor %}
{% endif %}
1

Dane podstawowe

Nazwa, SKU, cena i bazowa dostępność produktu.

2

Opisy sprzedażowe

Treści HTML, które trafią do karty produktu.

3

SEO

Meta dane wysyłane razem z produktem.

4

Kategorie

Kategoria główna i dodatkowe powiązania produktowe.

Jeśli kategoria główna nie jest zaznaczona jako dodatkowa, system dopisze ją automatycznie przy zapisie.

5

Tagowanie sprzedażowe

Perfect For i custom tagi z modułu connectora.

6

Cechy

Dodatkowe właściwości produktu widoczne w PrestaShop.

{% for feature in draft.features %} {% else %} {% endfor %}
CechaWartośćAkcje
{{ feature.featureNameSnapshot ?: ('#' ~ feature.featurePrestaId) }} {{ feature.featureValueSnapshot ?: ('#' ~ feature.featureValuePrestaId) }}
Nie dodano jeszcze cech do draftu.
7

Atrybuty i warianty

Konfiguracja kombinacji produktu, impactów cenowych i stanów.

{% for groupId, bucket in attributes_by_group %}
{{ bucket.group ? bucket.group.nameForLang : ('Grupa #' ~ groupId) }} {% for value in bucket.values %} {% else %} Brak wartości. {% endfor %}
{% else %}

Brak atrybutów. Najpierw pobierz słowniki z Presty.

{% endfor %}
{% if default_setting and default_setting.variantGenerationMode == 'variant_profile' and default_setting.variantProfile %}
Źródło: {{ default_setting.variantProfile.name }}
{% endif %}
Import wariantów z JSON

JSON importuje warianty do lokalnego draftu. Każda para key=value musi istnieć w mapie JSON wariantów.

{% for variant in draft.variants %} {% else %} {% endfor %}
WariantReferencePrice impactCena końcowaIlośćAktywny
{{ variant.attributesLabel }}
Brak wariantów. Wybierz atrybuty i kliknij „Wygeneruj warianty”.
{% if draft.variants|length > 0 %}
{% endif %}
8

Podgląd danych technicznych

Skrót payloadu roboczego dla debugowania draftu.

{{ {
                            status: draft.status,
                            reference: draft.reference,
                            main_category_presta_id: draft.mainCategoryPrestaId,
                            category_ids: draft.categoryIdsJson,
                            perfect_for_ids: draft.perfectForIdsJson,
                            custom_tag_ids: draft.customTagIdsJson,
                            variants_count: draft.variants|length
                        }|json_encode(constant('JSON_PRETTY_PRINT')) }}